unity3d 如何在碰撞游戏对象时使UI元素显示

nuypyhwy  于 2023-05-01  发布在  其他
关注(0)|答案(1)|浏览(385)

我有一把剑(一把剑)。当我的角色与剑碰撞器碰撞时,我希望UI显示一个图标(必须按下才能与游戏对象交互的键)。我该怎么做?
我不知道如何实现它

g6baxovj

g6baxovj1#

在附加到剑的脚本中,创建一个GameObject类型的变量,并将其分配给检查器中的UI元素。
然后在这个变量上调用.SetActive(true)当你检测到玩家进入与剑碰撞。
要检测到你可以使用OnCollisionEnter,或者如果你的剑的碰撞器是一个触发器,则使用OnTriggerEnter。如果您在玩2D游戏,则使用2D等效物(OnCollisionEnter2DOnTriggerEnter2D
最后使用OnCollisionExit.(或触发器/ 2D等效物)在玩家离开时再次禁用它。
所以基本上:

using UnityEngine;

public class Sword : MonoBehaviour
{
    
    [SerializeField] GameObject swordUi;

    void OnCollisionEnter(Collision collision)
    {
        // assuming your player has the "Player" tag
        if (collision.gameObject.CompareTag("Player"))
        {
            swordUi.SetActive(true);
        }
    }

    void OnCollisionExit(Collision collision)
    {
        if (collision.gameObject.CompareTag("Player"))
        {
            swordUi.SetActive(false);
        }
    }

}

相关问题