三、Unity基础(主要框架)

一、Unity场景概念

如果把游戏运行过程理解成表演,那么场景就是舞台;

场景本质上是一个配置文件,这个配置文件决定了场景中有哪些东西;

二、Scene和Game窗口

1、Scene

滚轮缩放、拖动

单独选中也可以

最下面这个是全能工具,包含以上所有功能。


在Unity中,可以通过代码编辑器打开unity的界面代码。

Unity的层级面板中 旋转角度有三个值,但是在界面代码中是以四元数呈现出来的旋转角度 

 在界面代码中修改数值,Unity会提示重载。

三、游戏物体概念 

1、物体概念

场景是舞台,那么游戏物体就是演员

在 Unity中称为GameObject

在层级面板中一层一层的覆盖,最下层的会最先渲染

2、组件概念

组件:类似于模块,插上就有,拔掉就没有

Unity中大多情况下,我们写的脚本就是一个组件;Unity内任何游戏物体必须有Transfrom组件;

四、Project窗口和Inspector窗口

1、Project

Project是一个开发时使用的项目资源管理器,是一个文件夹结构
使用右键,创建Unity资源

2、Inspector

也叫检查器窗口

查看某个东西的属性设置

二者一一对应

相当于把Scene面板可视化

五、自定义组件

Unity开发思想在于组件的复用

在开发中,可以创造一些通用的功能,在项目中进行复用

 

六、从代码角度认识GameObject

1、主要属性

 //组件如何获取自身的宿主GameObjectDebug.Log(gameObject.name);gameObject.name = "WSAD";Debug.Log(gameObject.name);

2、主要行为

3、销毁组件方式

 七、Transform组件的基本信息

作用:负责位置、旋转、缩放的组件;负责父子节点的管理;

transform.position = new Vector3(1,1,1);
//transform.rotation = new Vector3 (0,0,0);
transform.eulerAngles = new Vector3(0,0,0);
transform.localScale = new Vector3(2,2,2);

在Unity的Transform组件中,调用的API为这三种。

注:旋转是四元数,不是rotation 

 

默认获取的是世界坐标 

八、坐标与Vector结构体

每一个对象根据层级结构排列;有世界坐标和局部坐标

修改当前物体Trans坐标

//1
transform.position = new Vector3(0, 3, 0);
//2
transform.position = new Vector3(transform.position.x, 3, transform.position.z);
//3
Vector3 pos= transform.position;
pos.y = 3;
transform.position = pos;

以上三种方法相同 

更改旋转坐标

transform.eulerAngles = new Vector3(50,60,70);

 注:三个数值不能全是90°,会发生万向锁情况。、

九、Transform维护父子结构

1、如何删除游戏物体

两个API

Destroy:销毁物体,不是立即销毁,而是在Update之后销毁

DestroyImmediate:立刻销毁,销毁完才会执行下一行代码

立即销毁,无法输出,会出现空引用

普通销毁,可以输出

2、如何设置父物体

test.SetParent(transform);
test.SetParent(null);

3、如何遍历所有子物体

for循环遍历

注:for循环的编程错误

 for(int i=0;i<test.childCount;i++){test.GetChild(i).SetParent(null);}

原因是:每一次循环,子物体的数量都会减少,因此变量i小于的数量不是定值,而是依次加一

解决方案:

第一种:

一直判断物体的子物体个数是否大于0;一直移除第0位

//解决方法 一直移除第0位方式
while (test.childCount > 0)
{test.GetChild(0).SetParent(null);
}
第二种:

把子物体数量减一,然后移除第零位或者第i位

//倒着遍历
for (int i = test.childCount - 1; i >= 0; i--)
{test.GetChild(0).SetParent(null);
}

十、组件的生命周期

1、生命周期的概念

一般指一个组件从创建到销毁的所有阶段;这些阶段所做的事情,就是生命周期函数;

也被称为事件函数

2、生命周期函数

Awake和OnDestroy是针对物体的情况的,不是代码情况
把代码取消勾选,这两个函数中的代码依然会执行 

3、帧的理解

 Unity中常见的移动方式

void Update()
{float speed = 2f;transform.position+=new Vector3(0,0,speed*Time.deltaTime);
}

注:这里一定要用+=


十一、Translate移动

Transform的一个基本函数

1、Translate移动代码

 这两个代码相同

private void Update()
{float speed = 2f;transform.position += new Vector3(0,0,speed*Time.deltaTime);transform.Translate(new Vector3(0, 0, speed * Time.deltaTime));
}

沿着世界坐标(世界方向) 或者 自身坐标(自己的朝向) 移动

transform.Translate(new Vector3(0, 0, speed * Time.deltaTime),Space.World);
transform.Translate(new Vector3(0, 0, speed * Time.deltaTime),Space.Self);

简化

Vector3 pos=new Vector3(0,0,speed*Time.deltaTime);
transform.Translate(pos,Space.Self);

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

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

相关文章

微软官方出品GPT大模型编排工具:7个开源项目

今天一起盘点下&#xff0c;12月份推荐的7个.Net开源项目&#xff08;点击标题查看详情&#xff09;。 1、一个浏览器自动化操作的.Net开源库 这是一个基于 Google 开源的 Node.js 库 Puppeteer 的 .NET 开源库&#xff0c;方便开发人员使用无头 Web 浏览器抓取 Web、检索 Ja…

C++笔记之类型大小、变量大小,vector与string在栈上内存、堆上内存和总内存的关系

C++笔记之类型大小、变量大小,vector与string在栈上内存、堆上内存和总内存的关系 code review! 文章目录 C++笔记之类型大小、变量大小,vector与string在栈上内存、堆上内存和总内存的关系1.`std::vector<float>` 的内存占用2.`std::vector<float>` 的 `capaci…

华为昇腾920b服务器部署DeepSeek翻车现场

最近到祸一台HUAWEI Kunpeng 920 5250&#xff0c;先看看配置。之前是部署的讯飞大模型&#xff0c;发现资源利用率太低了。把5台减少到3台&#xff0c;就出了他 硬件配置信息 基本硬件信息 按照惯例先来看看配置。一共3块盘&#xff0c;500G的系统盘&#xff0c; 2块3T固态…

【工具变量】ZF引导基金合集(1900-2024年)

政府引导基金是以股权或债权等方式投资于创业风险投资机构或新设的创业风险投资基金&#xff0c;主要用于支持创业企业的发展。根据不同类型的基金&#xff0c;基金出资结构有所不同&#xff0c;可能由政府全额或部分出资&#xff0c;并吸引社会资本和金融机构的参与。 一、政府…

【Java 面试 八股文】常见集合篇

常见集合篇 1. 常见集合有哪些2. ArrayList底层实现的原理是什么&#xff1f;3. ArrayList listnew ArrayList(10)中的list扩容几次4. 如何实现数组和List之间的转换5. ArrayList和LinkedList的区别是什么&#xff1f;6. 说一下HashMap的实现原理&#xff1f;7. HashMap的jdk1.…

使用 DeepSeek 生成商城流程图

步骤 1.下载 mermaid 2.使用 DeepSeek 生成 mermaid 格式 3.复制内容到 4.保存备用。 结束。

STM32 Flash详解教程文章

目录 Flash基本概念理解 Flash编程接口FPEC Flash擦除/写入流程图 Flash选项字节基本概念理解 Flash电子签名 函数读取地址下存放的数据 Flash的数据处理限制部分 编写不易&#xff0c;请勿搬运&#xff0c;感谢理解&#xff01;&#xff01;&#xff01; Flash基本概念…

高精度 A+B Problem

题目描述 高精度加法&#xff0c;相当于 ab problem&#xff0c;不用考虑负数。 输入格式 分两行输入。a,b ≤ 。 输出格式 输出只有一行&#xff0c;代表 ab 的值。 输入输出样例 输入 #1 1 1 输出 #1 2 输入 #2 1001 9099 输出 #2 10100 #include<iostream…

spring boot单元测试

在pom文件中添加测试依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency> 复制粘贴自动创建的单元测试类 文件名改为HelloCo…

A Unified Model for Multi-class Anomaly Detection

多类别异常检测的统一模型 文章链接&#xff1a;点这里 源码链接&#xff1a;点这里 研究目的 1.解决多类别异常检测的挑战 现有的异常检测方法通常需要为每个类别单独训练模型&#xff0c;如Figure1图(c)所示&#xff0c;这种方法在类别数量增加时会消耗大量资源&#xff…

封装neo4j的持久层和服务层

目录 持久层 mp 模仿&#xff1a; 1.抽取出通用的接口类 2.创建自定义的repository接口 服务层 mp 模仿&#xff1a; 1.抽取出一个IService通用服务类 2.创建ServiceImpl类实现IService接口 3.自定义的服务接口 4.创建自定义的服务类 工厂模式 为什么可以使用工厂…

2024各地低空经济政策汇编资料

互联网各领域资料分享专区(不定期更新)&#xff1a; Sheet 前言 由于内容较多&#xff0c;且不便于排版&#xff0c;为避免资源失效&#xff0c;请用手机点击链接进行保存&#xff0c;若链接生效请及时反馈&#xff0c;谢谢~ 正文 链接如下&#xff08;为避免资源失效&#x…

基于JAVA的幼儿园管理系统的设计与实现源码(springboot+vue+mysql)

项目简介 幼儿园管理系统实现了以下功能&#xff1a; 基于JAVA的幼儿园管理系统的设计与实现的主要使用者管理员可以管理系统基本信息&#xff1b;管理轮播图、系统简介、教师管理、课程管理、幼儿活动管理、餐饮管理、留言管理等功能&#xff1b;前台用户注册登录&#xff0…

智能车摄像头开源—8 元素处理

目录 一、前言 二、无元素状态 三、直线与弯道 四、十字与环岛 1、十字识别处理 2、环岛识别处理 五、坡道 六、障碍物 七、斑马线 八、入库 九、出界停车 一、前言 在写这篇文章之前&#xff0c;考虑了很久到底该写到什么程度&#xff0c;但思来想去&#xff0c;不同…

LC-随机链表的复制、排序链表、合并K个升序链表、LRU缓存

随机链表的复制 为了在 O(n) 时间复杂度内解决这个问题&#xff0c;并且使用 O(1) 的额外空间&#xff0c;可以利用以下技巧&#xff1a; 将新节点插入到原节点后面&#xff1a;我们可以将复制节点插入到原节点后面。例如&#xff0c;如果链表是 A -> B -> C&#xff0c…

编码格式大全:类型 特点及其在网络安全中的作用

目录 说明: 1. Base64 Base64编码的字符集通常包括&#xff1a; Base64的工作原理&#xff1a; Base64编码在安全渗透中的应用场景 常见的Base64编码绕过场景 如何防范Base64绕过攻击 2. URL编码&#xff08;Percent Encoding&#xff09; URL编码与安全渗透的关系 示…

BGP分解实验·18——BGP选路原则之权重

在本地对进入的NLRI做权重设置&#xff0c;从而对过滤特定的路由进行优选。严格来说&#xff0c;权重值并不能算是路径属性&#xff0c;因为它并处传递&#xff0c;所能影响的仅仅限于本地路由器。 实验拓扑如下&#xff1a; 完成实验拓扑的基础实验&#xff0c;R1的配置如下…

pandas(13 Caveats Gotchas和SQL比较)

前面内容&#xff1a;pandas(12 IO工具和稀松数据) 目录 一、Caveats警告 & Gotchas预见 1.1 在Pandas中使用if/Truth语句 1.2 位运算布尔 1.3 isin操作 1.4 重新索引reindex和 loc&iloc 使用注意事项 1.5 loc和iloc 二、Python Pandas 与SQL的比较 2.1 数…

FPGA的星辰大海

编者按 时下风头正盛的DeepSeek,正值喜好宏大叙事的米国大统领二次上岗就业,OpenAI、软银、甲骨文等宣布投资高达5000亿美元“星际之门”之际,对比尤为强烈。 某种程度上,,是低成本创新理念的直接落地。 包括来自开源社区的诸多赞誉是,并非体现技术有多“超越”,而是…

AI大模型的文本流如何持续吐到前端,实时通信的技术 SSE(Server-Sent Events) 认知

写在前面 没接触过 SSE&#xff08;Server-Sent Events&#xff09;&#xff0c;AI大模型出来之后&#xff0c;一直以为文本流是用 WebSocket 做的偶然看到返回到报文格式是 text/event-stream,所以简单认知&#xff0c;整理笔记博文内容涉及 SSE 认知&#xff0c;以及对应的 D…