Function unityscript函数。对象不支持切片错误

Function unityscript函数。对象不支持切片错误,function,object,unity3d,type-conversion,unityscript,Function,Object,Unity3d,Type Conversion,Unityscript,我在写一个非常简单的函数,我要求两个三维点之间的距离。一组点直接作为浮点数给出,而其他点作为水平数组给出 三个输入是x、y、z,它们是浮点数,行拾取器(0)作为PAR通过,[BLUG1,441.2223,231.44,127.7466 ]。 现在,行作为一个对象出现。我在制作计算距离的函数时遇到了问题:我现在的代码是:\ function distance(x,y,z,par) { var p:float; p=Mathf.Sqrt( (x-parseFloat(par[1].ToString(

我在写一个非常简单的函数,我要求两个三维点之间的距离。一组点直接作为浮点数给出,而其他点作为水平数组给出

三个输入是x、y、z,它们是浮点数,行拾取器(0)作为PAR通过,[BLUG1,441.2223,231.44,127.7466 ]。 现在,行作为一个对象出现。我在制作计算距离的函数时遇到了问题:我现在的代码是:\

function distance(x,y,z,par)
{
var p:float;
p=Mathf.Sqrt( (x-parseFloat(par[1].ToString())) * (x-parseFloat(par[1].ToString())) +          (y-parseFloat(par[2].ToString())) * (y-parseFloat(par[2].ToString())) + (z-parseFloat(par[3].ToString())) * (z-parseFloat(par[3].ToString())));
return p;
} 

请尝试帮助我。

错误与
var p:float有关,您不需要尝试并预先声明变量p,因为javascript是无类型的。使用
静态函数Sqrt(f:float):float时,引用所指的是它期望的变量是一个float并返回一个float。您的代码应编写为:

function distance(x,y,z,par)
{
   var p = Mathf.Sqrt( (x-parseFloat(par[1])) * (x-parseFloat(par[1])) + (y-parseFloat(par[2])) * (y-parseFloat(par[2])) + (z-parseFloat(par[3])) * (z-parseFloat(par[3])));
   return p;
}

您也不需要字符串()您的参数,因为它们将被解析为浮点

你确定这是JavaScript吗?我以前没见过
Mathf
var p:float
。这是unity Javascript。。。这不是我的家庭作业:)。。我刚开始使用它,却发现一个奇怪的错误。。。哈哈,是的,我现在能理解为什么你会猜到。。