测试积点老人 发表于 2022-2-22 11:51:30

Unity 如何做一个密码

我做了一个触发器,碰到玩家后会出现密码输入框,密码使用UI的inputfield实现的,但是输入后无法立刻检测,必须离开触发器后在触发一次才会执行if (pin.text == ppin)里的代码。
就是,第一次触发后开始输入密码,inputfield.text也开始变化,但if (pin.text == ppin)里的代码不执行,必须离开触发器再除法一次才会执行。
我觉得好像inputfield.text的内容好像没有确定,离开触发器后才能确定内容。
后面有两个截图,第一个是第一次触发触发器,密码输入对了,但没反应。第二个是第二次触发代码就直接运行了。
怎么让密码输入正确直接触发代码呢?(第一次输入按回车也没反应,好像不是普通的输入)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class terminal : MonoBehaviour
{
    public GameObject panel;
    public GameObject platform;
    public GameObject block;
    public InputField pin;
    private string ppin = "308";

    void Start()
    {
      pin = GameObject.Find("Password").GetComponent<InputField>();
    }

    private void OnTriggerEnter2D(Collider2D collision)
    {
      if (collision.tag == "player")
      {
            panel.SetActive(true);
            if (pin.text == ppin)
            {
                Destroy(block);
                platform.SetActive(true);
            }
      }
    }

    private void OnTriggerExit2D(Collider2D collision)
    {
      if (collision.tag == "player")
      {
            panel.SetActive(false);
      }
    }
}

kallinr 发表于 2022-2-23 10:06:15

嵌套

qqq911 发表于 2022-2-23 10:07:17

模拟鼠标切出再切回

jingzizx 发表于 2022-2-23 15:21:48

单步调试看看值
页: [1]
查看完整版本: Unity 如何做一个密码