unity基础(一)

server/2024/10/21 6:21:44/

内容概要:

  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.ppmy.cn/server/38978.html

相关文章

【退役之重学Java】如何保证从消息队列里拿到的消息顺序执行

一、场景 MySQL binlog 同步数据,比如大数据team。在MySQL中进行增删改查,将其 binlog 发送到 MQ 里面,到消费出来执行,这里就必须要保证其顺序执行,不然数据库就会错乱。 二、如何保证消息的顺序性呢? …

二、Redis五种常用数据类型-String

1、用途 简单的K-V缓存计数器分布式锁session共享分布式ID生成(自增) 2、底层实现结构 Redis底层是c语言实现的,但是并没有使用c的string来表示字符串,而是使用自己的简单动态字符串的抽象类型(simple dynamic string,SDS)。 SDS结构: st…

【思考讨论】如何利用AI提高内容生产效率?

1. 自动化内容生成 利用人工智能(AI)提高内容生产效率,尤其是在自动化内容生成方面,已经成为媒体、营销、教育等多个领域的热门话题。随着自然语言处理(NLP)、机器学习、深度学习等技术的飞速发展&#xf…

Linux-02

Linux常用命令: ls: 列出目录touch: 创建文件 touch test.txt echo:往文件写内容echo "i love linux" >>test.txtcd:切换目录pwd:显示目前的目录mkdir:创建一个新的目录 mkdir dai:创建目录dai mkdir -p test1/t…

AlibabaCloud微服务下的链路追踪系统实战详解

🚀 作者 :“二当家-小D” 🚀 博主简介:⭐前荔枝FM架构师、阿里资深工程师||曾任职于阿里巴巴担任多个项目负责人,8年开发架构经验,精通java,擅长分布式高并发架构,自动化压力测试,微服务容器化k…

JavaFX 动态加载目录下所有WAV文件并逐个播放

在JavaFX中动态加载一个目录下的所有.wav文件并逐个播放,你可以使用java.nio.file包来遍历目录,并使用javax.sound.sampled包来播放音频文件。不过,需要注意的是,JavaFX本身并不直接支持音频播放,但你可以使用Java的标…

docker学习笔记(四)制作镜像

目录 第1步:编辑Dockerfile 第2步:编辑requirements.txt文件 第3步:编辑app.py文件,我们的程序文件 第4步:生成镜像文件 第5步:使用镜像,启动容器 第6步: 启动redis容器、将容器…