@bebra123

Не понимаю в чем проблема?

К СУТИ-Я начинающий программист, пытаюсь сделать стратегию по туториалу на ютубе, вот скрипт
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class BuildManager : MonoBehaviour

    void Start() {
        
    }

    void Update() {
        
    }

    void OnMouseEnter()
    {
        transform.GetChild(0).GetComponent<Image>().color = Color.green;
    }

    void OnMouseExit()
    {
        transform.GetChild(0).GetComponent<Image>().color = Color.white;
    }
}

Этот скрипт по идее должен при наведение на клетку подсвечивать ее , а когда отводишь отсвечиваться.
Не бейте тапками пожалуйста.
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 1
Casper-SC
@Casper-SC
Программист (.NET)
Вот так работает. Проверил.

Вместо типа Image лучше укажи тип Graphic, если этот скрипт будет только менять цвет. Ну и переменную в таком случае назови _graphics, а не _image.

using System;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

namespace Assets.Scripts
{
    public class BuildManager : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
    {
        private Image _image;

        void Start()
        {
            _image = GetComponent<Image>();

            if (_image is null)
            {
                throw new NullReferenceException(
                    $"The component of the type \"{nameof(Image)}\" not found.");
            }
        }

        void Update()
        {
        }

        public void OnPointerEnter(PointerEventData eventData)
        {
            _image.color = Color.green;
        }

        public void OnPointerExit(PointerEventData eventData)
        {
            _image.color = Color.white;
        }
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы