2012-12-06 4 views
0

두 개의 3 차원 점 사이의 거리를 찾는 매우 간단한 함수를 작성하고 있습니다. 한 세트의 점은 수레로 직접 주어지며 다른 점은 수 평 배열로 주어집니다.unityscript 함수입니다. 객체가 슬라이싱을 지원하지 않습니다. 오류

3 개의 입력은 float이고 행 픽업 [0]은 [ "blue1", 441.2223, 231.44, 127.7466] 인 par로 전달됩니다. 자, 행은 다음과 같이 나타납니다. 물론 개체. 나는 거리를 계산하는 기능을 가진 문제가되었다 : 지금 현재 내 코드는 다음과 같습니다

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; 
} 

\ 시도하고 저를 도와주세요.

+0

이것이 자바 스크립트입니까? 나는 전에'Mathf'와'var p : float'을 보지 못했습니다. – Blender

+0

그것의 화합 자바 스크립트는 ... 그것은 내 숙제가 아닙니다 :) .. 난 그냥 이것을 사용하기 시작하고 이상한 오류를 받고 ... 롤 그래, 왜 지금 당신이 그걸 추측 할 수 있는지 이해할 수 .. –

답변

0

오류는 var p:float;과 관련이 있습니다. javascript는 타입이 없으므로 변수 p를 미리 설정하지 않아도됩니다. 참조가 static function Sqrt (f : float) : float으로 참조하는 것은 float이고 float을 반환하는 변수를 기대한다는 것입니다. 그들은 부동 소수점으로 해석 될 것이다 또한() 당신의 매개 변수를 toString 필요하지 않습니다

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; 
} 

: 귀하의 코드로 작성해야한다.

관련 문제