[英]Assign static List to a non-static List
我之所以來到這里,是因為我在Unity和C#中遇到了一個奇怪的問題,無法解決該問題。
我有兩個C#腳本:
ScriptA被實例化一次並且具有靜態變量。 它具有包含路徑點的靜態列表。 該列表隨時間變化。
ScriptB被實例化多次(它附加到敵人身上)。 在Start()上, 它設置一個等於當前ScriptA.listOfPoint的非靜態列表。
問題在於,似乎此非靜態列表已使用ScriptA.listOfPoints
更新。 我只想在實例化此ScriptB時有一個等於ScriptA.listOfPoints
狀態的列表。
我在這里做錯了什么?
提前致謝 :)
靜態的 :
//ScriptA
public static List<int> listOfPoints = new List<int>();
public static void pathUpdate() //get called every 2secs
{
//listOfPoints is modified
}
敵人:
//ScriptB
private List<int> nonStaticListOfPoints = new List<int>();
void Start ()
{
nonStaticListOfPoints = ScriptA.listOfPoints;
}
進行該分配時,您不是在創建兩個列表,而是在兩個變量中保存對同一列表的引用。
如果您想要列表元素的副本,可以執行以下操作 :
nonStaticListOfPoints = new List<int>(ScriptA.listOfPoints);
這將創建一個新列表,並復制傳遞到構造函數的列表中的元素,因此現在可以獨立於listOfPoints
來操縱nonStaticListOfPoints
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.