在苏州找学生做家教在哪个网站,网站模版 拓,全国公共资源交易中心招标网,北京建设网 工程信息Unity基础 文章目录 Unity基础3D数学 -- 基础一些方法插值运算三角函数坐标系 3D数学 -- 向量理解常用函数线性插值 3D数学 -- 四元数看向四元数计算 延迟函数协同程序 3D数学 – 基础
一些方法
float value01 Mathf.PI; // Π
int value03 Mathf.Abs(-2); // 绝对值
int v…Unity基础 文章目录 Unity基础3D数学 -- 基础一些方法插值运算三角函数坐标系 3D数学 -- 向量理解常用函数线性插值 3D数学 -- 四元数看向四元数计算 延迟函数协同程序 3D数学 – 基础
一些方法
float value01 Mathf.PI; // Π
int value03 Mathf.Abs(-2); // 绝对值
int value04 Mathf.CeilToInt(1.3f); // 向上取整
int value05 Mathf.FloorToInt(1.6f); // 向下取整
int value06 Math.Clamp(5, 10, 20); // 钳制函数在10~20直接返回值10~20之外返回接近的那个值
int value07 Mathf.Min(10, 90, 2); // 最小值,参数可变长
int value08 Mathf.Max(1, 2, 6); // 最大值,参数可变长
float value09 Mathf.Pow(5, 2); // 幂运算
int value10 Mathf.RoundToInt(1.5f); // 四舍五入
float value11 Mathf.Sqrt(4.0f); // 平方根 插值运算 三角函数 // 弧度转角度float rad 5;float anger 5 * Mathf.Rad2Deg;// 角度转弧度anger 1;rad anger * Mathf.Deg2Rad;// 三角函数参数是弧度值anger 30 * Mathf.Deg2Rad;float sin30rad Mathf.Sin(anger);// 反三角函数返回值是弧度值float asin Mathf.Asin(1);print(asin * Mathf.Rad2Deg);坐标系 3D数学 – 向量
理解 常用函数
// 点乘
Vector3.Dot(dir1, dir2);// 叉乘
Vector3.Cross(dir1, dir2);// 角度
Vector3.Angle(dir1, dir2);// 两点间距离
Vector3.Distance(pos1, pos2);线性插值
与Mathf.Lerp用法相同只是参数为Vector3 3D数学 – 四元数 // 初始化四元数Quaternion q Quaternion.AngleAxis(60, Vector3.right);this.transform.rotation q;// 欧拉角转四元数Vector3 euler new Vector3(1, 2, 3);Quaternion qua Quaternion.Euler(euler);// 四元数转欧拉角euler qua.eulerAngles;看向 四元数计算 延迟函数 延迟函数 参数一函数名 字符串 参数二延迟时间 单位秒 注意延迟函数无法直接调用有参函数函数名必须是该脚本申明的函数 Invoke(function, 5);延迟重复执行函数 参数一函数名 字符串 参数二第一次执行延迟时间 参数三之后每次执行的间隔时间 注意同上 InvokeRepeating(function, 5, 5);取消延迟函数 CancelInvoke(); // 取消该脚本上所有延迟函数
CancelInvoke(function); // 取消指定函数名的延迟函数判断是否有延迟函数 bool isInvoke IsInvoking();
bool isInvoke2 IsInvoking(function);影响延迟函数
脚本依附对象失活、脚本失活延迟函数继续执行
脚本依附对象销毁、脚本销毁延迟函数继续执行
协同程序 多线程 注意新开的线程无法访问Unity相关对象的内容 Thread th;void Start()
{th new Thread(Test); // 创建线程th.Start(); // 开启线程
}// 线程与Unity编辑器共存亡所以需要关闭线程
private void OnDestroy()
{th.Abort(); // 结束线程th null;
}private void Test()
{while(true){Thread.Sleep(1000);print(Thread);}
}协同程序协程 “假”的多线程协程不是多线程 将代码分时执行 使用场景异步加载、下载场景异步加载批量创建防止卡顿 与线程的区别 线程新开一个独立的管道和主线程并行执行 协程新开一个协程在原线程之上开启进行逻辑的分时分步执行