U1L7-4——缩放与看向
U1L7-4——缩放与看向
Transform中的缩放与看向相关
缩放相关
相对于 世界坐标系的缩放 只能得 不能改
没有提供对应得API来 缩放变化 只能自己算
看向
LookAt 看向一个点 或者一个对象
一定记住 是写在Update里面才会不停变化
本章代码关键字
123this.transform.lossyScale //游戏对象相对于世界坐标系的缩放大小this.transform.localScale //游戏对象相对于本地坐标系的缩放大小this.transform.LookAt() //让一个对象的面朝向可以一直看向某一个点或者某一个对象的方法
缩放相关
相对世界坐标系的缩放
1this.transform.lossyScale;
相对本地坐标系(父对象)
1this.transform.localScale
同样的 缩放不能只改xyz 只能一起改(相对于世界坐标系的缩放大小只能得 不能改)
没有父对象的本地缩放大小就是世界坐标系的缩放大小
所以 我们一般要修改缩放大小 都是改的相对于父对象的 缩放大小 localScale
1this.tr ...
U1L7-3——角度与旋转
U1L7-3——角度与旋转
Transform中的角度与旋转相关
角度相关和位置相关差不多,通过Transform可以得到相对于世界坐标系和相对于父对象坐标系的角度,旋转也分为自转和公转
本章代码关键字
123456this.transform.eulerAngles //游戏对象相对于世界坐标系的角度的属性,用欧拉角表示this.transform.localEulerAngles //游戏对象相对于父对象的坐标系的角度的属性,用欧拉角表示,这里得到的角度范围一定是0~360,这和面板显示的角度是不同的this.transform.rotation //游戏对象相对于世界坐标系的角度的属性,用四元数表示,注意,和面板表现形式不同!this.transform.localRotation //游戏对象相对于父对象的坐标系的角度的属性,用四元数表示,注意,和面板表现形式不同!this.transform.Rotate(, , ) //让游戏对象自转this.transform.RotateAround(, , ...
U1L7-2——位置与位移
U1L7-2——位置与位移
Transform中的位置与位移相关
要操作这一部分,需要先掌握Vector3基础
Unity的三维空间里的位置有 相对于世界坐标系 和 相对于父对象 这两个坐标的区别
而Unity的位置坐标也不能够单独修改xyz,只能一起统一改
本章代码关键字
123this.transform.position //对象相对于世界坐标系的位置的属性this.transform.localPosition //对象相对于父对象坐标系的位置的属性this.transform.Translate(,) //Transform提供的位移方法,第一个参数填路程,第二个参数填相对哪个坐标系移动
相对于世界坐标系 和 相对于父对象 这两个坐标可能出现一样的情况:
父对象的坐标就是世界坐标系原点0,0,0
对象没有父对象
相对世界坐标系的位置
通过.position得到的位置 是相对于世界坐标系原点的位置
可能和Inspector面板上显示的数据是不一样的,因为如果对象有父子关系 且父对象位置 不在原点 那么 和面板上肯定就是不一样的
1this.tra ...
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, 0)Vector3.f ...
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 //获取不受scale影响游戏开始到现 ...
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 //获取该脚本所挂载的游戏对象的属性,可以对其内容例如名字,位置等变量进行操作this.transform ...
U1L3——Inspector窗口可编辑变量
U1L3——Inspector窗口可编辑变量
使用 Inspector 窗口可对 Unity 编辑器中几乎所有内容(包括游戏对象、Unity 组件、资源、材质)查看和编辑属性和设置,
以及查看和编辑编辑器内的设置和首选项。
Inspector 窗口 - Unity 手册
本章代码关键字
1234567891011[SerializeField] //强转序列化字段特性,使私有变量或保护变量一样在Inspector窗口上显示[HideInInspector] //隐藏显示特性,加上该特性的成员变量,无论公开与否,都不在Inspector窗口上显示[System.Serializable] //序列化特性,属于System命名空间,使非继承MonoBehaviour的类也能在Inspector窗口上显示[Header("分组说明")] //分组特性,为Inspector窗口上的变量分组 ...
U1L1——Unity脚本基本规则
U1L1——Unity脚本基本规则
创建规则
不在Visual Studio或者其他IDE中创建脚本了
可以放在Assets文件夹下的任何位置(建议同一文件夹管理)
类名和文件名必须一致,不然不能挂载(因为反射机制创建对象,会通过文件名去找Type)
建议不要使用中文名命名
没有特殊需求 不用管命名空间
创建的脚本默认继承MonoBehaviour
MonoBehaviour基类
创建的脚本默认都继承MonoBehaviour 继承了它才能够挂载在GameObject上
继承了MonoBehaviour的脚本不能new 只能挂载到Unity的对象上!!!
继承了MonnBehavior的脚本不要去写构造函数,因为我们不会去new它,写构造函数没有任何意义
继承了MonoBehaviour的脚本可以在一个对象上挂多个(如果没有加DisallowMultipleComponent特性)
继承MonoBehaviour的类也可以再次被继承,遵循面向对象继承多态的规则
不继承MonoBehaviour的类
不继承Mono的类 不能挂载在GameObject上
不继承Mono的类 想怎 ...