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

问题描述 投票:0回答:1

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

不知道怎么实现

unity3d game-development unityscript
1个回答
0
投票

在附加到你的剑的脚本中,创建一个

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);
        }
    }

}
© www.soinside.com 2019 - 2024. All rights reserved.