U2L4——Vector3向量系列
U2L4——Vector3向量系列 Vector3 对于Vector3,我们已经在Vector3基础介绍了这个结构体,它的构造方法,成员变量,基本计算,常用坐标或单位向量和计算两点距离的方法 在这里我们将进一步介绍它 Vector3向量必备知识 Vector3向量必备知识 向量模长和单位向量 向量模长和单位向量(距离,方向) 向量加减乘除 向量加减乘除的几何意义(位置平移和向量计算,模长放大缩小) 向量点乘 向量点乘(判断对象的方位,计算两个向量之间的夹角) 向量叉乘 向量叉乘(得到一个平面的法向量,得到两个向量之间的左右位置关系) 向量插值运算 向量插值计算(用于逐帧缓动)
U2L3——坐标系
U2L3——坐标系 本章代码关键字 123456789101112131415161718192021222324252627282930//世界坐标系this.transform.position; //对象相对于世界坐标系的位置的属性this.transform.rotation; //对象相对于世界坐标系的旋转角度的属性,用四元数表示this.transform.eulerAngles; //游戏对象相对于世界坐标系的角度的属性,用欧拉角表示this.transform.lossyScale; //游戏对象相对于世界坐标系的缩放大小//物体坐标系this.transform.localPosition; //对象相对于父对象坐标系的位置的属性this.transform.localEulerAngles; ...
U2L2——Mathf三角函数
U2L2——Mathf三角函数 Mathf类包含了计算三角函数的方法 注意:Mathf中的三角函数相关函数,传入的函数一定是需要弧度值!!! (180°=1π) 三角函数的相关知识 三角函数是基本初等函数之一 , 是以角度(数学上最常用弧度制,下同)为自变量,角度对应任意角终边与单位圆交点坐标或其比值为因变量的函数。 也可以等价地用与单位圆有关的各种线段的长度来定义。 三角函数(数学名词)_百度百科 (baidu.com) 基本函数 英文 缩写 表达式 语言描述 正弦函数 sine sin a/c ∠A的对边比斜边 余弦函数 cosine cos b/c ∠A的邻边比斜边 正切函数 tangent tan a/b ∠A的对边比邻边 余切函数 cotangent cot b/a ∠A的邻边比对边 正割函数 secant sec c/b ∠A的斜边比邻边 余割函数 cosecant csc c/a ∠A的斜边比对边 反三角函数是一种基本初等函数。 它是反正弦arcsin x,反余弦arccos x,反正切arctan...
U2L1——Mathf
U2L1——Mathf Mathf Math 是 C# 封装好的用于数学计算的工具类 —— 位与 System 命名空间中,即:System.Math Mathf 是 Unity 中封装好的用于数学计算的工具结构体 —— 位于 UnityEngine 命名空间中 他们都是提供来用于进行数学计算的 区别在于: Mathf 和 Math 中的相关方法几乎一样 Math 是 C# 自带的工具类 提供一些数学相关的计算方法 Mathf 是 Unity 专门封装的,不仅包含 Math 中的方法 还多了一些适用于游戏开发的方法 所以在 Unity 开发里,使用 Mathf 中的方法用于数学计算即可 本章代码关键字 12345678910111213141516Mathf.PI //πMathf.Abs() //绝对值Mathf.CeilToInt() //向上取整,直接加一Mathf.FloorToInt() ...
UD1L2-PlayerPrefs的存储位置
UD1L2-PlayerPrefs的存储位置 PlayerPrefs 在不同平台存储的位置不一样 Windows HKEY_CURRENT_USER\Software\Unity\UnityEditor\[公司名称]\[产品名称] 项下的注册表里 其中 [公司名称] 和 [产品名称] 是 在 “Project Settings”中设置的名称 使用 Win + R 运行 regedit,在如下路径内找到相关存储内容: HKEY_CURRENT_USER SOFTWARE Unity UnityEditor 公司名称 产品名称 点击产品名称,此时注册表窗口右侧的内容就是存储的各个键值对 Android 相关内容存储于:/data/data/包名/shared_prefs/pkg-name.xml IOS 相关内容存储于:/Library/Prefereces/[应用ID].plist
UG1L2——文本和按钮控件
UG1L2——文本和按钮控件 本章代码关键字 12345678Rect //描述UI控件位置尺寸信息的结构体Texture //图片信息类GUIContent //综合信息类,可以让Label控件同时显示图片与文字,可以设置tooltip信息GUI.tooltip //可以获取当前鼠标或者键盘选中的GUI控件对应的tooltip信息GUIStyle //自定义样式类,可以控制文本的样式GUI.Label() //绘制文本控件,还可以通过GUIContent和GUIStyle修改显示样式GUI.Button() //绘制按钮控件,如果在按钮的范围内按下并抬起就会返回trueGUI.RepeatButton() //绘制长按按钮控件,只要在按钮范围内按下就会一直返回true GUI绘制的共同点 它们都是GUI公共类中提供的静态函数,直接调用即可,它们的参数大同小异 主要参数如下: 控件布局类型参数:Rect:x,...
UG1L1——工作原理和主要作用
UG1L1——工作原理和主要作用 本章代码关键字 1OnGUI() { } //每帧执行的绘制UI的函数,该函数在OnDisable之前LateUpdate之后执行 主要作用 作为程序员的调试工具 创建游戏内调试工具 为脚本组件创建自定义检视面板 创建新的编辑器窗口和工具以拓展Unity本身(一般用作内置游戏工具) 注意:实际开发不要用它来为玩家制作UI功能!!! IMGUI工作原理 在继承 MonoBehaviour 的脚本中的特殊函数里调用GUI提供的方法,类似于生命周期函数 1234private void OnGUI(){ //在这里书写 GUI相关代码 即可显示GUI内容} 注意: 它每帧运行 相当于是用于专门绘制GUI界面的函数,一般只在其中执行GUI相关界面绘制和操作逻辑 该函数在 OnDisable 之前 LateUpdate 之后执行 只要是继承 MonoBehaviour 的脚本都可以在 OnGUI() 中绘制GUI
U1SL3——Unity的随机数和委托
U1SL3——Unity的随机数和委托 Unity的随机数 注意 在Unity里Random类 不是 C#自带的Random,这个Random隶属于UnityEngine命名空间 123int randomNum = Random.Range(0, 100); //注意,使用随机数 int重载 规则是 左包含 右不包含!!!print(randomNum);float randomNumF = Random.Range(1.1f, 99.9f); //注意,使用随机数 float重载 规则是 左和右都包含!!! 注意! 使用随机数 int 重载 规则是 左包含 右不包含!!! 使用随机数 float 重载 规则是 左和右都包含!!! 注意:如果还想使用C#自带的随机数,必须要指明System命名空间 12System.Random r = new System.Random();r.Next(0, 100); Unity的自带委托 UnityEngine命名空间下,也有新的自带委托,但是没有提供有返回值的委托 12345using...
U1SL2——设置鼠标
U1SL2——设置鼠标 隐藏鼠标 false就是隐藏鼠标 1Cursor.visible = false; 锁定鼠标 通过CursorLockMode枚举来决定是否锁定鼠标 None 就是 不锁定 Locked 锁定 鼠标会被限制在屏幕中心点(不仅会锁定还会被隐藏!!!)通过esc可以摆脱编辑模式下的锁定 Confined 限制在窗口内 1Cursor.lockState = CursorLockMode.Confined; 设置鼠标图片 参数一:光标图片 参数二:偏移位置 相对图片左上角 参数三:平台支持的光标模式(硬件或软件) 123456public Texture2D tex;void Start(){ Cursor.SetCursor(tex, Vector2.zero, CursorMode.Auto);}
U1SL1——场景切换和退出游戏
U1SL1——场景切换和退出游戏 场景切换相关 创建场景 方法一: 方法二: 场景切换 在Flie-Build Setting里打开可以看到场景列表,如果要用SceneManager切换场景, 需要提前场景加载到场景列表中!!注意顺序!!打包后默认进入0号场景 注意!如果没有把该场景加载到场景列表中,直接切换场景,可能会报错!!! 123456789using UnityEngine.SceneManagement;if (Input.GetKeyDown(KeyCode.Space)) { //切换到场景2 //直接 写代码 切换场景 可能会报错 //原因是没有把该场景加载到场景列表中 SceneManager.LoadScene("Test2");} 旧版本的方法,不建议使用 1Application.LoadLevel(); //已经过时,不建议使用,使用这个会警告 退出游戏相关 执行这句代码 就会退出游戏,但是,在编辑模式下没有作用,一定是发布游戏过后,才有用 1234567if...