にゃーんになりたい。

Pepperと仲良くなりたい。

Unity のマテリアルをスクリプトで切り替える

Unity のマテリアルをキーボードで切り替えたいなーってスクリプトを書く。

OS: Windows10  Unity: 2017.1.0f3

C#ではじめるUnityプログラミング入門 - libro

とかで基礎。

qiita.com

スクリプトをオブジェクトに張り付ける方法をお勉強。

teratail.com

に書いてあるベストアンサーのを基本的には利用してスクリプトを書く。


変更点

  • スクリプトのファイル名を Test にしたので、5行目を public class Test : MonoBehaviour{  に書き換え
    (ファイル名の1文字目は大文字じゃないとだめ)

  • 1行目の using UnityEngine; は3行目と被ってるので削除。

  • 5種類のマテリアルを使いたかったので20行目を if (i == 5) { に書き換え

  • 日本語のコメントアウト部分は削除


Test.cs

using System.Collections; 
using UnityEngine; 
public class Test : MonoBehaviour{ 
    public Material[] _material;
    private int i; 
    // Use this for initialization 
    void Start () { 
        i = 0; 
    } 
    // Update is called once per frame 
    void Update () { 
        if (Input.GetKeyUp(KeyCode.Space)) { 
            i++; 
            if (i == 5) { 
                i = 0; 
            } 
            this.GetComponent<Renderer>().sharedMaterial=_material[i]; 
        }  
    } 
}

注意

  • エディタは Visual Studio ではなく Monodevelop を使用(日本語環境はまずそう)
    (Edit → Preferences → External Tools あたりでプルダウンして変更。VSC オプション警告は無視。)

  • ときどき
    No MonoBehaviour scripts in the file ,or their names do not match the file name.
    とか言ってくるけどスクリプト削除してもっかいイチからやりなおせば直る……かも?