找回密码
 立即注册
查看: 8836|回复: 90

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

  [复制链接]
发表于 2013-3-5 18:44 | 显示全部楼层 |阅读模式
//圆球自动获取Cube的位置,旋转角度面向Cube,计算距离(发生碰撞)
//男孩2号自动获取男孩1号的位置,旋转角度始终面向1号,距离大于2时:冲向1号,小于2时:踢腿
  1. var Enemy_ :GameObject;//圆球物体
  2. var attackRange = 200.0;//碰撞发生的范围
  3. var target:Transform;//位置 旋转角度
复制代码
  1. function Update () {
  2.         //Enemy_ = GameObject.Find("Sphere");
  3.         if(target == null){
  4.                 return;
  5.         }
  6.         
复制代码
        
               //在碰撞距离之外 圆球旋转并面向目标
      
  1. var targetPoint = target.position;
复制代码
        
         /*function LookRotation (forward : Vector3, upwards : Vector3 = Vector3.up) : void
        创建一个旋转,沿着forward(z轴)并且头部沿着upwards(y轴)的约束注视。也就是建立一个旋转,使z轴朝向view    y轴朝向up。*/
  1. 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号的目光从初始到对角线方向移动*/
      
  1. Enemy_.transform.rotation = Quaternion.Slerp(Enemy_.transform.rotation,targetRotation,Time.deltaTime*2.0);
复制代码
        
       //距离小于200,满足碰撞条件
        //获取2个男孩之间的距离,距离在2-200间时,男孩2号旋转注视1号,并且往1号位置所在移动;
       //当距离小于2时,男孩2号做出踢腿动作
     
  1.    var Distance_CS :float = Vector3.Distance(transform.position,target.position);
  2.         if(Distance_CS < attackRange)
  3.         {
  4.                 if(Distance_CS >2)
  5.                 {
  6.                         var targetPoint1 = target.position;//当前Cube位置
  7.                         Enemy_.transform.rotation = Quaternion.LookRotation(targetPoint1 - transform.position,Vector3.up);
  8.                         Enemy_.transform.Translate(Vector3.forward*0.05);
  9.                         Enemy_.animation.CrossFade("yaotou");                        
  10.                 }
  11.                 else if(Distance_CS <= 2)
  12.                 {
  13.                         Enemy_.animation.CrossFade("chutui");
  14.                 }
  15.         }
  16. }
复制代码

如图所示:距离大于2


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 5鲜花 +3 +3 收起 理由
pcjbird + 1 + 1 赞一个!
graywolfx21 + 1
yugo215 + 1 赞一个!
Mr.Blind + 1 赞一个!
c68686 + 1

查看全部评分

发表于 2013-3-7 09:17 | 显示全部楼层
不错。{:5_435:}{:5_435:}{:5_435:}{:5_435:}
发表于 2013-3-20 10:35 | 显示全部楼层

不错 不错 不错{:soso__3922851084632044791_6:}
发表于 2013-3-27 23:16 | 显示全部楼层

不错 不错 不错{:soso__3922851084632044791_6:}
发表于 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:}
发表于 2013-5-3 03:17 | 显示全部楼层
学习学习{:soso_e179:}
发表于 2013-5-8 18:00 | 显示全部楼层
谢谢lz分享{:soso_e152:}
发表于 2013-5-23 13:40 | 显示全部楼层

感谢楼主的无私分享!{:soso__11402694654016840197_7:}
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-2 00:31 , Processed in 0.098568 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表