0
オブジェクトをインスタンス化しようとしていますが、uiManager
という変数をインスタンス化すると、オブジェクトuiManager
がspawnPlayer
からインスタンス化されます。オブジェクトをインスタンス化して変数を設定すると、C言語では機能しません。C#
ゲームをプレイして一時停止し、インスタンス化されたオブジェクトを見ると、変数は設定されません。
コードを修正してください!
using UnityEngine;
using System.Collections;
public class playerSpawner : MonoBehaviour {
public GameObject[] cars;
public uiManager ui;
int carSpawned;
void Start()
{
spawn();
}
void spawn()
{
Instantiate (cars [carPicController.next], transform.position, transform.rotation);
carPicController.next = carSpawned;
Debug.Log ("player spawned");
setuiManager();
}
void setuiManager()
{
//get the thing component on your instantiated object
uiManager ui = cars [carSpawned].GetComponent<uiManager>();
//set a member variable (must be PUBLIC)
ui = ui;
}
}
私のパブリックメソッドと変数はすべて大文字で始まり、私のプライベートメソッドと変数はすべて小文字で始まります。 Andrew Shepherdがあなたのコードの下に指摘しているように、基本的にスコープ 'ui'変数をそれ自身に設定しています。あなたのクラス 'ui'変数を' Ui'と定義すると、これを見つけ出すことができ、 'this.ui'の余分な文字を' Ui'に取り除きます – Canvas