查看: 4774|回复: 45

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

  [复制链接]

36

主题

25

听众

205

积分

小学生

Rank: 2

升级   1.67%

发表于 2013-3-5 18:44 |显示全部楼层
共享资源获取更多积分!share your resources get more credits!
//圆球自动获取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 人评分鲜花 道具币 收起 理由
pcjbird + 1 + 1 赞一个!
graywolfx21 + 1
yugo215 + 1 赞一个!
Mr.Blind + 1 赞一个!
c68686 + 1

总评分: 鲜花 + 3  道具币 + 3   查看全部评分

军事模型网:http://www.mypsd.com.cn/list/?343&ta&8

1

主题

10

听众

361

积分

小学生

Rank: 2

升级   53.67%

发表于 2013-3-7 09:17 |显示全部楼层
不错。
回复

使用道具 举报

0

主题

18

听众

204

积分

小学生

Rank: 2

升级   1.33%

发表于 2013-3-20 10:35 |显示全部楼层

不错 不错 不错
回复

使用道具 举报

0

主题

18

听众

1110

积分

大学生

Rank: 3Rank: 3

升级   40.67%

发表于 2013-3-27 23:16 |显示全部楼层

不错 不错 不错
回复

使用道具 举报

0

主题

18

听众

203

积分

小学生

Rank: 2

升级   1%

发表于 2013-4-6 20:48 |显示全部楼层
回复

使用道具 举报

0

主题

18

听众

203

积分

小学生

Rank: 2

升级   1%

发表于 2013-4-29 15:35 |显示全部楼层

不错 不错 不错
回复

使用道具 举报

0

主题

18

听众

203

积分

小学生

Rank: 2

升级   1%

发表于 2013-4-29 15:35 |显示全部楼层
回复

使用道具 举报

9

主题

19

听众

908

积分

大学生

Rank: 3Rank: 3

升级   27.2%

发表于 2013-5-3 03:17 |显示全部楼层
学习学习
回复

使用道具 举报

0

主题

18

听众

201

积分

小学生

Rank: 2

升级   0.33%

发表于 2013-5-8 18:00 |显示全部楼层
谢谢lz分享
回复

使用道具 举报

16

主题

22

听众

391

积分

小学生

打酱油的

Rank: 2

升级   63.67%

发表于 2013-5-23 13:40 |显示全部楼层

感谢楼主的无私分享!
回复

使用道具 举报

温馨提示:求助请到“Unity技术讨论”版块中发帖,便于集中解决!
您需要登录后才可以回帖 登录 | 立即注册

懒人模式:

关闭

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

Unity3D游戏开发联盟(资源共享平台) -Unity3D,Unreal ( 苏ICP备12051100号 )   

GMT+8, 2019-9-18 03:38 , Processed in 0.117726 second(s), 44 queries .