我剛剛開始在 Unity 中編程,但還不太擅長。我正在嘗試制作一個簡單的 cookie clicker 游戲并且正在觀看本教程,并且在 18:34 左右他寫下了一些代碼,如下所示。我認(rèn)為他的代碼已經(jīng)過時,Unity 無法像以前那樣工作(不過我不確定)。他的密碼public Text Gps;public Click click;public ItemManager[] items;public int getGoldPerSecond(){ int tick=0; foreach(ItemManager item in items) { tick +=item.count * item.tickvalue; }}我的代碼:public Text LPS;public MainButton mb; //same as his Click click scriptpublic ClicksPerSecondManager[] cps;// Use this for initializationvoid Start () { cps = GameObject.FindGameObjectsWithTag("CPS");}public int getLikesPerSecond(){ int tick = 0; foreach(ClicksPerSecondManager item in cps) { tick += cps.count * cps.LikesPersecond; } return tick;}我知道代碼無法訪問變量或其他東西。有人請向我解釋如何將對象存儲到數(shù)組中。這里發(fā)生的事情是我有一家商店,里面有 3 件商品。這是附加到 3 個項目的腳本public Text itemDesc;MainButton mainButton;public float cost;public int LikesPerSecond;public int count;public string itemName;private float baseCost;public GameObject sucessfulPurchase;public GameObject failedPurchase;public Image Panel;// Use this for initializationvoid Start () { baseCost = cost; mainButton = GameObject.FindGameObjectWithTag("Player").GetComponent<MainButton>();}// Update is called once per framevoid Update () { itemDesc.text =itemName+ "\nCost : "+cost+"\nLPS : "+LikesPerSecond ;}public void purchasedItem(){ if (mainButton.noOfLikes >= this.cost) { mainButton.noOfLikes -= cost; //minus away cost count += 1; cost = Mathf.Round(baseCost * Mathf.Pow(1.15f, count)); sucessfulPurchase.gameObject.SetActive(true); StartCoroutine(WaitFor1Second()); } else if (mainButton.noOfLikes < cost) { failedPurchase.gameObject.SetActive(true); StartCoroutine(WaitFor1Second()); }}
2 回答

冉冉說
TA貢獻(xiàn)1877條經(jīng)驗 獲得超1個贊
問題是cps = GameObject.FindGameObjectsWithTag("CPS"); 返回一個數(shù)組,GameObject所以當(dāng)你使用 a 時,返回的ForEach每個對象都來自 TypeGameObject所以你不能只使用foreach(ClicksPerSecondManager item in cps)因為cps不包含一個數(shù)組ClicksPerSecondManager,它包含一個數(shù)組,GameObject所以你可以這樣做
foreach(GameObject item in cps){
ClicksPerSecondManager cpsm = item.getComponent<ClicksPerSecondManager>();
//now you have access to its public properties or methods
Debug.log(cpsm.count);
//etc
}
- 2 回答
- 0 關(guān)注
- 169 瀏覽
添加回答
舉報
0/150
提交
取消