- 最后登录
- 2013-7-18
- 注册时间
- 2011-7-16
- 阅读权限
- 70
- 积分
- 3247
- 纳金币
- 324742
- 精华
- 0
|
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;
}
}
如果给各路径点赋予鼠标拖动代码,那么可以随便对路径编辑 |
|