最近在尝试做纪念碑谷的效果,在墙上行走的功能上出现了一些问题,我使用了transform.TransformDirection(Vector3.up)来标记角色的上面,好让角色不管怎么旋转可以始终标明他的头顶,通过Quaternion.LookRotation方法实现垂直上墙。但是实际运行起来的时候,一开始的旋转没有出现任何问题,角色可以正常在垂直的墙上行走,debug输出的TransformDirection(Vector3.up)正常的由(0,1,0)变为(1,0,0)(因为角色与所在的方块绕z轴旋转了90度),但当我继续往上面行走的时候,输出的角度开始错误,角色也因此歪了过去,TransformDirection(Vector3.up)开始变为(0.6,0,0.8)或者是(0.7,0,0.7),经过各种测试后发现只要角色在这个平面上向上行走TransformDirection(Vector3.up)的值就会出错,但我查到的资料来看这个值应该只会将(0,1,0)转化到角色的坐标上来,因此没有想明白这个错误出现的原因。
关于TransformDirection的一些疑问
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 小鱼游戏开发 2022-02-08 14:28关注
官方解释 TransformDirection 是 将方向从局部空间转换到世界空间
局部方向:这个方向并非是世界方向如Vector3.right,Vector3.up之类的,而是 对象A - 对象B 得出或者其他方式计算出来的方向
然而你输入的却是一个世界方向。这是不正确的
如果你需要对象上方的方向,那么你需要的仅仅是transform.up
如果你需要对象上方的坐标,你可以简单的 transform.position + transform.up * distance 得到头顶的坐标本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 想写一个文件管理器,加载全部子文件夹后,要一级一级返回
- ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题
- ¥15 哪位能做百度地图导航触点播报?
- ¥15 请问GPT语言模型怎么训练?
- ¥15 已知平面坐标系(非直角坐标系)内三个点的坐标,反求两坐标轴的夹角
- ¥15 webots有问题,无响应
- ¥15 使用VH6501干扰RTR位,CANoe上显示的错误帧不足32个就进入bus off快慢恢复,为什么?
- ¥15 大智慧怎么编写一个选股程序
- ¥100 python 调用 cgps 命令获取 实时位置信息
- ¥15 两台交换机分别是trunk接口和access接口为何无法通信,通信过程是如何?