unity学习笔记07

一、组件

有几个物体他们之间有着重复的功能,该如何避免重复的去写代码?

可以将一些相同的功能写成一个组件,也就是组件就等同于功能。

什么是组件?

在Unity中,游戏物体是不具备任何功能的,如果想要为其添加功能,那么就需要为它添加该功能的组件,而每一个组件其实就是一个引擎内部的组件脚本或是由自己编写的组件脚本。也就是说,一个游戏物体(Game Object )会包含多个组件(Component ),每一个组件又是一个组件脚本。
 

示例:创建一个空物体为其添加组件让其为立方体

创建一个空物体

添加组件mesh filter,然后网格选择立方体Cube

再添加一个Mesh   Renderer (渲染逐渐)

然后新建一个材质 ,最后将材质拖到添加组件的地方,然后就显示了一个立方体

组件的一些使用技巧

1.组件修改后想要恢复,可以点击重置就恢复了。

2.组件可以通过复制为物体增加新的组件。组件也可以粘贴组件值,可以将a物体的A组件修改一些数组后点击复制。再b物体上的A组件可以直接粘贴组件值,可以不用再增加一个组件吗,达到需要的效果。

二、脚本

1.方法的调用顺序。

Awake:最早调用,所以一般可以在此实现单例模式。也可以做一些初始化的设置,仅在对象第一次被激活时调用一次。。

OnEnable:组件激活后调用,在Awake后会调用一次。

Start:在Update之前调用一次,在OnEnable之后调用,可以在此设置一些初始值。

FbxedUpdate:固定频率调用方法,每次调用与上次调用的时间间隔相同。

Update:帧率调用方法,每帧调用一次,每次调用与上次调用的时间间隔不相同。

LateUpdate:在Update每调用完一次后,紧跟着调用一次。

OnDisable:与OnEnable相反,组件未激活时调用。

OnDestroy:被销毁后调用一次。

2.脚本的运行顺序

当有多个脚本同时存在时运行顺序是如何的呢?

默认情况下会会先执行所有脚本的  Awake 方法里面的,然后再执行所有脚本里面的 Start 方法里面的。

可以通过设置修改执行顺序,可以在Unity编辑器中的“Edit -> Project Settings -> Script Execution Order”中找到脚本执行顺序设置。

在这里将需要控制的脚本添加,然后修改这个数值

数值越小越靠前,执行顺序越靠前。比如图中的顺序会前执行test2的 Awake 然后再执行test1 的Awake 。

三、组件的标签和图层

1.标签:

标签是用于标识游戏对象的字符串。通过为游戏对象分配标签,可以轻松地将它们归类为特定的类型或功能。在Unity中,一些常见的默认标签包括"Player"、"Enemy"、"MainCamera"等。也可以自己创建一些没有的标签。

可以通过为物体分配标签,在查找物体是更为方便。

可以通过脚本设置标签和获取标签

// 设置游戏对象的标签
gameObject.tag = "Player";

// 获取游戏对象的标签
string objectTag = gameObject.tag;
 

2.图层

图层是用于分组和控制游戏对象渲染顺序和碰撞检测的一种方法。每个游戏对象都分配有一个图层,而图层定义了对象在场景中的位置和关系。

通过将游戏对象分配到不同的图层,可以控制它们在场景中的可见性和渲染顺序。例如,可以将一个2D的背景图层设置在角色图层之后,以确保角色显示在背景之前。

此外,图层还对碰撞检测非常重要。可以通过设置碰撞器和触发器的碰撞层次来控制它们之间的交互。例如,你可以设置角色碰撞器只与敌人层发生碰撞,而不与其他层发生碰撞。

同时图层也能添加,但是只能有32个。

也可以使用 Physics  类的 LayerMask  可以在脚本中选择性地检测或忽略特定图层的对象。 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

香港科技大学数据建模(MSc DDM)硕士学位项目(2024年秋季入学)招生宣讲会-武汉专场

时间:2023 年12 月 8 日(周五) 15:00 地点:华中科技大学大学生活动中心B座303 嘉宾教授:张锐 教授 项目旨在培养科学或工程背景的学员从数据中提取信息的数据建模能力,训练其拥有优秀的解难和逻辑思考与分…

3.OpenResty系列之Nginx反向代理

1. Nginx简介 Nginx (engine x) 是一款轻量级的 Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器 什么是反向代理? 反向代理(Reverse Proxy)方式是指以代理服务器来接受 internet 上的连接请求&#x…

金山办公前端二面

1. react 和 vue的区别 还有jquery? (1) jquery 和 vue、react 的区别: vue 和 react : 数据和视图分离 以数据驱动视图,只关心数据变化 dom 操作被封装(数据驱动) jquery:依靠 do…

python环境的搭建+pytharm安装教程

一、Anaconda安装 1、去官网下载anaconda >百度搜索anaconda按回车键 >找到官网地址进去(注意看网址) >下载位置 2、安装anaconda 具体就安装步骤就不演示了(写文章时已经安装好了) 二、pycharm安装 1、去官网下载py…

Redis 基本命令—— 超详细操作演示!!!

内存数据库 Redis7—— Redis 基本命令 三、Redis 基本命令(下)3.8 benchmark 测试工具3.9 简单动态字符串SDS3.10 集合的底层实现原理3.11 BitMap 操作命令3.12 HyperLogLog 操作命令3.13 Geospatial 操作命令3.14 发布/订阅命令3.15 Redis 事务 四、Re…

【C语言加油站】函数栈帧的创建与销毁 #保姆级讲解

函数栈帧的创建与销毁 导言一、计算机硬件1.冯•诺依曼机基本思想2.冯•诺依曼机的特点:3.存储器3.1 分类3.2 内存的工作方式3.3 内存的组成 4.寄存器4.1 基本含义4.2 寄存器的功能4.3 工作原理4.4 分类4.4.1 通用寄存器组AX(AH、AL):累加器BX(BH、BL)&a…

第七节HarmonyOS UIAbility生命周期以及启动模式

一、UIAbility生命周期 为了实现多设备形态上的裁剪和多窗口的可扩展性,系统对组件管理和窗口管理进行了解耦。UIAbility的生命周期包括Create、Foreground、Background、Destroy四个状态,WindowStageCreate和WindowStageDestroy为窗口管理器&#xff08…

堆结构的应用:随时取得数据流中的中位数

大根堆和小根堆配合 实现 第一个数字直接入大根堆 对于后面的数字&#xff0c; 如果数字 < 大根堆的堆顶&#xff0c;这个数字入大根堆 否则入小根堆 在数字入堆的同时&#xff0c;进行大根堆与小根堆的大小的比较&#xff0c;一旦它们两个的大小之差 2&#xff0c;较大…

【浅尝C++】C++类的6大默认成员函数——构造、析构及拷贝构造函数

&#x1f388;归属专栏&#xff1a;浅尝C &#x1f697;个人主页&#xff1a;Jammingpro &#x1f41f;记录一句&#xff1a;好想摆烂&#xff0c;又好想学习~~ 文章前言&#xff1a;本篇文章简要介绍C类的构造函数、析构函数及拷贝构造函数&#xff0c;介绍每个小点时&#xf…

java+python农村集体产权管理系统php+vue

注册、登陆该系统根据操作权限的不同分为管理员和用户两种&#xff0c;新用户在登陆前要进行用户注册&#xff0c;注册完成后方可进行登陆。 本次设计的关键问题处理&#xff0c;主要有如下几点&#xff1a; (1&#xff09;本次开发&#xff0c;采用主流Thinkphp框架进行开发&a…

linux进入telnet和推出telnet

安装telnet centos7 yum install -y telnet ubuntu apt install -y telnet 进入telnet telnet ip port 退出telnet 1. 按下下面的组合键 ctrl] 2. 输入下面命令推出 quit

Go 语言中 sync 包的近距离观察

让我们来看看负责提供同步原语的 Go 包&#xff1a;sync。 sync.Mutex sync.Mutex 可能是 sync 包中被广泛使用的原语。它允许对共享资源进行互斥操作&#xff08;即不允许同时访问&#xff09;&#xff1a; mutex : &sync.Mutex{}mutex.Lock() // Update shared variab…

【linux】基本指令(中篇)

echo指令 将引号内容打印到显示屏上 输出的重定向 追加的重定向 输出的重定向 我们学习c语言的时候当以写的方式创建一个文件&#xff0c;就会覆盖掉该文件之前的内容 当我们以追加的方式打开文件的时候&#xff0c;原文件内容不会被覆盖而是追加 more指令 10.more指令…

YOLOv8优化策略:自适应改变核大小卷积AKConv,效果优于标准卷积核和DSConv |2023.11月最新成果

🚀🚀🚀本文改进: AKConv 中,通过新的坐标生成算法定义任意大小的卷积核的初始位置。 为了适应目标的变化,引入了偏移量来调整每个位置的样本形状。 此外,我们通过使用具有相同大小和不同初始采样形状的 AKConv 来探索神经网络的效果。 AKConv 通过不规则卷积运算完成…

简介vue

目录 一、介绍 渐进式框架​ 单文件组件​ 选项式 API (Options API)​ 组合式 API (Composition API)​ 该选哪一个&#xff1f;​ 创建一个 Vue 应用 应用实例​ 根组件​ DOM 中的根组件模板 应用配置​ 多个应用实例​ 一、介绍 Vue (发音为 /vjuː/&#xff…

代码随想录算法训练营第四十六天|139.单词拆分、背包问题总结

LeetCode 139. 单词拆分 题目链接&#xff1a;139. 单词拆分 - 力扣&#xff08;LeetCode&#xff09; 这道题使用完全背包来实现&#xff0c;我们首先考虑字符串是否可以由字符串列表组成&#xff0c;因此dp数组大小为n 1 &#xff0c;其意义是&#xff0c;在n个位置时是否能…

在 CentOS 7 上安装 MySQL 8

在 CentOS 7 上安装 MySQL 8 步骤 1: 添加 MySQL Yum 存储库 首先&#xff0c;我们需要添加 MySQL Yum 存储库。打开终端并执行以下命令&#xff1a; sudo yum install -y https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm步骤 2: 导入 MySQL GPG 公钥 …

wangeditor实时预览

<template><div><!--挂载富文本编辑器--><div style"width: 45%;float: left;margin-left: 2%"><p>编辑内容</p><div id"editor" style"height: 100%"></div></div><div style"w…

20世纪的葡萄酒有哪些创新?

葡萄酒是用酵母发酵的&#xff0c;直到20世纪中叶&#xff0c;这一过程都依赖于自然产生的酵母。这些发酵的结果往往不一致&#xff0c;而且由于发酵时间长&#xff0c;容易腐败。 酿酒业最重要的进步之一是在20世纪50、60年代引进了地中海的纯发酵菌种酿酒酵母&#xff0c;俗称…

计算机基础知识60

MySQL分组 # 概念&#xff1a;分组是按照某个指定的条件将单个单个的个体分成一个个整体 # MySQL分组的关键字&#xff1a;group by # 分组一般配合聚合函数使用&#xff1a; sum max min avg count 基本的语法格式: group by 字段名 [having 条件表达式] # 单独使用 group by关…