impossible to cast a vertice from an array?

fHit:Vector3;
sHit:Vector3;
vertsArray = Array();

(...)

   for(vertex:Vector3 in hitMesh.vertices){
        vertsArray.Add(vertex);
   }

when I do this later:

   newMesh.vertices = [fHit, sHit, vertsArray[0]];

unity warns me it can't cast from source type to destination type. showing "`(Vector3 fHit, Vector3 sHit)`" as the reason. doesn't it notice the `vertsArray[0]` here?

when I do

temp = vertsArray[0];

and change it to

 newMesh.vertices = [fHit, sHit, temp];

everything is ok.

Are we not allowed to use arrays to store - and later pass - vertices positions?

Array() is dynamic and has no particular type, and it's relatively slow. You should use Vector3[] instead of Array:

vertsArray = new Vector3[hitMesh.vertexCount];
for (i = 0; i < vertsArray.Length; i++) {
    vertsArray _= hitMesh.vertices*;*_
_*}*_
_*```*_
_*<p>If you didn't know the length of the array ahead of time (and therefore couldn't use Vector3[]), you should use a Vector3 List instead of Array().  Lists are a lot faster than Array() and aren't dynamically typed so you don't have to worry about casting.</p>*_