首页 > 解决方案 > c# 脚本应该在悬停时更改文本颜色。脚本不是在游戏中改变颜色,而是在改变材质颜色

问题描述

当鼠标悬停在盒子碰撞器上时,我的 c# 脚本应该改变文本的颜色。颜色在游戏中没有明显变化,但我可以看到右下角的材质发生了变化。如何正确更改颜色?

我已经确保我拥有所有必要的对撞机,但材料变化并未转化为实际对象。

using System.Collections;
using UnityEngine;

public class MouseHover : MonoBehaviour
{
    private void Start()
    {
        GetComponent<Renderer>().material.color = Color.black; 
    }

    private void OnMouseEnter()
    {
        GetComponent<Renderer>().material.color = Color.red; 
    }

    private void OnMouseExit()
    {
        GetComponent<Renderer>().material.color = Color.black; 
    }
}    

标签: c#unity3d

解决方案


那么GetComponent<Renderer>().material.color会得到你的材料的颜色。你也许应该得到文本组件GetComponent<Text>().color:D


推荐阅读