您好,欢迎来到Unity之家!   unity.jb51.net 
  • 首 页
  • 你问我答
  • 当前位置:首页 > 学习培训 > Unity编程 >
    按路径移动
    时间:2015-03-18 08:56 来源:Unity之家 作者:unity.jb51.net 浏览:收藏 挑错 推荐 打印


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


    OK。赶快测试下吧。。。




    (责任编辑:脚印)
    免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。