unity基础(一)

内容概要:

  1. 生命周期函数
  2. vector3 位置 方向 缩放旋转等信息
  3. Vector3欧拉角和Quaternion四元素
  4. unity脚本执行顺序设置

一 生命周期函数

方法说明
Awake最早调用,所以一般可以再此实现单例模式
OnEnable组件激活后调用,在Awake后会调用一次
Start在Update之前调用一次,在OnEnable之后调用,可以在此设置一些初始化值
FixeUpdate固定频率调用方法。每帧调用一次 每次调用与上次调用的时间间隔相同
Update帧率调用方法,每帧调用一次,每次调用与上次调用的时间间隔不相同
LateUpdate在Update每调用完一次后 紧跟着调用一次
OnDisable在OnEnable相反。组件未激活时调用
OnDestroy被销毁后调用一次

二 Vector3(即是位置 也是方向)
在三维世界中,最重要的就是确定物体在三维世界中 的位置、大小和缩放等信息。在Unity中,Vector3结构体就是用来表示这些信息的,此外也用Vector2来表示二维世界中的信息。

Vector3结构体由x、y、z这3个数值组成,表示了一个向量;除了可以用来表示向量外,还可以用来表示位置、旋转和缩放等信息。 所以在使用Vector3的时候一定要先确定这里的Vector3表示的是什么信息,再进行使用。

基础用法

//向量(从(0,0,0)指向(1,1,1)),坐标,旋转,缩放
//Vector3得具体情况具体分析
Vector3 v = new Vector3(1, 1, 1);
Vector3 v1 = new Vector3(45, 90, 1);
Vector3 v2 = new Vector3(1, 1, 0.5f);

进阶用法
进阶用法

Vector3 v = new Vector3(1, 1, 1);
v = Vector3.zero;
v.x = 2;
v.y = 2;
v.z = 2;

三 欧拉角和四元素

// 欧拉角
Vector3 rotate = new Vector3(60, 45, 0)
// 四元素
Quaternion quaternion = Quaternion.identity;
// 欧拉角转四元素
quaternion = Quaternion.Euler(rotate);
// 四元素转欧拉角
Debug.Log(quaternion.eulerAngles);

1.简介
Quaternion又称四元数,由x,y,z和w这四个分量组成,四元数的乘法不符合交换律。从明确地角度而言,四元数是复数的不可交换延伸。如把四元数的集合考虑成多维实数空间的话,四元数就代表着一个四维空间,相对于复数为二维空间。
2.Unity里面的Transform组件里的Rotation是四元数,但是他是以欧拉角(Vector3)的形式展现在我们面前,目的就是为了方便我们修改。因此,我们给Rotation直接赋值的时候,也只能用Quaternion赋值。意识到这点很重要

rotation.eulerAngles = new Vector3(0, 30, 0);

3.四元数q转欧拉角v

Vector3 v = q.eulerAngles;

4.欧拉角v转四元数q

Quaternion q = Quaternion.Euler(v);

5.获取某物体的旋转角度

transform.rotation:物体旋转角度的四元数(受父物体影响)transform.localRotation:物体旋转角度的四元数(不受父物体影响)transform.eulerAngles:物体旋转角度,(Inspector面板中Rotation显示的数,受父物体影响)transform.localEulerAngles:物体旋转角度,(Inspector面板中Rotation显示的数,不受父物体影响)

6.赋值操作示列

PlayerEx.transform.position = new Vector3(1f, -1f, 1);
PlayerEx.transform.rotation = Quaternion.Euler(0 , - 30, 0);

四,动画资源网站

五 unity脚本执行顺序设置
在 Unity 中,如果有多个脚本,并且它们之间的执行顺序很重要,可以通过编辑器设置来确保它们按照自己期望的顺序执行。这对于确保某些脚本在其他脚本之前执行非常有用。在这篇文章中,将向会展示如何在 Unity 编辑器中设置脚本的执行顺序。

步骤一:打开编辑器设置
首先,打开 Unity 项目。然后,按照以下步骤打开编辑器设置:

在 Unity 编辑器的顶部菜单栏中,选择“编辑”(Edit)。
在下拉菜单中,选择“项目设置”(Project Settings)。
在这里插入图片描述
步骤二:设置脚本执行顺序
在项目设置窗口中,会看到一个名为“脚本执行顺序”的选项卡。点击它,将看到一个脚本列表,其中列出了项目中的所有脚本以及它们当前的执行顺序。
在这里插入图片描述

也可以随便点击一个脚本然后点击Inspector面板(右上角)的Execution Order…按钮

在这里插入图片描述

要设置脚本的执行顺序,可以执行以下操作之一:

拖动脚本: 在列表中,可以通过点击脚本并将其拖动到所需位置来调整执行顺序。这样,可以确保一个脚本在另一个脚本之前执行,也可以在出现的面板中点击+号,选择要设置顺序的脚本。

设置Default Time值:修改Default Time值为100、200…,注意Default Time值越小,越先执行

步骤三:保存设置
在完成设置后,确保点击项目设置窗口底部的“Apply”按钮,以应用所做的更改。这样就成功地设置了脚本的执行顺序。

示例
假设有两个脚本:ScriptA 和 ScriptB,并且希望 ScriptA 在 ScriptB 之前执行。通过按照上述步骤,在脚本执行顺序列表中将 ScriptA 移动到 ScriptB 之前,然后保存设置,就成功地设置了脚本的执行顺序。

结论
通过在 Unity 编辑器中设置脚本的执行顺序,可以确保它们按照自己期望的顺序执行,从而有效地管理项目中的脚本执行逻辑。这对于确保特定脚本在其他脚本之前或之后执行非常有用,帮助你更好地控制项目的行为和逻辑。

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

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

相关文章

软件架构的艺术:探索演化之路上的18大黄金原则

实际工作表明,一步到位的设计往往不切实际,而演化原则指导我们逐步优化架构,以灵活响应业务和技术的变化。这不仅降低了技术债务和重构风险,还确保了软件的稳定性和可扩展性。同时,架构的持续演进促进了团队协作&#…

java:递归实现的案例

//求第20个月兔子的对数 //每个月兔子对数:1,1,2,3,5,8 public class Test {//求第20个月兔子的对数//每个月兔子对数:1,1,2,3,5,8pu…

Linux进程——Linux进程与进程优先级

前言:在上一篇了解完一部分常见的进程状态后,我们先来把剩下的进程状态了解一下,再来进入进程优先级的学习! 如果对前面Linux进程不太熟悉可以先阅读: Linux进程 本篇主要内容: 僵尸进程和孤儿进程 Linux进…

LLM——用于微调预训练大型语言模型(LLM)的GPU内存优化与微调

前言 GPT-4、Bloom 和 LLaMA 等大型语言模型(LLM)通过扩展至数十亿参数,实现了卓越的性能。然而,这些模型因其庞大的内存需求,在部署进行推理或微调时面临挑战。这里将探讨关于内存的优化技术,旨在估计并优…

DevEco Studio 3.1.1 Release没有代码补全提示

DevEco Studio 目前官网最新版就是3.1.1 Release 尝试方案(统统无效): 1、File->Invalidate Caches/Restart 2、关闭Power save mode(在File目录下) 3、在菜单栏File->Close Project,关闭工程&#x…

LTE的EARFCN和band之间的对应关系

一、通过EARFCN查询对应band 工作中经常遇到只知道EARFCN而需要计算band的情况,因此查了相关协议,找到了他们之间的对应关系,可以直接查表,非常方便。 具体见: 3GPP TS 36.101 5.7.3 Carrier frequency and EAR…

单细胞|GeneTrajectory·基因轨迹

跑完了,记录一下,顺便写写我在使用中遇到的问题,欢迎讨论~ 声明:我是用自己数据跑的,因为还未发表所以就还是借用官网的图啦~ 1.准备 library(GeneTrajectory) library(Seurat) library(dply…

OpenCV 入门(五) —— 人脸识别模型训练与 Windows 下的人脸识别

OpenCV 入门系列: OpenCV 入门(一)—— OpenCV 基础 OpenCV 入门(二)—— 车牌定位 OpenCV 入门(三)—— 车牌筛选 OpenCV 入门(四)—— 车牌号识别 OpenCV 入门&#xf…

STM32程序进入hardfault_handler()

背景: 假期前一直在修改代码,没有边改边测。节后回来测试代码,发现程序上电后很快就进入hardfault_handler()中断。 导致程序反复复位。 查找原因: 在程序的_it.c文件里有几句代码,如果注释…

【陀螺仪JY61P维特智能】通过单片机修改波特率和角度参考的方法

根据官方文档: 修改波特率 1.解锁:FF AA 69 88 B5 1.1延时200ms 2.修改波特率:FF AA 04 06 00 2.1切换已修改的波特率然后重新发送解锁和保存指令 2.2解锁:FF AA 69 88 B5 2.3延时200ms 4.保存: FF AA 00 00 00 XY轴角度参考 角度参考是以传感器当前的实际位置&…

【系统分析师】系统分析部分

文章目录 1、系统分析概述2、详细调查2.1 为什么要做详细调查?2.2 详细调查的原则2.3 详细调查的内容2.4 详细调查的方法 3、现有系统分析3.1 获得系统的物理模型3.2 抽象出现有系统的逻辑模型3.3 建立新系统的逻辑模型3.4 建立新系统的物理模型 4、组织结构分析4.1…

记录汇川:电磁阀封装

二位电磁阀封装: 中封三位电磁阀封装: HMI:

用Redis延时队列搞定订单超时业务

Redis延时队列是一种用于在特定时间后执行任务的消息队列。它在许多场景中非常有用,比如订单超时自动关闭、定时提醒等。在Redis中,通常使用Sorted Set(有序集合)来实现延时队列,因为Sorted Set可以按照分数进行排序&a…

10页面结构分析

我们打开一个网页&#xff0c;都会有一个清晰的结构和布局上图中的标签就是用来划分各个部分区域用的。其中比较常用重要的是header、footer和nav&#xff0c;需要重点掌握。 下面是部分代码及效果演示 <header> <h2>网页头部</h2> </header><sec…

vue2结合element-ui实现TreeSelect 树选择功能

需求背景 在日常开发中&#xff0c;我们会遇见很多不同的业务需求。如果让你用element-ui实现一个 tree-select 组件&#xff0c;你会怎么做&#xff1f; 这个组件在 element-plus 中是有这个组件存在的&#xff0c;但是在 element-ui 中是没有的。 可能你会直接使用 elemen…

详解MySQL常用的数据类型

前言 MySQL是一个流行的关系型数据库管理系统&#xff0c;它支持多种数据类型&#xff0c;以满足不同数据处理和存储的需求。理解并正确使用这些数据类型对于提高数据库性能、确保数据完整性和准确性至关重要。本文将详细介绍MySQL中的数据类型&#xff0c;包括数值类型、字符…

大数据高级阶段面试题(实时)

1.Kafka的producer如何实现幂等性? ①开启幂等性&#xff0c;将Idempotent设置为true ②将ack设置为-1&#xff0c;确保相同的消息只会发送一次&#xff0c;避免重新发送 2.Kafka的ISR和OSR的作⽤分别是什么? ISR是副本和领导者的数据和状态要保持一致&#xff0c;如果出现…

游泳耳机哪个牌子好性价比高?这四款热榜游泳耳机必须要看!

随着生活品质的提升和健康意识的增强&#xff0c;游泳已成为许多人日常锻炼的首选。在享受水中畅游的同时&#xff0c;音乐成为了许多游泳爱好者的最佳伴侣。游泳耳机&#xff0c;作为一种专为水下运动设计的音频设备&#xff0c;近年来逐渐受到市场的青睐。然而&#xff0c;面…

新华三VRRP配置

新华三VRRP配置 配置步骤 (1).基础配置&#xff1a; CORE1&#xff1a; [CORE1]vlan 10 //创建vlan10 [CORE1-vlan10]int vlan 10 //进入vlanif 10 [CORE1-Vlan-interface10]ip add 192.168.10.1 24 //配置ip [CORE1-Vlan-interface10]int g1/0/2 //进入接口 [C…

【OCPP】ocpp1.6协议第3.11章节Reservations和第3.12章节Vendor-specific data transfer-介绍及翻译

目录 3.11章节Reservations 概述 3.11章节Reservations 译文 3.12章节Vendor-specific data transfer 概述 3.12章节Vendor-specific data transfer 译文 3.11章节Reservations 概述 OCPP1.6协议中的3.11章节关于“Reservations”主要对充电桩预定过程进行了定义和规定。 基…