强子 发表于 2013-3-5 18:44

U3D物体间自动寻路,触发碰撞代码

//圆球自动获取Cube的位置,旋转角度面向Cube,计算距离(发生碰撞)
//男孩2号自动获取男孩1号的位置,旋转角度始终面向1号,距离大于2时:冲向1号,小于2时:踢腿
var Enemy_ :GameObject;//圆球物体
var attackRange = 200.0;//碰撞发生的范围
var target:Transform;//位置 旋转角度function Update () {
      //Enemy_ = GameObject.Find("Sphere");
      if(target == null){
                return;
      }
            
               //在碰撞距离之外 圆球旋转并面向目标
       var targetPoint = target.position;      
       /*function LookRotation (forward : Vector3, upwards : Vector3 = Vector3.up) : void
      创建一个旋转,沿着forward(z轴)并且头部沿着upwards(y轴)的约束注视。也就是建立一个旋转,使z轴朝向view    y轴朝向up。*/
var targetRotation = Quaternion.LookRotation(targetPoint - Enemy_.transform.position,Vector3.up);/*static function Lerp (from : Quaternion, to : Quaternion, t : float) : Quaternion
       通过t值from向to之间插值,并且规范化结果。
      在from和to之间插值旋转(from和to不能与附加脚本的物体相同) 也就是说男孩2号的目光所示方向与1号所示方向连接成对角线,2号的目光从初始到对角线方向移动*/
       Enemy_.transform.rotation = Quaternion.Slerp(Enemy_.transform.rotation,targetRotation,Time.deltaTime*2.0);      
       //距离小于200,满足碰撞条件
      //获取2个男孩之间的距离,距离在2-200间时,男孩2号旋转注视1号,并且往1号位置所在移动;
       //当距离小于2时,男孩2号做出踢腿动作
      var Distance_CS :float = Vector3.Distance(transform.position,target.position);
      if(Distance_CS < attackRange)
      {
                if(Distance_CS >2)
                {
                        var targetPoint1 = target.position;//当前Cube位置
                        Enemy_.transform.rotation = Quaternion.LookRotation(targetPoint1 - transform.position,Vector3.up);
                        Enemy_.transform.Translate(Vector3.forward*0.05);
                        Enemy_.animation.CrossFade("yaotou");                        
                }
                else if(Distance_CS <= 2)
                {
                        Enemy_.animation.CrossFade("chutui");
                }
      }
}

如图所示:距离大于2


cclove 发表于 2013-3-7 09:17

不错。{:5_435:}{:5_435:}{:5_435:}{:5_435:}

下载M~回家 发表于 2013-3-20 10:35


不错 不错 不错{:soso__3922851084632044791_6:}

541452994 发表于 2013-3-27 23:16


不错 不错 不错{:soso__3922851084632044791_6:}

lovesky4 发表于 2013-4-6 20:48

{:5_408:}{:5_408:}{:5_408:}

恢恢 发表于 2013-4-29 15:35


不错 不错 不错{:soso__3922851084632044791_6:}

恢恢 发表于 2013-4-29 15:35

{:5_401:}{:5_399:}{:5_424:}

jerry6084 发表于 2013-5-3 03:17

学习学习{:soso_e179:}

feilangyue 发表于 2013-5-8 18:00

谢谢lz分享{:soso_e152:}

cxbsr 发表于 2013-5-23 13:40


感谢楼主的无私分享!{:soso__11402694654016840197_7:}
页: [1] 2 3 4 5
查看完整版本: U3D物体间自动寻路,触发碰撞代码