unityscript功能。对象不支持切片错误

时间:2012-12-06 03:41:59

标签: function object unity3d type-conversion unityscript

我正在编写一个非常简单的函数,我应该找到两个3d点之间的距离。一组点直接作为浮点数给出,而其他点作为水平数组给出。

三个输入是x,y,z是浮点数,行拾取[0]作为参数传递,是[“blue1”,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;
} 

请尝试帮助我。

1 个答案:

答案 0 :(得分:0)

该错误与var p:float;有关,您不需要尝试将变量p预先声明为javascript是无类型的。引用与static function 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;
}

您也不需要使用String()参数,因为它们将被解析为浮点数。