Vector3基础和Transform位置
游戏对象(GameObject)位移、旋转、缩放、父子关系、坐标转换等相关操作都由Transform处理
1、Vector3基础
Vector3主要用来表示三维坐标系中的一个点或者一个向量
// 声明: (1)Vector3 v = new Vector3();(2)只传xy,默认z是0 Vector3 v = new Vector3(x,y)(3)Vector3 v = new Vector3(x,y,z)
// Vector3的基本运算:四则运算
// 常用(世界坐标的朝向)
Vector3.zero (0,0,0) Vector3.right (1,0,0) Vector3.left (-1,0,0) Vector3.forward (0,0,1) Vector3.back (0,0,-1) Vector3.up (0,1,0) Vector3.down (0,-1,0) // 常用的一个方法,计算两个点之间的距离
Vector3.Distance(v1,v2)
2、位置
// 相对世界坐标系,不会受父子关系的影响
this.(gameObject.)transform.position
// 相对父对象的坐标系,即一定与Inspector面板上的数值相同
// 如果想以面板坐标为准进行位置设置,则通过该坐标系修改
this.transform.localPosition
当(1)父对象的坐标为原点(0,0,0)或者(2)对象没有父对象的时候,position与localPosition的数值是一样的
// 注意:位置的赋值不能直接改变x,y,z,只能整体改变,即以下方式不支持
this.transform.position.x = 5
必须
this.transform.position.x = new Vector3(5,0,0)
// 如果只想改一个值,x,y,z要保持原有坐标一致
(1)直接复制
this.transform.position = new Vector3(5, this.transform.position.y,this.transform.position.z)
(2)先取出来,在赋值
// transform的x,y,z不能直接修改,但是Vector3可以
Vector3 vPos = this.transform.localPosition; vPos.x = 5; this.transform.localPosition; = vPos;
// 对象当前的各朝向
this.transform.forward/back/up/down/left/right
3、位移
// 理解坐标系下的位移计算公式
// 路程 = 方向 * 速度 * 时间,在Update函数中更新,方向要分清Vector3. 与 this.transform. 的区别
// 方式一: 自己计算
// 想要变化的就是position
// 用当前的位置+移动的距离,得到最终所在的位置
this.transform.position += this.transform.forward * speed * Time.deltaTime;
//方式二:API(一般使用API进行位移)
// 参数一:表示 位移多少
// 参数二:表示 相对坐标系,默认该参数是相对于自己坐标系(Space.Self)
this.transform.Translate(Vector3.forward * speed * Time.deltaTime);
等效于
this.transform.Translate(this.transform.forward * speed * Time.deltaTime, Space.World);
// 相对于世界坐标系的方向移动
this.transform.Translate(Vector3.forward * speed * Time.deltaTime, Space.World);
// 相对于自己的坐标系下的 自己的方向向量移动(实际不会让物体这样移动,实际方向相对于世界坐标会有两次偏移计算)
this.transform.Translate(this.transform.forward * speed * Time.deltaTime, Space.Self);
Vector3基础和Transform位置相关推荐
- Unity3d vector3.forward和transform.forward的区别!
在unity3d中有2个forward,一个是vector3.forward和transform.forward,这两个forward其实完全不一样.他们之间的区别主要体现在在不同坐标系时的反映上. ...
- vector3.forword和transform.forword在移动上的区别
本文转载自http://blog.csdn.net/kaluluosi111/article/details/17206655,,,,,,,在unity3d中有2个forward,一个是vector3 ...
- web前端分享HTML5中的nav标签学习笔记
好程序员web前端分享HTML5中的nav标签学习笔记,nav标签全称navigation,顾名思义,是导航的意思.根据HTML5的相关标准定义如下: "A section of a pag ...
- JavaScript基础01【简介、js编写位置、基本语法(6种基本数据类型)】
学习地址: 谷粒学院---尚硅谷 尚硅谷最新版JavaScript基础全套教程完整版(140集实战教学,JS从入门到精通) JavaScript基础.高级学习笔记汇总表[尚硅谷最新版JavaScrip ...
- 《C#零基础入门之百识百例》(三十三)方法参数 -- 位置命名参数 -- 求长方体体积
C#零基础入门 函数 -- 位置&命名参数 -- 求长方体体积 前言 一.位置参数 二,命名参数 三.实例练习 -- 求长方体体积 3.1 题目描述 3.2 练习目标 3.3 参考代码 前言 ...
- 卫星位置计算基础讲解
目录 写在前面 广播星历解读 计算基本原理 源代码及计算结果 总结 写在前面 本篇博文用于充实个人分类专栏"GNSS课程",同时希望能够对有需要的朋友有所帮助. 教材采用<G ...
- 手游开发攻防——二、基础篇
http://blog.csdn.net/kakashi8841/article/details/39451739 文章适合人群:对Unity基础组件有一些了解的,想知道怎么在项目中具体应用各种组件. ...
- 【Unity3D】人物跟随鼠标位置
1 游戏对象 2D动画和人体模型及动画中介绍了 Aniamtion.Animator.人体模型.人体骨骼.人体动画等基础知识,本文将通过 "人物跟随鼠标位置" 案例加强对 Unit ...
- 手游开发攻防——二、基础篇(更新完)
不好意思,最近公司成员扩招,然后技术培训,项目事宜原因,因此这篇文章等到现在才出. 好了,不多说其它. 文章适合人群:对Unity基础组件有一些了解的,想知道怎么在项目中具体应用各种组件. 这篇文章以 ...
最新文章
- bootstrap学习笔记五(表单一)
- 使用Python管理Azure(1):基础配置
- CouldNOTfindQt4 install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer
- JVM调优:开启/关闭TLAB和逃逸分析耗时对比
- php 进程函数,php多进程函数
- mix2s android p功能,已升安卓P!网友:MIX2S才是亲儿子
- Self-Attention真的是必要的吗?微软中科大提出Sparse MLP,降低计算量的同时提升性能!...
- Ubuntu18.04 测试Azure Kinect DK 安装Azure Kinect传感器SDK
- 虚拟机自动安装linux操作系统(kickstart+pxe+dhcp+tftp)
- [C/C++11语法]_[0基础]_[lamba 表达式介绍]
- 如何在线向虚拟机中安装redis单机版的详细步骤
- 【面试分享】奇安信渗透测试工程师,通过!
- 超级产品:“用户需求”之“了解用户需求”
- 图吧地图(V5.0公测版) 高清地图今日公测
- GitLab官网安全更新(2022-06-30)
- 计算机网络基础(理论知识)
- 为什么叫析取?为什么叫合取?
- 开源项目之饭否 for Android
- 勇夺四冠,风行游艇在2022 CCPC专业站中展现超群实力
- 网络攻击常见技术方法及案例分析