Unity ProjectTiny纯ECS简单写个按钮点击事件系统

本文介绍了如何在Unity的ProjectTiny包中利用ECS(Entity Component System)来简单实现按钮点击事件。尽管ProjectTiny的UI功能不如GameObject强大,但通过ECS可以方便地创建和管理按钮的点击行为。作者省略了动态创建Mesh和设置UV的过程,而是直接在Unity编辑器中创建四个Quad作为按钮,并展示了简单的运行效果。
摘要由CSDN通过智能技术生成

ProjectTiny包里是有UI模块的,当然功能肯定没GameObject的UI强大,常用的Text、Button、Image都有,还没仔细用过,先不用它。

点击了哪个按钮,然后需要执行对应的什么事件,这么点逻辑用ECS来写是很方便的,甚至可以比MonoBehavior写的简单。大致流程是,在运行时动态创建Mesh作为一个按钮,然后设置好Mesh的UV来显示纹理指定部分的字母作为按钮的label(这两个要点可以看前面几篇文章来进行实现),最后写个System来监听点击了哪个按钮,其他System就可以调用该System的接口来判断并执行点击事件了。

为了简单起见,就不动态创建Mesh并设置对应UV了,直接在Unity编辑器里创建4个Quad作为W、A、S、D按钮,也就是上下左右。Mesh也不用设置纹理,直接用空白的,按钮label并不影响点击事件。上代码:

using Unity.Burst;
using Unity.Collections;
using Unity.Entities;
using Unity.Jobs;
using Unity.Mathematics;
using Unity.Transforms;
using Unity.Tiny.Input;
using Unity.Tiny.Rendering;
using Unity.Tiny;

namespace ECSButton {
   
	[GenerateAuthoringComponent]
    public struct Button : IComponentData
    {
   
        public enum Type : byte {
   
            None,
            W, A, S, D
        }

        public enum State : byte {
   
            None,
            Down,
            Up
        }

        public Type type;

        public State state;
    }

    [UpdateInGroup(typeof(InitializationSystemGroup))]
    public class ButtonSystem : SystemBase
    {
   
        private InputSystem Input
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值