查看: 1535|回复: 0
打印 上一主题 下一主题

按路径点移动的js脚本

[复制链接]
   

671

主题

1

听众

3247

积分

中级设计师

Rank: 5Rank: 5

纳金币
324742
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2012-1-29 12:47:52 |只看该作者 |倒序浏览
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;
}
}
如果给各路径点赋予鼠标拖动代码,那么可以随便对路径编辑
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

关闭

站长推荐上一条 /1 下一条

手机版|纳金网 ( 闽ICP备08008928号

GMT+8, 2024-5-6 02:35 , Processed in 0.081215 second(s), 29 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部