GameTang
圣骑士
圣骑士
  • UID4314
  • 粉丝3
  • 关注2
  • 发帖数43
  • 社区居民
阅读:1117回复:3

菜鸟日记《四》(自身目标的旋转)

楼主#
更多 发布于:2018-01-26 11:47

这两天做东西遇见了一个小小的问题,也是把我烦的郁闷。是这样,类似于你被很多敌人包围的时候,很多人把你团团围住的那种效果,每个人都盯着你看,当时还想这不简单,双方的Y轴转动角度保持一致不就好了吗?顺手码了一句,结果效果跟我想的差的好多

transform.eulerAngles = new Vector3(transform.eulerAngles.x, add.transform.eulerAngles.y - 180, transform.eulerAngles.z);

图片:一.png

完全不会相对呀!!!崩。。。。

转眼我有想到了Unity的transform.LookAt();

transform.LookAt(add.transform);

图片:二.png

嘿,似乎还像那么回事,但是。。。。。。我手一抖,小球向下拉了一下出现了这幅场景

图片:QQ图片20180126111610.png

按道理来说这是不行了,敌人身体总不能前仰后叉吧,看着就莫名起码,所以这和只适合所以的对象处在同一水平面上才好使,

天,就没一个好好面对面坐下来安静喝茶的方法吗!!要不要那么坑

搜来搜去让我瞅见了一个函数 Quaternion.LookRotation(),没错就是他,

经过一番验证写了一个这个简单的角度变换,还挺好使

Vector3 NewRotation(GameObject Add)

    {

        Vector3 XiangLiang = Add.transform.position - transform.position;     //获取自身与目标之间的向量

        Vector3 MonsterRotation =transform.eulerAngles;                      //记录自身此时的旋转数据

       transform.rotation = Quaternion.LookRotation(XiangLiang);             //执行自身看向目标的旋转

       transform.eulerAngles = new Vector3(MonsterRotation.x, transform.eulerAngles.y, MonsterRotation.z); //更新自身旋转数据,Z/X轴采用自身之前的旋转,只动态改变Y轴的方向旋转值,(强制返回Z/X的旋转数据,采用自身旋转,)

        Vector3 ResultEulerAngles = transform.eulerAngles;                    //记录改变之后自身的旋转数据

        return ResultEulerAngles;                                             //然后将此记录的旋转值作为返回值供外部调用

    }

看效果图

图片:四.png

图片:五.png

两个对象都在同时盯着小球,但小球不在这个平面时他们ZX轴就不转,这看着就好了,避免了某些意外的情况

贴上来记录下,希望能有用得到的哈

还有最近对5.5的灯光烘焙有点问题,烘焙完之后总感觉不对,对这也不是很熟悉,有没有大佬推荐几个帖子让学习啊

  自己就先尝试着玩了玩,但发现很多属性根本就不知道是干嘛的,也不知道怎么调 在这贴下别处转来的帖子,说的很详细 Unity5.5 Lighting属性解析 转自CSDN 000000000000O大佬

大家可以加下AR学院的官方交流群共同学习哈 ,有空在更啊

最新喜欢:

归海一啸归海一啸

欢迎分享

w20050830413
侠客
侠客
  • UID4120
  • 粉丝0
  • 关注0
  • 发帖数5
  • 社区居民
  • 忠实会员
沙发#
发布于:2018-02-07 09:54
LookAt也能实现的,就是参数要改下(new vector3(目标的x,自身的y,目标的Z))。然后能和大神写的lookRotation的效果一样的
GameTang
圣骑士
圣骑士
  • UID4314
  • 粉丝3
  • 关注2
  • 发帖数43
  • 社区居民
板凳#
发布于:2018-02-07 11:42
w20050830413:LookAt也能实现的,就是参数要改下(new vector3(目标的x,自身的y,目标的Z))。然后能和大神写的lookRotation的效果一样的回到原帖
LookAT()还有这操作?受教了,谢谢
GameTang
圣骑士
圣骑士
  • UID4314
  • 粉丝3
  • 关注2
  • 发帖数43
  • 社区居民
地板#
发布于:2018-02-07 11:46
w20050830413:LookAt也能实现的,就是参数要改下(new vector3(目标的x,自身的y,目标的Z))。然后能和大神写的lookRotation的效果一样的回到原帖
之前我就是想要这效果,只要LookAt()的Y轴旋转值,但是调不出来,就只能这样曲线救国了,不知道还能直接在里面重赋值,学习了学习了,谢谢
游客

返回顶部