【问题标题】:Can't change imported blender object material color by script无法通过脚本更改导入的搅拌机对象材质颜色
【发布时间】:2018-10-25 18:54:46
【问题描述】:

我正在尝试应用一个在光标位于对象顶部时更改材质颜色的脚本。这是脚本:

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);
    }

}

此代码在应用于统一创建的立方体时可以完美运行,但是当我尝试在导入的网格上使用它时,它不起作用。

下面是脚本不起作用的导入对象之一的示例:

有人可以帮助我了解如何解决这个问题吗? 谢谢

【问题讨论】:

    标签: c# unity3d blender


    【解决方案1】:

    您导入的网格还没有鼠标检测所需的碰撞器。

    添加一个,对于像球体这样的简单网格,只需使用 Sphere Collider

    编辑: 此外,如果您需要经常访问它,通常应该存储一个参考。

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

    【讨论】:

    • 这正是问题所在,谢谢!还有一件事:它适用于球体对撞机,但当我使用网格或立方体对撞机时,它就不行了。这是为什么呢?
    • @vasco_t 如果没有更多信息,我无法判断。我建议使用一些带有工作/不工作对象的屏幕截图来打开一个新问题。一般来说,它们都会起作用。刚刚用网格对撞机为自己做了一个小测试,没有任何问题。
    猜你喜欢
    • 2016-07-23
    • 2017-06-15
    • 2017-12-06
    • 1970-01-01
    • 2012-11-20
    • 2018-10-01
    • 2013-06-27
    • 2019-01-03
    相关资源
    最近更新 更多