Unity–小知识
本篇文章将不定时更新
文章目录
一、预制体(perfab)与实例化
instantiate–实例化:
eg:
预制体,生成位置,旋转角度,生成父物体
(Quaternion(四元数)是一种数学表示,用于表示和处理三维空间中的旋转)
它是由一个实部和三个虚部组成的四元组。四元数通常表示为:
q = w + xi + yj + zk
其中,w、x、y和z分别是四元数的四个分量,i、j、k是虚部单位。
在Unity中,四元数被用于表示游戏对象的旋转。Quaternion类提供了许多用于处理旋转的方法,如乘法、插值和创建旋转等。
二、字典(Dictionary)
需要引用的命名空间
Dictionary<K, V> dic = new Dictionary<K, V>();
其中:k代表键(key) v代表值(value)
方法:
1.ContainsKey
dic.ContainsKey(k)==>判断Dictionary中是否包含某个键
2.TryGetValue
当在字典中不能确定是否存在该键时需要使用TryGetValue,以减少一次不必要的查找,同时避免了判断Key值是否存在而引发的“给定关键字不在字典中。”的错误。(TryGetValue是根据ID返回相应的数据,如果没有ID则返回默认值)
var result = null; (Dictionary中的值为什么类型,result就是什么类型)
if (theDictionary.TryGetValue(id, out result))
{
//What ever you gonna do next…
}
三、Mathf
方法
1.Mathf.Abs(取绝对值)
2.Mathf.Approximately(判断两个值相似)
Mathf.Approximately是判断里面两个值是否相似
3.Mathf.MoveTowards(简单来说就是让a向b的值逐渐靠近)
public static float MoveTowards(float current, float target, float maxDelta);
Mathf.MoveTowards方法的功能是返回一个浮点数,其值为current向target靠近的一个值。靠近多少呢?由maxDelta决定
四、游戏退出(2d、3d都适用)
我们都知道Application.Quit();这个函数方法,但是这个函数方法只有在打包游戏后才可以退出游戏,要是想在Unity编译器中也可以退出的话,可以这样写:
五、获取当前鼠标下的Grid网格位置
//鼠标检测
private Camera mainCamera;//相机
private Grid currentGrid;//当前瓦片地图
private Vector3 mouseWorldPos;//鼠标在世界的位置
private Vector3Int mouseGridPos;//鼠标在grid地图上的位置
private void Start()
{
currentGrid = FindObjectOfType();
mainCamera = Camera.main;
}
private void FindPosition()
{
mouseWorldPos = mainCamera.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y,-mainCamera.transform.position.z));
mouseGridPos = currentGrid.WorldToCell(mouseWorldPos);
}