unity基础(一)

news2024/11/17 21:52:18

内容概要:

  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.coloradmin.cn/o/1655944.html

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

相关文章

Spring 中 @Transactional 是怎么引入事务 AOP 的?

在 Spring 中,Transactional 注解是管理事务的关键工具之一。它允许开发人员通过简单地在方法或类上添加注解来定义事务的边界,从而实现对数据库操作的事务管理。 Transactional 是基于 Spring AOP(Aspect-Oriented Programming,…

【小笔记】问答系统可视化实现的三种方式

下面三种方式都是基于Python的哈,从简单到复杂。 方式一:命令行交互问答 优点:原始简单直接 方式二:使用Python可视化框架 优点:无需学习前端技术栈即可搭建一个web。 streamlit:⭐️⭐️⭐️⭐️gra…

炒美股怎么开户?

近年来,随着国内投资者对境外投资需求的不断增长,炒美股逐渐成为许多投资者的选择。然而,随着监管政策的不断完善,传统的互联网券商开户方式已经不再适用。那么,对于想要入场美股市场的投资者来说,该如何开…

太牛逼了,用ComfyUI中一键完成电商模特换装换背景!商业级教程附上!

🌐 大背景:电商时代的画卷正在翻页 在全球电子商务风起云涌的今天,市场竞争愈发激烈。商家们始终在寻求提高效率、减少成本和增强用户体验的新方法。然而,一个关键问题一直困扰着电商行业——**如何高效且经济地展示商品&#xff…

Vue 项目 尚品汇(二)(暂停进行)

一、Home 模块组件拆分 基本流程 先写静态页面 拆分静态组件 获取服务器的数据进行展示 动态业务 (一)三级联动组件 如果一个组件在很多模块之间都在使用,我们就拆分成成一个全局组件 只需注册一次 在全局的项目都能使用 三级联动在 …

深入理解Go语言并发编程

随着计算机硬件的发展,多核处理器已经成为现代计算机的主流配置。在这样的背景下,并发编程成为了一种必备的技能。Go 语言作为一门先进的编程语言,天生支持并发编程,提供了丰富的并发原语和工具,使得并发编程变得更加容…

[YOLOv8] 用YOLOv8实现指针式圆形仪表智能读数(一)

最近研究了一个项目,利用python代码实现指针式圆形仪表的自动读数,并将读数结果进行输出,若需要完整数据集和源代码可以私信。 目录 🍓🍓1.yolov8实现圆盘形仪表智能读数 🙋🙋2.仪表目标检测…

机器人系统可以支持对接人工系统吗?

​ 随着科技的飞速发展,机器人系统在各行各业都扮演着越来越重要的角色。它们可以高效地处理大量数据,执行繁琐的任务,甚至在某些领域超越了人类的能力。然而,机器人系统也有其局限性,特别是在处理复杂的人际交往…

linux 服务器无 sudo 权限非 root 用户安装特定版本 cuda

1. 下载 cuda toolkit 下载想要版本的 cuda toolkit CUDA Toolkit 11.8 Downloads | NVIDIA Developer [xxxlocalhost ~]$ hostnamectlStatic hostname: localhost.localdomainIcon name: computer-serverChassis: serverMachine ID: b4258bf9bef54798b03e8e3a13756124Boot …

如何做到销售订单不做可用量检查,而交货单做

如何保证一个用户做某物料可用量检查时,不会锁定物料 可用量和需求冻结标志 Indicates whether, during the availability check, the material is blocked for other users. The block remains until the transaction responsible has been saved. It is set at m…

Web3与跨境支付:探讨区块链如何改变国际交易

随着区块链技术的发展和普及,人们开始意识到其在跨境支付领域的巨大潜力。在传统的跨境支付系统中,存在着诸多问题,如高昂的手续费、长时间的处理周期以及缺乏透明度等。而区块链作为一种去中心化、安全、透明且可追溯的技术,被认…

一步成像:Hyper-SD在图像合成中的创新与应用

一、摘要: 论文:https://arxiv.org/pdf/2404.13686 代码:https://huggingface.co/ByteDance/Hyper-SD 在生成人工智能领域,扩散模型(Diffusion Models, DMs)因其出色的图像生成质量而备受关注,但…

Oracle里令人头疼的生僻字处理案例

事情起因 有小伙伴找到我问一下生僻字的问题,数据库是oracle 11g,字符集是zhs16gbk 下图里显示的??应该是“𧿹”这个字,算是个生僻字。 问应用厂家就说数据库字符集建错了,要改库的字符集。…

LeetCode89:柠檬水找零

题目描述 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零&a…

docker容器技术篇:rancher管理平台部署kubernetes集群

rancher管理平台部署kubernetes集群 Rancher 是一个 Kubernetes 管理工具,让你能在任何地方和任何提供商上部署和运行集群。 Rancher 可以创建来自 Kubernetes 托管服务提供商的集群,创建节点并安装 Kubernetes,或者导入在任何地方运行的现…

引领AI数据标注新纪元:景联文科技为智能未来筑基

在人工智能蓬勃发展的今天,数据如同燃料,驱动着每一次技术飞跃。在这场智能革命的浪潮中,景联文科技凭借其深厚的专业实力与前瞻性的战略眼光,正站在行业前沿,为全球的人工智能企业提供坚实的数据支撑。 全国布局&…

C++向函数传递对象

C语言中,对象作为函数的参数和返回值的传递方式有 3 种:值传递、指针传递和引用传递。 1. 对象作为函数参数 把实参对象的值复制给形参对象,这种传递是单向的,只从实参到形参。因此,函数对形参值做的改变不会影响到实…

Qt 6.7功能介绍

Qt 6.7为我们所有喜欢在构建现代应用程序和用户体验时获得乐趣的人提供了许多大大小小的改进。一些新增内容作为技术预览发布,接下来我们就一起来看看吧: 将C20与Qt一起使用 对于许多编译器工具链来说,C20仍然是可选的和实验性的,…

tartiflette,一个有趣的 Python 库!

更多Python学习内容:ipengtao.com 大家好,今天为大家分享一个有趣的 Python 库 - tartiflette。 Github地址:https://github.com/tartiflette/tartiflette Tartiflette是一个为Python编写的GraphQL服务器实现,它建立在现代异步编程…

机器学习中线性回归算法的推导过程

线性回归是机器学习中监督学习中最基础也是最常用的一种算法。 背景:当我们拿到一堆数据。这堆数据里有参数,有标签。我们将这些数据在坐标系中标出。我们会考虑这些数据是否具有线性关系。简单来说 我们是否可以使用一条线或者一个平面去拟合这些数据的…