Hellos傢伙我是初學者,有2個班級。 A類有一個我需要在B類中訪問的數組。我在這裏搜索了過去36小時嘗試不同的方法,這就是我最終得到的任何幫助?Array.Indexof混淆
這與陣列
[System.Serializable]
public class Cli
{
public string name;
public int money;
};
public class BankManager : MonoBehaviour
{
private static BankManager _instance;
public static BankManager Instance
{
get
{
if (_instance == null)
{
GameObject go = new GameObject("BankManager");
go.AddComponent<BankManager>();
}
return _instance;
}
}
public GameObject player;
private string NaMe;
public Bank[] banks = new Bank[1];
public Cli[] clients = new Cli[1];
void Awake()
{
_instance = this;
}
void Start()
{
banks[0] = new Bank("In But Not Out", 10000);
player = GameObject.Find("Player");
clients[0].money = 1000;
}
void Update()
{
PlayerController pName = player.GetComponent<PlayerController>();
clients[0].name = pName.name;
}
}
第一類我試圖訪問數組是客戶端[]
public class AccessAtm : MonoBehaviour
{
public Bank bank;
public int clams;
private void OnTriggerEnter2D(Collider2D other)
{
bank = BankManager.Instance.banks[0];
if (other.tag == "Player")
{
clams = Array.IndexOf(BankManager.Instance.clients,
other.GetComponent<PlayerController>().name);
Debug.Log(other.GetComponent<PlayerController>().name);
}
}
}
的正確的debug.log告訴我我得到了player.name我相信我的錯誤是要麼獲取該數組的實例或indexof命令
我也許應該澄清蛤蜊是= -1當我運行了這一點應該是件1陣列中 –
無處我看出來你真的* *分配客戶[0]所以'IndexOf'沒有找到它應該被期望。還考慮到數組只有長度1;它*更好*不返回1 :)(順便說一句,這樣的公共字段和靜態引用是*糟糕的*練習) – BradleyDotNET
與你的問題沒有關係,但你真的應該嘗試調用'other.GetComponent()'只有一次,將結果保存在一個變量中,並在函數中使用該變量兩次。 –