当前位置:   article > 正文

unity transform_【Unity游戏开发】角色转向学习

unity 角色转向带向量

前言

在写行为树的时候,有个转向节点,控制的行为就是控制自身向指定点转向
但是在写的时候,对一些概念很不理解,就自己写了个demo场景学习一下

v2-8596105189b326b5df50f6957c7a62b3_b.jpg

这个测试场景想要实现的很简单,就是把这个箭头转向绿色的目标点。

在写这个测试demo的时候顺便实践了一下一直死记硬背的点积和叉积,

  • 简单的说: 点乘判断角度,叉乘判断方向。
  • 形象的说: 当一个敌人在你身后的时候,
  • 点乘得到你当前的面朝向的方向你到敌人的方向的所成的角度大小
  • 叉乘可以判断你是往左转还是往右转更好的转向敌人

一、计算你到敌人的方向的所成的角度大小

方法①:Vector2.Angle

float angle = Vector2.Angle(targetForward, sourceForward);

方法②:使用点积

// 计算 a、b 单位向量的点积,得到夹角余弦值,|a.normalized|*|b.normalized|=1; 

二、往左转还是往右转更好的转向敌人

//叉积算出方向 unity是左手坐标系,所以反过来了

具体解释见:Unity中点乘和叉乘的原理及使用方法

三、旋转方式 二维坐标系中的向量旋转公式

方法①:用2维向量旋转(逆时针旋转公式)进行旋转,顺时针角度为负,逆时针角度为正

private 

方法②:Quaternion.LookRotation

public 

参考:【Unity3d】平滑旋转、转向的实现

具体的demo场景已上传github:2d旋转测试DEMO场景 测试脚本

参考

Unity中角度与弧度相互转换

Unity--向量点乘叉乘在Unity中的使用

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/756505
推荐阅读
相关标签
  

闽ICP备14008679号