Как мы можем отобразить изображение, когда игрок сталкивается с объектом? - PullRequest
0 голосов
/ 30 декабря 2018

Я работаю над 2D Unity игрой и хотел бы знать, как мы можем отобразить изображение в моем инвентаре, когда игрок сталкивается с объектом.Например, если игрок сталкивается с барабанной палочкой, изображение барабанной палочки появляется в меню инвентаря.

С наилучшими пожеланиями.

Yacine TAZDAIT.

1 Ответ

0 голосов
/ 01 января 2019

Метод # 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.
    }
}

Чтобы любой из этих методов работал, убедитесь, что ваша барабанная палочка использует компонент изображения.

EDIT :Чтобы ответить на ваш вопрос далее, вот способ реализации метода # 2 в вашем коде.В вашем скрипте игрока вы можете использовать OnCollisionEnter и метод, описанный выше, для отображения голени.

using UnityEngine;
using System.Collections;

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

Чтобы это работало, убедитесь, что на голени есть тег "drumstick".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...