按路径点移动的js脚本,非常简单(是个人都能懂,属个人独有)
1.基本思路:移动的目标(这里用cube)赋予一速度,并赋予Look at,Look at永远指向“真”值点true;目标检测与每个路径点的距离来改变控制参数真假,当到达第一个路径点时,此点值为假,下个点值改变为真。
2.js程序如下(此代码赋予cube,把路径物体拖动到空位上即可):
//wt为要移动的目标。路径点有5个:cf为出发点、d01、d02、d03、d04为各路径点。
var wt:Transform;
var cf:Transform;
var d01:Transform;
var d02:Transform;
var d03:Transform;
var d04:Transform;
var speed=100;
var w02=false;
var w03=false;
var w04=false;
function Update() {
transform.Translate( Vector3(0, 0,speed) * Time.deltaTime) ;
var m01:Vector3;
var m02:Vector3;
var m03:Vector3;
var m04:Vector3;
var m05:Vector3;
var m06:Vector3;
m01=wt.transform.position;
m02=cf.transform.position;
m03=d01.transform.position;
m04=d02.transform.position;
m05=d03.transform.position;
m06=d04.transform.position;
if(Vector3.Distance(m01,m02)<2)
{
w02=true;
w03=false;
w04=false;
if(w02==true)
{transform.LookAt(d01);}
}
if(Vector3.Distance(m01,m03)<2)
{
w02=false;
w03=true;
w04=false;
if(w03==true)
{transform.LookAt(d02);}
}
if(Vector3.Distance(m01,m04)<2)
{
w02=false;
w03=false;
w04=true;
if(w04==true)
{transform.LookAt(d03);}
}
if(Vector3.Distance(m01,m05)<2)
{transform.position=m06;
var w02=false;
var w03=false;
var w04=false;
}
}
如果给各路径点赋予鼠标拖动代码,那么可以随便对路径编辑


试了只能走直线,不能按路径走。楼主赐教呀!
更新一下哈,其实去掉判断真假语句更简单,只用速度和look at就行,呵呵。注意:距离检测的值不能设太小(相对于物体大小),比如,一个边长30个单位的立方体,对于它的距离检测设为1肯定出错,应设在15左右。我这一个项目,就顺便检测了一下。这是做项目时悟出的方法。俺也是新手,有高手路过的,请不惜赐教。谢谢