Невозможно изменить цвет материала импортированного объекта блендера скриптом - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь применить скрипт, который меняет цвет материала, когда курсор находится над объектом.Вот сценарий:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ChangeColor : MonoBehaviour {

    public Color startColor;
    public Color mouseOverColor;
    bool mouseOver = false;


    void OnMouseEnter(){
        Debug.Log("START");
        mouseOver = true;
        GetComponent<Renderer>().material.SetColor("_Color",mouseOverColor);
        Debug.Log("TESTE");
    }

    void OnMouseExit(){
        mouseOver = false;
        GetComponent<Renderer>().material.SetColor("_Color", startColor);
    }

}

Этот код отлично работает, когда применяется к кубу, созданному с единицей, но когда я пытаюсь использовать его на импортированной сетке, он не работает.

Вот пример одного из импортированных объектов, где скрипт не работает: enter image description here

Может кто-нибудь помочь мне понять, как я могу решить эту проблему?Спасибо

1 Ответ

0 голосов
/ 15 мая 2018

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

Добавьте один, для простой сетки, такой как сфера, просто используйте Sphere Collider.

Редактировать: Кроме того, вы обычно должны хранить ссылку, если вам нужен частый доступ к ней.

private Renderer rend;

private void Awake()
{
    rend = GetComponent<Renderer>();
}
...