// MyBtn 类是一个自定义按钮类,用于处理按钮的按下、松开和持续按下状态。 public class MyBtn { // 表示按钮是否被按下,只读属性,避免误修改 public bool isPressed { get; private set; } = false; // 表示按钮当前是否处于按下状态,只读属性,避免误修改 public bool isPressing { get; private set; } = false; // 表示按钮是否被松开,只读属性,避免误修改 public bool isReleasd { get; private set; } = false; // 存储上一次按钮的状态 private bool lastState = false; // 按钮名称 private string buttonName;

// 构造函数,用于创建 MyBtn 实例并指定按钮名称
public MyBtn(string buttonName)
{
    this.buttonName = buttonName;
}

// 更新按钮状态,返回值为按钮是否被按下
public bool Update()
{
    // 获取当前按钮状态
    bool input = Input.GetButton(buttonName);
    // 初始化按钮状态
    isPressed = false;
    isReleasd = false;
    // 如果按钮状态改变
    if (input != lastState)
    {
        // 如果按钮被按下
        if (input)
            isPressed = true;
        // 如果按钮被松开
        else
            isReleasd = true;
    }
    // 更新按钮当前状态
    isPressing = input;
    // 更新上一次按钮状态
    lastState = input;
    // 返回按钮是否被按下
    return isPressed;
}

}

// 优化建议: // 1. 将 Tick 改为 Update,更符合 Unity 的命名规范 // 2. 将 Tick/Update 方法的参数改为可选参数,默认为 Input.GetButton("MyBtn") // 3. 添加构造函数,使得可以在创建 MyBtn 实例时指定按钮名称 // 4. 将 isPressed/isPressing/isReleased 改为只读属性,避免误修改 // 5. 将 Tick/Update 方法改为返回值为 bool 类型,表示按钮是否被按下 // 6. 添加事件机制,使得可以在按钮被按下/松开时触发事件函数

Unity 自定义按钮类代码优化与注释

原文地址: https://www.cveoy.top/t/topic/mkQU 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录