获取另一个游戏对象的渲染器

时间:2018-08-09 12:40:52

标签: unity3d

我有一个3d立方体,具有不亮的\透明纹理。我正在尝试访问材料偏移参数。

public class scroll : MonoBehaviour {

    public float speed = 0.5f;
    public GameObject stars, bg;
    public Component ren;

    // Use this for initialization
    void Start () {
        ren = GameObject.Find("stars").GetComponent<Renderer>();
    }

    // Update is called once per frame
    void Update () {
        Vector2 offset = new Vector2(0, Time.time * speed);

        //here I want to change offset of the texture (shader: unlit\transparent)

    }
}

我尝试了

ren.renderer.material.mainTextureOffeset = offset;

遇到错误:

  

UnityEngine.Material不包含针对   mainTextureOffeset,并且没有扩展方法mainTextureOffeset   可以找到类型UnityEngine.Material。你想念一个   组装参考?

结构:

-WORLD(此脚本附在此处)

-星星(3D立方体)

2 个答案:

答案 0 :(得分:3)

您的代码中有错别字:mainTextureOffeset而不是mainTextureOffset。对于UnityEngine.Material不包含mainTextureOffset,我看不到其他任何可能性。

答案 1 :(得分:1)

我认为您应该使用ren.material.mainTextureOffset,因为ren是对“ stars”渲染器的引用,而不是对GameObject“ stars”的引用。

编辑:正如@Bagdan Gilevich在回答中指出的那样,您还应该将mainTextureOffeset更改为mainTextureOffset。