取得したいスクリプト名 格納する変数名 = (取得したいスクリプト名でキャスト)GameObject.Find("格納されてるオブジェクト名").GetComponent<取得したいスクリプト名>();
StatusManagerGUIというステータス管理と画面表示を行うGUIのゲームオブジェクトに格納された鍵の取得状況を、鍵に触れた際に変更する際の例:
StatusManager StMan;
void Start () {
StMan = (StatusManager)GameObject.Find("StatusManagerGUI").GetComponent<StatusManager> ();
}
private void OnTriggerEnter(Collider other){
StMan.Keys.Red = true;
Destroy(gameObject);
}
初期化でオブジェクト内のスクリプトにアクセスする。
鍵に触れた際(OnTriggerEnter)にアクセスしたStatusManagerGUI内のKey.Redのbool値をtrueにする。
鍵は取得したので削除Destroy(gameObject)する。
StatusManager.csの中身
public class StatusManager : MonoBehaviour {
public struct Key{
public bool Red;
public bool Blue;
public bool White;
public bool Green;
public bool Black;
}
public Key Keys = new Key();
void Start () {
Keys.Red = false;
Keys.Blue = false;
Keys.White = false;
Keys.Green = false;
Keys.Black = false;
}
void Update () {
if (Keys.Red){
this.guiText.text = "true";
} else {
this.guiText.text = "false";
}
}
}
public struct Key{
public bool Red;
public bool Blue;
public bool White;
public bool Green;
public bool Black;
}
public Key Keys = new Key();
void Start () {
Keys.Red = false;
Keys.Blue = false;
Keys.White = false;
Keys.Green = false;
Keys.Black = false;
}
void Update () {
if (Keys.Red){
this.guiText.text = "true";
} else {
this.guiText.text = "false";
}
}
}
取得したときわかりやすいようにguiTextで表示する。
0 件のコメント:
コメントを投稿