Material.SetTextureOffset()の引数の意味

投稿者: user28203
GetComponent<Renderer>().sharedMaterial.SetTextureOffset("_MainTex",offset);

の引数の意味を公式リファレンスで調べたのですがその意味がわかりません。
第一引数のname: Property name, for example: "_MainTex"とはどのよう意味なのでしょうか?プロパティの名前例は_maxitexみたいなことが書いてありますがこれはどのような意味なのか知りたいです。

公式リファレンスページ: https://docs.unity3d.com/ja/current/ScriptReference/Material.SetTextureOffset.html

public class BackGround : MonoBehaviour {

    public float speed = 0.1f;

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {
        float y = Mathf.Repeat(Time.time * speed,1);
        Vector2 offset = new Vector2(0,y);
        GetComponent<Renderer>().sharedMaterial.SetTextureOffset("_MainTex",offset);
        //Debug.Log(y);
    //    Debug.Log("Time.time: " + Time.time + "y: " +y);

    }
}

解決

UnityがRendererに渡すメインテクスチャの変数名です。

ご質問のサンプルコードのようにSetTextureOffset_MainTexを移動すると外部リンク先で例示している背景のスクロール表示を実現できます。
SetTextureOffset("_MainTex", offset);mainTextureOffset = offset;等価です。

_MainTexの他にUnityから割り振られる変数名としては_BumpMap_Cubeがあります。
3Dの例ですが、上記の2変数で色々な加工を行えます。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *