簡體   English   中英

未從數組中讀取的值

[英]values not read from array

這是我第一次使用二維數組,我似乎無法解決這個問題。 我正在統一工作,我在代碼底部有一個用於每個方法的按鈕。 每次我按下按鈕時,調試都會顯示該方法被正確調用,甚至將其正確添加到先前存儲的值中。

問題是當我嘗試將某些內容分配給存儲在數組中的值時,它沒有檢索到正確的值。 所以在這種情況下,如果我調用add addenergy(); 2 次調試會顯示

“將 1 添加到 0,02”

即使我在開始時將其設置為 3。 檢查值仍為 3,選項卡也將顯示 3。我做錯了什么?

using UnityEngine;
using System.Collections;

public class factioncontroller : MonoBehaviour {

public int[,] skills = new int[4, 3];

public int check;

// Use this for initialization
void Start () {

 skills[0, 0]=3;
}

// Update is called once per frame
void Update () {
    if (Input.GetKeyDown("tab")) { Debug.Log(skills[0, 0]);         
    check = skills[0, 0];
}
public void addskill(int x, int y) { skills[x, y] += 1; Debug.Log("added 1    to" + x + "," + y + skills[x, y]); }
public void addenergy() { addskill(0,0); }
public void addregen() { addskill(0, 1); }
public void addmovement() { addskill(0, 2); }
public void addusesS() { addskill(1, 0); }
public void addduration() { addskill(1, 1); }
public void addemp() { addskill(1, 2); }
public void addrangeD() { addskill(2, 0); }
public void adddistract() { addskill(2, 1); }
public void addstun() { addskill(2, 2); }
public void addrangeG() { addskill(3, 0); }
public void addusesG() { addskill(3, 1); }
public void addmobi() { addskill(3, 2); }
}

我不知道你調用方法的順序,但如果你的目的是初始化skills ,那么為什么不在構造函數中初始化它呢?

刪除Start()方法,並添加以下一個:

// Use this for initialization
public factioncontroller()
{
    skills[0, 0] = 3;
}

這將保證在您調用此類上的任何實例方法之前被調用。

從您所經歷的情況來看,似乎根本沒有調用Start() ,或者addenergy()之后addenergy()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM