关于Unity中物体分别在本地和世界坐标系对应方向的移动
方向
Vector3可以定义以世界坐标轴为参考的三维矢量,Vector3.forward,Vector3.up,Vector3.right方别对应物体世界坐标系的Z,Y,X轴方向的单位向量,或者叫三维单位方向向量,是矢量
this.transform.forward,this.transform.up,this.transform.right分别对应当前物体在本地坐标系的Z,Y,X轴方向的单位向量,或者叫三维单位方向向量,是矢量
距离
Update(){
float distance = this.first_move_speed * Time.deltaTime;//每秒移动的距离,是标量
......
注意
三维单位方向向量乘标量距离才能成为一个可以使用的有长度有方向的三维矢量
移动translate函数用(X轴方向的标量,Y轴方向的标量,,Z轴方向的标量,,指定的坐标系)就可以表示
move函数的是以三维矢量为参数
物体position的加减是以三维矢量为单位的
方法一
this.transform.Translate(0, 0, -distance, Space.Self);//本地坐标系为参考系
this.transform.Translate(0, 0, -distance, Space.World);//世界坐标系为参考系
方法二
this.c_ctrl.Move(-this.transform.forward * distance);//,this.c_ctrl是Unity自带的角色控制器,括号里的是一个三维矢量,三维单位方向向量乘标量距离,本地坐标系为参考系
this.c_ctrl.Move(-Vector3.forward * distance);//世界坐标系为参考系
方法三
this.transform.position+=transform.forward * distance;//做了一个三维矢量的加法,三维单位方向向量乘标量距离,本地坐标系为参考系
this.transform.position+=Vector3.forward * distance;//世界坐标系为参考系
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架