U1L7-6——坐标转换
U1L7-6——坐标转换 Transform的坐标转换 有 世界坐标转本地坐标 和 本地坐标转世界坐标 其中最重要的就是本地坐标系的点 转世界坐标系的点 比如 现在玩家要在自己面前n个单位前 释放技能 这时可以无需关系世界坐标系 通过 相对于本地坐标系的位置 转换为 世界坐标系的点 进行特效的创建 本章代码关键字 123456this.transform.InverseTransformPoint() //受到缩放影响的 世界坐标系的点 转换为 相对本地坐标系的点 的方法this.transform.InverseTransformDirection() //不受缩放影响的 世界坐标系的方向 转换为 相对本地坐标系的方向 的方法this.transform.InverseTransformVector() //受到缩放影响的 世界坐标系的方向 转换为 相对本地坐标系的方向 的方法this.transform.TransformPoint() //受到缩放影响的 本地坐标系的点 转换为 相对世界坐标系的点...
U1L7-5——父子关系
U1L7-5——父子关系 Transform中的父子关系相关 父子化是使用 Unity 时需要理解的最重要概念之一。 当一个游戏对象是另一个游戏对象的__父__项时,__子__游戏对象完全跟随其父项移动、旋转和缩放。 可将父子化看作是手臂与身体之间的关系;每当身体移动时,手臂也随之移动。 子对象也可以有自己的子项,以此类推。所以,手可以视为手臂的“子项”,然后每只手都有几根手指,等等。 任何一个对象都可以有多个子项,但只有一个父项。这些多级父子关系形成了变换组件的_层级视图 。 层级视图最顶层的对象(即层级视图中唯一没有父项的对象)称为__根_。 在脚本中,我们可以用Transform类中的属性和方法来操作父子关系 本章代码关键字 12345678910111213this.transform.parent.name //通过transform获取父对象的的名字this.transform.parent //父对象的Transform对象的属性,可以通过这个获取、设置、脱离父对象this.transform.SetParent() ...
U1L7-4——缩放与看向
U1L7-4——缩放与看向 Transform中的缩放与看向相关 缩放相关 相对于 世界坐标系的缩放 只能得 不能改 没有提供对应得API来 缩放变化 只能自己算 看向 LookAt 看向一个点 或者一个对象 一定记住 是写在Update里面才会不停变化 本章代码关键字 123this.transform.lossyScale //游戏对象相对于世界坐标系的缩放大小this.transform.localScale //游戏对象相对于本地坐标系的缩放大小this.transform.LookAt() //让一个对象的面朝向可以一直看向某一个点或者某一个对象的方法 缩放相关 相对世界坐标系的缩放 1this.transform.lossyScale; 相对本地坐标系(父对象) 1this.transform.localScale 同样的 缩放不能只改xyz 只能一起改(相对于世界坐标系的缩放大小只能得 不能改) 没有父对象的本地缩放大小就是世界坐标系的缩放大小 所以 我们一般要修改缩放大小 都是改的相对于父对象的 缩放大小...
U1L7-3——角度与旋转
U1L7-3——角度与旋转 Transform中的角度与旋转相关 角度相关和位置相关差不多,通过Transform可以得到相对于世界坐标系和相对于父对象坐标系的角度,旋转也分为自转和公转 本章代码关键字 123456this.transform.eulerAngles //游戏对象相对于世界坐标系的角度的属性,用欧拉角表示this.transform.localEulerAngles //游戏对象相对于父对象的坐标系的角度的属性,用欧拉角表示,这里得到的角度范围一定是0~360,这和面板显示的角度是不同的this.transform.rotation //游戏对象相对于世界坐标系的角度的属性,用四元数表示,注意,和面板表现形式不同!this.transform.localRotation //游戏对象相对于父对象的坐标系的角度的属性,用四元数表示,注意,和面板表现形式不同!this.transform.Rotate(, , ) ...
U1L7-2——位置与位移
U1L7-2——位置与位移 Transform中的位置与位移相关 要操作这一部分,需要先掌握Vector3基础 Unity的三维空间里的位置有 相对于世界坐标系 和 相对于父对象 这两个坐标的区别 而Unity的位置坐标也不能够单独修改xyz,只能一起统一改 本章代码关键字 123this.transform.position //对象相对于世界坐标系的位置的属性this.transform.localPosition //对象相对于父对象坐标系的位置的属性this.transform.Translate(,) //Transform提供的位移方法,第一个参数填路程,第二个参数填相对哪个坐标系移动 相对于世界坐标系 和 相对于父对象 这两个坐标可能出现一样的情况: 父对象的坐标就是世界坐标系原点0,0,0 对象没有父对象 相对世界坐标系的位置 通过.position得到的位置 是相对于世界坐标系原点的位置 可能和Inspector面板上显示的数据是不一样的,因为如果对象有父子关系 且父对象位置 不在原点 那么...
U1L7-1——Vector3基础
U1L7-1——Vector3基础 Vector3 Vector3 是一个结构体,主要是用来表示三维坐标系的一个点 或者一个向量 Unity 内部使用该结构传递 3D 位置和方向。 此外,它还包含用于执行常见向量操作的函数。 学了这个以后,就可以对Unity内的三维空间的各种对象的位置进行操作了 对于Vector3的更多内容,在Vector3向量里看 Unity的坐标系如下图: 本章代码关键字 1234567891011Vector3 //主要是用来表示三维坐标系的一个点或者一个向量的结构体new Vector3(, , ) //Vector3的一个构造函数,三个参数对应在三维坐标系的点或者向量的坐标.x .y .z //Vector3的三个成员变量,对应该点或者向量在各坐标轴的位置Vector3.zero //对应三维坐标系的(0, 0, 0)Vector3.right //对应三维坐标系的(1, 0, 0)Vector3.left //对应三维坐标系的(-1, 0,...
U1L7——变换相关Transform
U1L7——变换相关Transform Transform UnityEngine.Transform - Unity 脚本 API 变换组件 - Unity 手册 Transform组件包含了位置,角度,缩放大小等信息 游戏对象(GameObject)的位移、选择、缩放、父子关系、坐标转换等相关操作都由它处理 它是Unity提供的极其重要的类 主要包括以下内容: Vector3基础 Vector3基础 位置与位移 Transform的位置与位移 角度与旋转 Transform的角度与旋转 缩放与看向 Transform的缩放与看向 父子关系 Transform的父子关系 坐标转换 Transform的坐标转换
U1L6——时间相关Time
U1L6——时间相关Time Time 时间相关内容 主要 用于游戏中参与位移、计时、时间暂停等 最常用的就是 帧间隔时间 计算位移相关内容 时间缩放比例 用来暂停 或者倍速等等 帧数(帧同步) Important Classes - Time and frame rate management - Unity 手册 本章代码关键字 12345678Time.timeScale //时间缩放相关属性,调整该属性可以修改时间快慢,1是正常速度,0是时间停止,2是二倍速,以此类推Time.deltaTime //获取帧间隔时间属性,获取每两帧之间的时间,受到时间缩放影响,可以通过这个来实现位移等操作Time.unscaledDeltaTime //获取不受时间缩放以及暂停影响的帧间隔时间属性Time.time //获取游戏开始到现在的时间的属性,不受scale影响,主要用来计时Time.unscaledTime ...
U1L5——最小单位GameObject
U1L5——最小单位GameObject GameObject 在Unity编辑器中:游戏对象__是 Unity Editor 中最重要的概念。游戏中的每个对象(从角色和可收集物品到光源、摄像机和特效)都是__游戏对象。但是,游戏对象本身无法执行任何操作;需要向游戏对象提供属性,然后游戏对象才能成为角色、环境或特效。 重要的类 - GameObject - Unity 手册 而在脚本中:Unity 的 GameObject 类用于表示任何可以存在于场景中的事物。 本章代码关键字 1234567891011121314151617181920212223242526gameObject //获取该MonoBehaviour派生类对应的GameObject类的实例化对象//GameObject的成员变量gameObject.name //脚本所挂载的游戏对象的名字gameObject.activeSelf ...
U1L4——MonoBehaviour的重要内容
U1L4——MonoBehaviour的重要内容 MonoBaviour MonoBehaviour 类是一个基类,所有 Unity 脚本都默认派生自该类。当您从 Unity 的项目窗口创建一个 C# 脚本时,它会自动继承 MonoBehaviour, MonoBehaviour 类提供了框架,允许您将脚本附加到编辑器中的游戏对象,并提供诸如Start()和Update()等常用事件的挂钩。 重要的类 - MonoBehaviour - Unity 手册 脚本内继承该类且脚本与继承该类的类名一致才能使脚本挂载到一些对象上,注意其派生类绝不能new出来,同时也不再建议写构造函数 相关信息:继承MonoBehaviour基类的类的规则、关于MonoBehaviour的类中的构造函数 本章代码关键字 123456789101112131415//重要成员——获取游戏对象信息及其几何信息,以及脚本是否激活this.gameObject ...