我有一个游戏对象(一把剑)。当我的角色与剑碰撞器发生碰撞时,我希望 UI 显示一个图标(必须按下才能与游戏对象交互的键)。 我该怎么做?
不知道怎么实现
在附加到你的剑的脚本中,创建一个
GameObject
类型的变量并将其分配给检查器中的 UI 元素。
然后当您检测到玩家进入时与剑发生碰撞时,在这个变量上调用
.SetActive(true)
。
要检测您可以使用OnCollisionEnter,或OnTriggerEnter以防您的剑的碰撞器是触发器。或者,如果您在 2D 游戏中,则为 2D 等效项(OnCollisionEnter2D 或 OnTriggerEnter2D)
最后使用 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);
}
}
}