【不用找素材】ECS 游戏Demo制作教程(1) 1.15

news2025/1/12 9:04:26

一、项目设置

版本:2022.2.0f1
(版本太低的话会安装不了ECS插件)

模板选择3D URP

进来后移除URP(因为并不是真的需要,但也不是完全不需要)

Name: com.unity.entities.graphics

Version: 1.0.0-exp.8

点击Add添加

出现右边这个就是在安装中啦

安装成功~~~

↑推荐的编辑器布局

需要新添加上来的窗口会在下边列出来

把这些窗口打开,方便观察

右键可以多加一个Inspector窗口

项目设置窗口也打开

勾选上,更快进入播放模式

检查一下这几项

二、新建子场景

顺便在场景里创建一个地板

三、创建Entity

创建一个空实体,命名为Brain

创建好后如图

点击运行,一下出来一堆东西

在运行模式下,把右上角改成Runtime

就变成这样啦

给大脑加上这两个组件,随便来个模型和材质

需要关掉子场景再打开才会刷新哦

如果想真的关掉子场景,需要先点close,然后unload,就消失在场景中了,但一点击运行又会自动回来

四、创建Prefab Entity

创建一个空物体命名为Tombstone,给它创建一个用于渲染的子物体Renderer,给Renderer来个模型和材质,最后把Tombstone做成预制体,再把场景里的删喽。

五、设置场景Entity

创建个空物体,命名为Graveyard

创建一些文件夹用于存放脚本

在ComponentsAndTags文件夹里创建一个脚本叫GraveyardProperties

using Unity.Entities;
using Unity.Mathematics;

namespace ECSdemo
{
    public struct GraveyardProperties : IComponentData
        //继承这个接口,让这个结构体变成组件,记得引用命名空间
    {
        public float2 FieldDimensions;
        //float2 结构体表示一个包含两个 float 字段的结构体,记得引用命名空间
        public int NumberTombstonesToSpawn;
        //想要跟踪的数量
        public Entity TombstonePrefab;
        //墓碑预制件
    }
}


此时我们想把这个组件加到Graveyard上,发现搜不到这个组件~还需要一些操作

在AuthoringAndMono文件夹里创建一个脚本叫GraveyardMono

using Unity.Mathematics;
using UnityEngine;

public class GraveyardMono : MonoBehaviour
{
    public float2 FieldDimensions;
    //float2 结构体表示一个包含两个 float 字段的结构体,记得引用命名空间
    public int NumberTombstonesToSpawn;
    //想要跟踪的数量
    public GameObject TombstonePrefab;
    //墓碑预制件
}

把脚本给墓地加上,并给脚本赋值,点击运行,发现其实也没什么变化(っ ̯ -。) 继续写GraveyardMono脚本

using Unity.Entities;
using Unity.Mathematics;
using UnityEngine;

namespace ECSdemo
{
    public class GraveyardMono : MonoBehaviour
    {
        public float2 FieldDimensions;
        //float2 结构体表示一个包含两个 float 字段的结构体,记得引用命名空间
        public int NumberTombstonesToSpawn;
        //想要跟踪的数量
        public GameObject TombstonePrefab;
        //墓碑预制件
    }

    public class GraveyardBaker : Baker<GraveyardMono>
    {
        public override void Bake(GraveyardMono authoring)
        {
            AddComponent(new GraveyardProperties
            {
                FieldDimensions = authoring.FieldDimensions,
                NumberTombstonesToSpawn = authoring.NumberTombstonesToSpawn,
                TombstonePrefab = GetEntity(authoring.TombstonePrefab)
                //GetEntity:把GameObject变成Entity
            });

        }
    }

}

点击运行,发现能在面板上看到了~

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

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

相关文章

59.说一下 spring 的事务隔离?

spring 的事务隔离有什么作用? 用来解决并发事务所产生一些问题,并发会产生什么问题? 1.脏读2.不可重复度3.幻影读事务隔离的概念 通过设置隔离级别可解决在并发过程中产生的那些问题分别举例说明 1.脏读 上述图表示:一个事务,读取了另一个事务中没有提交的数据,会在…

AI对决:ChatGPT与文心一言的深度比较

. 个人主页&#xff1a;晓风飞 专栏&#xff1a;数据结构|Linux|C语言 路漫漫其修远兮&#xff0c;吾将上下而求索 文章目录 引言ChatGPT与文心一言的比较Chatgpt的看法文心一言的看法Copilot的观点chatgpt4.0的回答 模型的自我评价自我评价 ChatGPT的优势在这里插入图片描述 文…

NXP-RT1176开发(一)——环境搭建(MCUXpressoIDE/VSCode)

目录 1. 安装IDE 1.1 官方开发的IDE软件 1.2 Config工具下载 1.3 说明&#xff08;需先有SDK&#xff09; 2. 下载SDK 3. VScode环境下编译 3.1 安装插件 3.2 确保本地有交叉编译工具链和CMAKE 3.3 加载本地SDK 3.4 导入例程编译 1. 安装IDE 该处理器编译规则可以MDK…

动手搓一个kubernetes管理平台(2)-后端权限设计

授权和认证 1. 权限分类 由于用户需要操作kubernetes&#xff0c;所以权限分类起码需要2套&#xff0c;即平台的权限和集群的权限管理&#xff0c;前者用于管理平台&#xff0c;如用户的添加&#xff0c;报表的查看&#xff0c;日志的审计等等&#xff0c;后者用于集群管理&a…

Vue3+ElementPlus实例_select选择器(不连续搜索)

1.开发需求 在各大UI框架的select选择器中&#xff0c;在搜索时都是输入连续的搜索内容&#xff0c;比如“app-store”选项&#xff0c;你要输入“app-xxx”&#xff0c;才能匹配这个选择&#xff0c;要是想输入“a-s”这种不连续的匹配方式&#xff0c;就实现不了&#xff0c…

【MATLAB】Linux版本 高分辨率屏 调整显示缩放

0 引言 安装了linux版本的MATLAB R2023b之后&#xff0c;发现工具栏字体很小不方便使用&#xff0c;所以上网找到了MATLAB论坛上某位大佬的教程&#xff1a;参考链接&#xff0c;放在这里供各位参考 。 1 环境 这里注明我的matlab安装环境仅供参考&#xff0c;未在其他环境下…

搭建知识付费小程序平台:如何避免被坑,选择最佳方案?

随着知识经济的兴起&#xff0c;知识付费已经成为一种趋势。越来越多的人开始将自己的知识和技能进行变现&#xff0c;而知识付费小程序平台则成为了一个重要的渠道。然而&#xff0c;市面上的知识付费小程序平台琳琅满目&#xff0c;其中不乏一些不良平台&#xff0c;让老实人…

【MATLAB随笔】遗传算法优化的BP神经网络(随笔,不是很详细)

文章目录 一、算法思想1.1 BP神经网络1.2 遗传算法1.3 遗传算法优化的BP神经网络 二、代码解读2.1 数据预处理2.2 GABP2.3 部分函数说明 一、算法思想 1.1 BP神经网络 BP神经网络&#xff08;Backpropagation Neural Network&#xff0c;反向传播神经网络&#xff09;是一种监…

多特征变量序列预测(五) CEEMDAN+CNN-LSTM风速预测模型

目录 ​编辑 往期精彩内容&#xff1a; 前言 1 多特征变量数据集制作与预处理 1.1 导入数据 1.2 CEEMDAN分解 1.3 数据集制作与预处理 2 基于Pytorch的CEEMDAN CNN-LSTM 预测模型 2.1 定义CEEMDAN CNN-LSTM预测模型 2.2 设置参数&#xff0c;训练模型 3 模型评估与…

Spring Aop原理

Aop概述 Spring 中 Aop的理解&#xff1a; AOP:将那些与业务无关&#xff0c;却与业务模块所共同调用的逻辑(例如事务处理&#xff0c;日志管理&#xff0c;权限管理等) 封装成一个可重用的模块&#xff0c;这个模块被称为"切面"&#xff0c;便于减少系统的重复代码…

立体声耳机功率放大器电路D7000,静态电流低且电源纹波抑制比高

立体声耳机功率放大器电路-D7000&#xff0c;静态电流低&#xff0c;电源纹波抑制比高&#xff0c;内置节电模式开关和静噪开关&#xff0c;主要应用于便携式视盘播放器(DISCMAN),便携式迷你播放器(MD),Disc-Man,MP3 播放器,CD-ROM以及其它便携式Disc风扇马达驱动器等领域。 二…

C#,入门教程(20)——列表(List)的基础知识

上一篇&#xff1a; C#&#xff0c;入门教程(19)——循环语句&#xff08;for&#xff0c;while&#xff0c;foreach&#xff09;的基础知识https://blog.csdn.net/beijinghorn/article/details/124060844 List顾名思义就是数据列表&#xff0c;区别于数据数组&#xff08;arr…

windows系统下docker软件中使用ubuntu发行版本的linux系统

1.软件下载 官网下载地址 下载安装之后&#xff0c;再去微软商店下载wsl软件&#xff0c;可以直接用&#xff0c;或者也可以使用命令行拉取&#xff08;下面会讲&#xff09; 2.在docker里面创建容器的两种方法 2.1.命令行创建 前言&#xff1a;输入 winr 打开命令行进行下面…

USB Redirector本地安装并结合内网穿透实现远程共享和访问USB设备

文章目录 前言1. 安装下载软件1.1 内网安装使用USB Redirector1.2 下载安装cpolar内网穿透 2. 完成USB Redirector服务端和客户端映射连接3. 设置固定的公网地址 前言 USB Redirector是一款方便易用的USB设备共享服务应用程序&#xff0c;它提供了共享和访问本地或互联网上的U…

【PUSDN】MySQL数据库建表规范【企业级】

鸣谢 本文有www.pusdn.com | PUSDN提供技术支持 数据库命名规范 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 禁止使用SELECT * 必须使用SELECT <…

如何压缩照片大小?快速解决照片文件过大的问题!

在当今数字化时代&#xff0c;照片已经成为我们生活中不可或缺的一部分。无论是记录美好时刻&#xff0c;分享精彩瞬间&#xff0c;还是用于工作需求&#xff0c;我们都会遇到一种常见的问题 - 照片文件大小过大。这种情况下&#xff0c;我们需要找到一种方法来缩小照片的文件大…

AE修剪路径怎么用?

AE修剪路径怎么用?直线怎样做伸展动画呢&#xff1f;今天就教大家如何操作。 如图&#xff0c;让画面上的直线做伸展动画。 点击左下角的“添加”。 点击“修剪路径”。 文章源自设计学徒自学网-https://www.sx1c.com/38146.html 进度条移动到最开始&#xff0c;再点击左边结…

浅析企业微电网能效系统建设——安科瑞赵嘉敏

一 案例介绍 随着新型电力系统进程加快&#xff0c;新能源装机占比逐步提高&#xff0c;发电侧波动性、随机性导致可靠容量降低。加之极端天气带动负荷快速增长&#xff0c;造成电力供需紧张、电网尖峰负荷屡创新高&#xff0c;对现有能源供应带来巨大挑战。 国家电投五凌电力…

5.【CPP】内存管理(text段data段bss段||nwedelete底层实现||源码)

一.内存管理 1.如图 2.heap下面的空间 应用程序加载到内存中由操作系统完成对bss,data,text,stack加载&#xff0c;并在内存分配空间。在编译阶段已经确定分配了多少空间&#xff0c;属于静态分配。 而malloc等在程序运行时在堆上开辟空间则属于动态分配&#xff0c;需要手动f…