Unity基础 -- 更新中(2.15)

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;

在这里插入图片描述

在这里插入图片描述

看向

四元数计算

在这里插入图片描述

延迟函数

  1. 延迟函数

    参数一:函数名 字符串 参数二:延迟时间 单位秒

    注意:延迟函数无法直接调用有参函数,函数名必须是该脚本申明的函数

    Invoke("function", 5);
    
  2. 延迟重复执行函数

    参数一:函数名 字符串 参数二:第一次执行延迟时间 参数三:之后每次执行的间隔时间

    注意:同上

    InvokeRepeating("function", 5, 5);
    
  3. 取消延迟函数

    CancelInvoke(); // 取消该脚本上所有延迟函数
    CancelInvoke("function"); // 取消指定函数名的延迟函数
    
  4. 判断是否有延迟函数

    bool isInvoke = IsInvoking();
    bool isInvoke2 = IsInvoking("function");
    

影响延迟函数:

脚本依附对象失活、脚本失活,延迟函数继续执行

脚本依附对象销毁、脚本销毁,延迟函数继续执行

协同程序

  1. 多线程

    注意:新开的线程无法访问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");}
    }
    
  2. 协同程序(协程)

    • “假”的多线程,协程不是多线程

    • 将代码分时执行

    • 使用场景:异步加载、下载,场景异步加载,批量创建防止卡顿

    • 与线程的区别:

      ​ 线程:新开一个独立的管道和主线程并行执行

      ​ 协程:新开一个协程在原线程之上开启,进行逻辑的分时分步执行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/685110.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Midjourney绘图欣赏系列(三)

Midjourney介绍 Midjourney 是生成式人工智能的一个很好的例子,它根据文本提示创建图像。它与 Dall-E 和 Stable Diffusion 一起成为最流行的 AI 艺术创作工具之一。与竞争对手不同,Midjourney 是自筹资金且闭源的,因此确切了解其幕后内容尚不…

springboot191教师工作量管理系统

简介 【 毕设 源码 推荐 javaweb 项目】 基于 springbootvue 的教师工作量管理系统(springboot191) 适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后…

【机器学习笔记】8 决策树

决策树原理 决策树是从训练数据中学习得出一个树状结构的模型。 决策树属于判别模型。 决策树是一种树状结构,通过做出一系列决策(选择)来对数据进行划分,这类似于针对一系列问题进行选择。决策树的决策过程就是从根节点开始&…

2.15学习总结

2.15 1.聪明的质监员(二分前缀和) 2.村村通(并查集) 3.玉蟾宫(悬线法DP) 4.随机排列(树状数组逆序对问题) 5.增进感情(DFS) 6.医院设置(floyd) 聪明的质监员…

《动手学深度学习(PyTorch版)》笔记8.7

注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,书上的源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode在python 3.9.18下测试通过&…

C++数据结构与算法——双指针法

C第二阶段——数据结构和算法,之前学过一点点数据结构,当时是基于Python来学习的,现在基于C查漏补缺,尤其是树的部分。这一部分计划一个月,主要利用代码随想录来学习,刷题使用力扣网站,不定时更…

NLP_ChatGPT的RLHF实战

文章目录 介绍小结 介绍 ChatGPT 之所以成为ChatGPT,基于人类反馈的强化学习是其中重要的一环。而ChatGPT 的训练工程称得上是复杂而又神秘的,迄今为止,OpenAl也没有开源它的训练及调优的细节。 从 OpenAl已经公开的一部分信息推知&#xff…

计算机组成原理(2)-----存储芯片与CPU的连接

目录 一.单块存储芯片与CPU的连接 二.多块存储芯片与CPU的连接 1.位扩展 2.字扩展 (1)线选法 (2)译码器片选法 3.字位同时扩展 三.译码器相关 一.单块存储芯片与CPU的连接 如图所示是8*8位的芯片,总共8个存储…

OS设备管理

设备管理 操作系统作为系统资源的管理者,其提供的功能有:处理机管理、存储器管理、文件管理、设备管理。其中前三个管理都是在计算机的主机内部管理其相对应的硬件。 I/O设备 I/O即输入/输出。I/O设备即可以将数据输入到计算机,或者可以接收…

高校危化试剂管理:Java与SpringBoot的革新

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

Vue核心基础6:Vue内置指令、自定义指令、生命周期

1 Vue中的内置指令 <script>const vm new Vue({el: #root,data: {n: 1,m: 100,name: Vue,str: <h3>你好</h3>}})</script> 1.1 v-text <div v-text"name"></div>1.2 v-html <div v-html"str"></div> …

最小生成树(Kruskal算法及相关例题)

1.Kruskal算法概念以及基本思路 &#xff08;1&#xff09;概念&#xff1a; 克鲁斯卡尔算法是求连通网的最小生成树的另一种方法。它的时间复杂度为O&#xff08;ElogE&#xff09;(E是图G的边的总数)&#xff0c;适合于求边稀疏的网的最小生成树 。 其基本思想是&#xff…

黄金交易策略(Nerve Nnife.mql4):做单手数设计

完整EA&#xff1a;Nerve Knife.ex4黄金交易策略_黄金趋势ea-CSDN博客 NK的做单量是由参数设定的&#xff0c;以下分别是参数项&#xff1a; 考虑到复利的情况&#xff0c;若10000本金&#xff0c;在以上三个参数的设计下&#xff0c;第1单的购买量是0.01*10,第2单是0.01*10*2…

Java迭代器详解,看这一篇就够了

文章目录 &#x1f6a9;Java 迭代器详解 &#x1f4da;迭代器的定义 &#x1f4d2;认识Iterator ✏️类结构图 ✒️Iterable接口 &#x1f58d;️Iterator接口 &#x1f4c3;Iterator接口的方法 &#x1f4d9;迭代器的使用 &#x1f3f7;️使用迭代器遍历集合 &#x1f516;Ite…

[BIZ] - 1.金融交易系统特点

1. 典型数据汇总 数据 说明 新增数据量(条/天) Qps(条/s) 消息大小(Byte) 实时性 可丢失性 可恢复性 实时行情 1.使用场景&#xff1a;交易&#xff0c;报价&#xff0c;策略验证&#xff1b; 2.冷热分离&#xff1a;彭博行情/其他行情&#xff1b;黄金&期货行情/…

Java图形化界面编程——AWT概论 笔记

2.3 Container容器 2.3.1 Container继承体系 Winow是可以独立存在的顶级窗口,默认使用BorderLayout管理其内部组件布局;Panel可以容纳其他组件&#xff0c;但不能独立存在&#xff0c;它必须内嵌其他容器中使用&#xff0c;默认使用FlowLayout管理其内部组件布局&#xff1b;S…

交通管理|交通管理在线服务系统|基于Springboot的交通管理系统设计与实现(源码+数据库+文档)

交通管理在线服务系统目录 目录 基于Springboot的交通管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户信息管理 2、驾驶证业务管理 3、机动车业务管理 4、机动车业务类型管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计…

MySQL学习Day15——MySQL安装与使用

一、Linux下的MySQL的安装与使用: 卸载MySQL: 1.关闭当前MySQL服务:systemctl stop mysql.service 2.查看当前mysql安装状况:rpm -qa | grep -i mysql 3.卸载上述命令查询出的已安装的程序:yum remove mysql-xxx mysql-xxx mysql-xxxx 4.删除mysql相关文件: (1)查找相关文…

解决vscode报错,在赋值前使用了变量“XXX“

问题&#xff1a;如图所示 解决方法&#xff1a; 法一&#xff1a; 补全函数使其完整 法二&#xff1a; 使用断言

c++Qt网络操作

1、基础概念 1.1 TCP/UDP TCP 是一种面向连接的传输层协议&#xff0c;它能提供高可靠性通信(即数据无误、数据无丢失、 数据无失序、数据无重复到达的通信) 适用情况&#xff1a; 1.SN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议 2、适合于对传输质量要求较…