キャラ選した色をキャラに与える

説明(略)

キャラの数じゃなく色を換えることで選択幅を増やしてる

もちろん,キャラ自身も変えられるがその場合はresorceあたりを使うといけるはず

Playerprefsに入れたキャラ名から色を決めてアサインするスクリプト

using UnityEngine;
using System.Collections;

public class setMaterial : MonoBehaviour {

	//変数宣言
	public Renderer myIka;
	public Renderer myTako;

	private string matname1;
	private string matname2;

	void Start () {
		materialSet (); //面倒くさいんで下にfunction作って呼び出すことに
	}
	
	// Update is called once per frame
	void Update () {
	
	}

	
	void materialSet(){ //というfunction作った
		matname1 = PlayerPrefs.GetString("matName1"); //距離から得られたキャラの名前をPlayerPrefsに入れあって,それを呼び出す
		matname2 = PlayerPrefs.GetString("matName2"); 
		//PlayerPrefsはシーン遷移で使うのが良いかと思います

		myIka = GameObject.Find("ikaName").GetComponent<Renderer>(); //名前でキャラを探しそのレンダラーをmyIkaに入れる
		myTako = GameObject.Find("takoName").GetComponent<Renderer>();

		//アサインされているマテリアルの色を色名で変更.たぶんHexも使えるはず
		//4択だったのでコピペ.caseとか使った方がもっとキレイになるのだろうけど,,
		if (matname1 == "ika01") {
			myIka.material.SetColor("_Color", Color.blue);
		}
		if (matname1 == "ika02") {
			myIka.material.SetColor("_Color", Color.green);
		}
		if (matname1 == "ika03") {
			myIka.material.SetColor("_Color", Color.white);
		}
		if (matname1 == "ika04") {
			myIka.material.SetColor("_Color", Color.yellow);
		}

		//tako用
		if (matname2 == "tako01") {
			myTako.material.SetColor("_Color", Color.blue);
		}
		if (matname2 == "tako02") {
			myTako.material.SetColor("_Color", Color.green); 
		}
		if (matname2 == "tako03") {
			myTako.material.SetColor("_Color", Color.white); 
		}
		if (matname2 == "tako04") {
			myTako.material.SetColor("_Color", Color.yellow); 
		}

	}

}