我正在嘗試將對象傳遞給方法。在通話之前,我檢查它是否爲空,而不是。在方法內部,對象爲null,我不知道爲什麼。傳遞給方法後的對象爲null
public class WorldManager : MonoBehaviour {
private Mesh mesh;
private List<int> triangles;
private List<Vector3> vertices;
// Use this for initialization
void Start() {
mesh = GetComponent<MeshFilter>().mesh;
OctreeNode rootNode = new OctreeNode (1, new Vector3(0f,0f,0f), 16);
Octree octree = new Octree (rootNode);
DualContouring contour = new DualContouring();
vertices = octree.vertices;
if (rootNode == null) {
Debug.Log ("Node is null"); //It's not
} else {
Debug.Log (rootNode.type);
}
triangles = contour.ContourOctree (rootNode);
mesh.Clear();
mesh.vertices = vertices.ToArray();
mesh.triangles = triangles.ToArray();
mesh.Optimize();
mesh.RecalculateNormals();
}
public class DualContouring {
VoxelModel VoxelModel = new VoxelModel();
int MATERIAL_SOLID = 1;
int MATERIAL_AIR = 0;
List<int> triangles = new List<int>();
byte Node_Internal = 1;
byte Node_Psuedo = 2;
byte Node_Leaf = 3;
public List<int> ContourOctree(OctreeNode node){
if (node==null) {
Debug.Log ("Now it's null");
}
ContourCellProc (node);
return triangles;
}
至此,我可以訪問屬性並且對象不爲null。有問題的變量「節點」正在傳遞,沒有任何問題。它被傳遞給同一個類中的方法,它是空的。
void ContourCellProc(OctreeNode node)
{
if (node == null) // True
{
Debug.Log ("It is null");
return;
}
現在我無法訪問該對象,它是空的,我不知道爲什麼。我不明白,它只是被傳遞了。問題是什麼?
節點變量是否可以從其他線程訪問? –
你能製作一個實際編譯和演示你的問題的小樣本嗎? –
此代碼看起來不錯;在我們沒有看到的代碼中發生了一些事情。你能分享更多你的節目嗎? – adv12