从脚本

时间:2016-11-16 16:22:01

标签: c# unity3d

我有一个烟雾预制件,我需要更改脚本中的颜色,因为在播放时间颜色会发生变化。

我正在实例化预制件并尝试将颜色更改为红色,如下所示:

class Smoke1 : MonoBehaviour
{
    public GameObject myPrefab;
    public GameObject canvasObject;

void Start()
    {
        GameObject newSmoke = Instantiate(myPrefab, new Vector3(397, -394, 90), Quaternion.Euler(-90, 0, 0)) as GameObject;
        newSmoke.transform.SetParent(canvasObject.transform, false);
        newSmoke.transform.localScale = new Vector3(1, 1, 1);

        newSmoke.GetComponent<MeshRenderer>().material.SetColor("_Color",Color.red);
    }

正如您在图片中看到的那样,预制件作为材料但脚本根本没有改变颜色(图中黑色): enter image description here

你对如何解决这个问题有任何想法吗?

1 个答案:

答案 0 :(得分:2)

您必须更改ParticleSystem的起始颜色,而不是不存在的MeshRenderer的材料。

   newSmoke.GetComponent<ParticleSystem>().startColor = Color.red ;

https://docs.unity3d.com/ScriptReference/ParticleSystem-startColor.html