unity中添加预制体及其基本设置

unity中添加预制体及其基本设置

  • Unity 中使用预制体的好处
  • 使用示例
    • 代码解释

Unity 中使用预制体的好处

1. 提高代码复用性
预制体可将一个游戏对象及其所有组件、子对象和设置存储在一个资源文件中,然后在项目中多次使用这个资源。这大大提高了代码的复用性,减少了重复工作
示例:
假设有一个敌人角色,可以将其创建为一个预制体,然后在多个场景中复用这个预制体,而不需要为每个场景单独创建和设置敌人

2. 统一管理对象
预制体使得管理游戏对象变得更加容易。可以集中管理一个预制体的所有实例,而不需要在多个场景或脚本中分别管理。
示例:
假设有一个玩家角色,可以创建一个预制体,然后在多个场景中使用。如果需要修改玩家角色的某个属性(例如生命值),只需要修改预制体,所有实例都会自动更新

3. 实时编辑和同步更新
当在场景视图中修改一个预制体实例时,这些修改会自动同步到预制体资源中,反之亦然。这使得实时编辑和同步更新成为可能,提高了开发效率。
示例:
假设在场景视图中调整了一个预制体实例的位置和旋转,这些修改会自动应用到预制体资源,并同步到所有其他实例

4. 提高性能
预制体可以帮助提高性能。当在场景中多次使用同一个预制体时,Unity 可以优化对象的创建和初始化过程,从而提高游戏的性能

示例:
假设在游戏中创建了多个敌人实例,使用预制体可以确保这些实例以最优的方式进行创建和初始化,从而减少性能开销

5. 层级结构和子对象管理
预制体可以包含子对象和组件,并且可以在层级结构中进行管理。这使得复杂的对象结构更加容易管理
示例:
假设有一个复杂的敌人角色,包含多个子对象(如武器、护甲等),可以将这些子对象嵌套在父对象中,并以预制体的形式进行管理

6. 资源打包和加载
预制体可以帮助更好地管理资源的加载和卸载。可以将多个预制体打包成一个资源包,并在需要时动态加载和卸载,从而优化资源管理
示例:
假设在游戏中需要加载多个场景,可以将这些场景中的预制体打包成一个资源包,并在需要时动态加载,减少内存占用

使用示例

  1. 在Asserts创建了prefabs用于存放项目中用到的预制体

  2. 可以通过预制体创建多个GameObject,并通过修改预制体的一些参数从而影响其所有子GameObject,例如设置GameObject的大小,(预制体的子类会有蓝色图标)
    在这里插入图片描述

  3. 对预制体进行统一的旋转设置(例如添加脚本组件foodControl)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class foodControl : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){transform.Rotate(Vector3.up, Space.World);}
}

代码解释

transform.Rotate(Vector3.up, Space.World)这行代码的作用是让当前游戏对象绕着世界坐标系的 Y轴(即垂直轴)进行旋转

1. transform

  • 类型: Transform
  • 作用: transform 是 Unity 中每个游戏对象(GameObject)都包含的一个组件,用于描述该对象的位置、旋转和缩放等信息
  • 解释: transform 表示当前游戏对象的变换组件,可以通过它来操作对象的位置、旋转和缩放

2. Rotate

  • 类型: 方法(Method)
  • 作用: Rotate 是 Transform 组件的一个方法,用于旋转游戏对象
  • 解释: 通过调用 Rotate 方法,可以指定一个旋转轴和旋转量,从而使游戏对象绕着该轴旋转

3. Vector3.up

  • 类型: Vector3
  • 作用: Vector3 是 Unity 中的一个结构体,用于表示三维向量。Vector3.up 是 Vector3 类的一个静态变量,表示向上的向量
  • 解释: Vector3.up 的值是 (0, 1, 0),即世界坐标系中的 Y 轴方向。在 Rotate 方法中,Vector3.up 指定了旋转轴为 Y 轴

4. Space.World

  • 类型: 枚举(Enum)
  • 作用: Space 是 Unity 中的一个枚举类型,可指定变换操作相对于哪个坐标系进行
  • 解释: Space.World 表示变换操作是相对于世界坐标系进行的。这意味着游戏对象将绕着世界坐标系的 Y 轴旋转,而不是相对于自身坐标系的 Y 轴旋转

假设调用 transform.Rotate(Vector3.up, Space.World) 时传入了旋转角度90,那么游戏对象将绕世界坐标系的 Y 轴旋转 90 度

transform.Rotate(Vector3.up, 90, Space.World);

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

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

相关文章

给定一个整数可能为正,0,负数,统计这个数据的位数.

题目描述 给定一个整数可能为正,0,负数,统计这个数据的位数. 例如1234567输出7位; -12345678输出8位;0输出1位 代码实现 int main() { long long m; long long n; scanf("%lld",&n); mn; int count0;//位数 do { count; n/10;//舍弃个位 }while(n!0); printf(&…

Linux:文件系统inode

早期,存储文件的设备是磁盘(当下的市场几乎都是SSD),但大家习惯的把它们都称为磁盘,磁盘是用来表示区分内存的存储设备。而在操作系统看来,这个存储设备的结构就是一个线性结构,这一点很重要。 …

C++STL之vector(超详细)

CSTL之vector 1.vector基本介绍2.vector重要接口2.1.构造函数2.2.迭代器2.3.空间2.3.1.resize2.3.2.capacity 2.4.增删查找 3.迭代器失效4.迭代器分类 🌟🌟hello,各位读者大大们你们好呀🌟🌟 🚀&#x1f68…

深入浅出机器学习中的梯度下降算法

大家好,在机器学习中,梯度下降算法(Gradient Descent)是一个重要的概念。它是一种优化算法,用于最小化目标函数,通常是损失函数。梯度下降可以帮助找到一个模型最优的参数,使得模型的预测更加准…

树莓派5+文心一言 -> 智能音箱

一、简介 效果:运行起来后,可以连续对话 硬件:树莓派5、麦克风、音箱,成本500-1000 软件:snowboy作为唤醒词、百度语音作为语音识别、brain作为指令匹配、百度文心一言作为对话模块、微软的edge-tts语音合成... 二…

Springboot——SseEmitter流式输出

文章目录 前言SseEmitter 简介测试demo注意点异常一 ResponseBodyEmitter is already set complete 前言 最近做AI类的开发,看到各大AI模型的输出方式都是采取的一种EventStream的方式实现。 不是通常的等接口处理完成后,一次性返回。 而是片段式的处理…

5G学习笔记之随机接入

目录 1. 概述 2. MSG1 2.1 选择SSB 2.2 选择Preamble Index 2.3 选择发送Preamble的时频资源 2.4 确定RA-RNTI 2.5 确定发送功率 3. MSG2 4. MSG3 5. MSG4 6. 其它 6.1 切换中的随机接入 6.2 SI请求的随机接入 6.3 通过PDCCH order重新建立同步 1. 概述 随机接入…

【Linux-多线程】重谈地址空间+内存管理方式

一、背景知识 a.重谈地址空间 我们之前已经说过,CPU内部见的地址,以及我们打印出来的地址都是虚拟地址;物理内存加载到CPU,CPU内执行进程创建内核数据结构,页表等,通过页表映射到物理磁盘上;也…

Spark Optimization —— Reducing Shuffle

Spark Optimization : Reducing Shuffle “Shuffling is the only thing which Nature cannot undo.” — Arthur Eddington Shuffle Shuffle Shuffle I used to see people playing cards and using the word “Shuffle” even before I knew how to play it. Shuffling in c…

Elasticsearch——Java API 操作

Elasticsearch 软件是由Java语言开发的,所以也可以通过JavaAPI的方式对 Elasticsearch服务进行访问。 创建 Maven 项目 我们在 IDEA 开发工具中创建 Maven 项目(模块也可)ES。并修改pom文件&#xff0c;增加Maven依赖关系。 #直接复制在pom文件的<dependencies></de…

量化的8位LLM训练和推理使用bitsandbytes在AMD GPUs上

Quantized 8-bit LLM training and inference using bitsandbytes on AMD GPUs — ROCm Blogs 在这篇博客文章中&#xff0c;我们将介绍bitsandbytes的8位表示方式。正如你将看到的&#xff0c;bitsandbytes的8位表示方式显著地减少了微调和推理大语言模型&#xff08;LLMs&…

自回归(Autoregressive)模型概述

自回归&#xff08;Autoregressive&#xff09;模型概述 自回归&#xff08;Autoregressive&#xff0c;简称AR&#xff09;模型是一类基于“历史数据”来预测未来数据的模型。其核心思想是模型的输出不仅依赖于当前输入&#xff0c;还依赖于先前的输出。自回归模型通常用于时…

Win11电脑亮度无法调节以及夜间模式点击没有用失效解决方法

一、问题 最近&#xff0c;突然感觉屏幕亮度十分刺眼&#xff0c;想调整为夜间模式&#xff0c;发现点了夜间模式根本没用&#xff0c;亮度也是变成了灰色。 明明前几天还能调节的&#xff0c;这实在是太难受了&#xff01; 二、原因 这是远程控制软件向日葵的问题 在向日葵…

Linux笔记---进程:进程终止

1. 进程终止概念与分类 进程终止是指一个正在运行的进程结束其执行的操作。以下是一些常见的导致进程终止的情况&#xff1a; 一、正常终止 完成任务当进程完成了它被设计要执行的任务后&#xff0c;就会正常终止。收到特定信号在操作系统中&#xff0c;进程可能会收到来自操作…

【工具推荐】dnsx——一个快速、多用途的 DNS 查询工具

basic/基本使用方式 echo baidu.com | dnsx -recon # 查询域名所有记录echo baidu.com | dnsx -a -resp # 查询域名的a记录echo baidu.com | dnsx -txt -resp # 查询域名的TXT记录echo ip | dnsx -ptr -resp # ip反查域名 A记录查询 TXT记录查询 ip反查域名 help/帮助信息 输…

【树莓派5】移动热点获取树莓派IP并初次登录SSH

本篇文章包含的内容 1 打开系统热点2 烧录系统设置3 配置 MobaXterm4 初次启动树莓派配置选项4.1 换源4.2 更新软件包4.3 安装vim编辑器4.4 更改CPU FAN温度转速 Windows版本&#xff1a;Windows11 24H2树莓派&#xff1a;树莓派5&#xff0c;Raspberry Pi 5SSH软件&#xff1a…

【Git系列】Git 提交历史分析:深入理解`git log`命令

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

第144场双周赛:移除石头游戏、两个字符串得切换距离、零数组变换 Ⅲ、最多可收集的水果数目

Q1、[简单] 移除石头游戏 1、题目描述 Alice 和 Bob 在玩一个游戏&#xff0c;他们俩轮流从一堆石头中移除石头&#xff0c;Alice 先进行操作。 Alice 在第一次操作中移除 恰好 10 个石头。接下来的每次操作中&#xff0c;每位玩家移除的石头数 恰好 为另一位玩家上一次操作…

Python parsel库学习总结

parsel库是Python中用于解析HTML文件的库&#xff0c;其能通过CSS选择器、xpath、正则表达式来定位html中的元素。 通过css选择器定位元素 from parsel import Selectorhtml """ <html><head><a class"option1">这是一个伪html片…

【HarmonyOS学习日志(11)】计算机网络之概念,组成和功能

文章目录 计算机网络概念计算机网络&#xff0c;互连网与互联网的区别计算机网络互连网互联网&#xff08;因特网&#xff0c;Internet&#xff09; 计算机网络的组成和功能计算机网络的组成从组成部分看从工作方式看从逻辑功能看 计算机网络的功能数据通信资源共享分布式处理提…