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。。。这不是我的家庭作业:)。。我刚开始使用它,却发现一个奇怪的错误。。。哈哈,是的,我现在能理解为什么你会猜到。。