当玩家与物体碰撞时,我们如何显示图像



我正在开发2D Unity游戏,我想知道如何在玩家与物体碰撞时在我的物品栏上显示图像。例如,如果玩家与鼓槌碰撞,鼓槌图像将显示在物品栏菜单上。

此致敬意。

亚辛·塔兹戴特。

方法 #1

许多不同的方法来显示图像。例如,您可以拥有带有图像组件的图像,并且只要您希望图像出现/消失,就可以打开和关闭该组件。您可以使用类似于以下内容的代码来执行此操作:

using UnityEngine;
using System.Collections;
using UnityEngine.UI; // Required when Using UI elements.
public class Example : MonoBehaviour
{
    public Image drumstick;
    public void Start()
    {
        toggleDrumstick(); // This will toggle the drumstick. For example, if the drumstick is not being shown at the time, the drumstick will show on the screen. The opposite is true.
    }
    public void toggleDrumstick() {
        drumstick.enabled = !drumstick.enabled;
    }
}

方法#2

上面的代码是一个很好的解决方案,但有一种更模块化的方法可以做到这一点。

using UnityEngine;
using System.Collections;
using UnityEngine.UI; // Required when Using UI elements.
public class Drumstick : MonoBehaviour
{  
    public static bool enabled = this.image.enabled;
}

我推荐上面的方法。这是因为每个脚本现在都可以访问鼓槌的状态。例如,播放器脚本可以执行此操作。

using UnityEngine;
using System.Collections;
public class Player : MonoBehaviour
{  
    void doSomething () {
        Drumstick.enabled = true; // make the image appear.
    }
}

要使这些方法中的任何一种起作用,请确保您的鼓槌使用图像组件。

编辑:为了进一步回答您的问题,这里有一种在代码中实现方法 #2 的方法。在播放器脚本中,您可以使用OnCollisionEnter和上述方法使鼓槌出现。

using UnityEngine;
using System.Collections;
public class Player : MonoBehaviour
{  
    void OnCollisionEnter (Collision collision)
    {
        if (collision.gameObject.tag == "drumstick") Drumstick.enabled = false;
    }
}

为此,请确保鼓槌具有标签 "drumstick" .

最新更新