[英]UNity3D, return value from one class/method to another class/method in Unity3D
[英]Unity3D C#-Pass List value to another class
我可以問一下如何將List值傳遞給另一個類嗎?例如:
using System.Collections.Generic;
public class PassListClass : MonoBehaviour
{
List<int> passInt=new List<int>();
public void Start()
{
passInt.Add(1);
passInt.Add(3);
}
.
.
.
}
所以我想將1和3傳遞給另一個類,在創建一個類實例並在另一個類中調用它該怎么辦?我已經嘗試過將List值傳遞給另一個類,但是卻無法正常工作。實際上我想傳遞一個列表將游戲對象轉移到另一個類,只是試圖獲得一些想法。謝謝您的幫助。
為什么不在新的類構造函數中分配它?
1級-> 2級
您可以執行以下操作:
Class2 newInstance = new Class2(your_list_from_Class1);
構造函數可能類似於:
public Class2(List<something> listToPass){
this.list = listToPass;
}
我不確定我是否完全理解您的回答,但希望能有所幫助。 我要在這里留下一些可能對您有幫助的答案:
如果兩個類都是腳本(由MonoBehaviour擴展),則不能將值從A類傳遞給B類構造函數。
但是,您可以執行以下任一操作:1.將要從A類-> B類傳遞的變量設置為靜態變量。 那你就可以用
B級以內
Variable localVariableName;
public void Update() {
if(localVariableName==null)
localVariableName = ClassA.VariableName;
}
// -- OR if you know that ClassA will run before ClassB --
public void Start() {
localVariableName = ClassA.VariableName;
}
-或-如果您不想使用靜態變量,則可以找到具有ClassA作為腳本並從Class B中引用該變量的GameObject。
Variable localVariableName;
public GameObject OwnerOfClassA;
public void Start() {
localVariableName = OwnerOfClassA.GetComponent<ClassA>().VariableName;
}
在Unity3D編輯器中,只需將擁有classA的游戲對象拖到OwnerOfClassA中
我希望這有幫助!
干杯,扎拉塔。
所以這實際上是我在將List值傳遞給另一個類時所做的事情。希望對您有所幫助。
public class ListClass : MonoBehaviour
{
List<int> intList=new List<int>();
private static ListClass instance;
public void Start()
{
intList.Add(1);
intList.Add(2);
lnstance=this
}
}
對於另一堂課
public class ValueFromListClass : MonoBehaviour
{
private ListClass listClass;
List<int> valueFromListClass=new List<int>();
public void Start()
{
listClass=ListClass.instance;
valueFromListClass=listClass.intList;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.