- Home /
A list in a class... Am I doing it wrong??
Hello guys! So This is a code from part of my script. So my question is, I created a class which contains vector3s floats and a list and for some weird reason, I assign a list to the class object HOWEVER, the values change.
What I mean by this is for the "tempneighborarray", and "after insert" debug codes are the exactly the same BUT the "before search" prints out different values. To be exact, the values are always off in a constant number, and also missing some of the values.... My code is below, also my class declaration will be below that... Please help me!! Am I doing something against the rules?
private void createNeighborArray(){
List<FloatPoint> tempNeighborArray = new List<FloatPoint>();
for(int i = 0; i < voxels.Count; i++){
tempNeighborArray.Clear();
foreach(var dir in checkDir){
FloatPoint neighborPoint = voxels.Find(ff => ff.cp == voxels[i].cp + dir);
if(neighborPoint != null) tempNeighborArray.Add(neighborPoint);
}
if(voxels[i].cp == new Vector3(1, 3, 5)){
foreach(var asdf in tempNeighborArray){
Debug.Log(asdf.cp + ", tempneighborarray");
}
}
voxels[i] = new FloatPoint(voxels[i], tempNeighborArray);
if(voxels[i].cp == new Vector3(1, 3, 5)){
foreach(var asdfasdf in voxels[i].nfp){
Debug.Log(asdfasdf.cp + ", after insert");
}
}
}
foreach(var test in voxels){
if(test.cp == new Vector3(1, 3, 5)){
foreach(var asdf in test.nfp){
//I GET DIFFERENT VALUES WHEN I PRINT IT OUT HERE!!!! WHYYYYY??
Debug.Log(asdf.cp + ", before search");
}
}
}
}
public class FloatPoint{
public Vector3 fp;
public Vector3 cp;
public float ud;
public bool isSub;
public float dp;
public List<FloatPoint> nfp;
public FloatPoint(Vector3 floatingPoint, Vector3 coordinatePos, float uniqueDensity,bool cSub, float distancePercentage){
fp = floatingPoint;
cp = coordinatePos;
ud = uniqueDensity;
isSub = cSub;
dp = distancePercentage;
nfp = new List<FloatPoint>();
}
public FloatPoint(Vector3 floatingPoint, Vector3 coordinatePos, float uniqueDensity,bool cSub, float distancePercentage, List<FloatPoint> neighborFloatPoints){
fp = floatingPoint;
cp = coordinatePos;
ud = uniqueDensity;
isSub = cSub;
dp = distancePercentage;
nfp = neighborFloatPoints;
}
public FloatPoint(FloatPoint orgFloatPoint, List<FloatPoint> neighborFloatPoints){
fp = orgFloatPoint.fp;
cp = orgFloatPoint.cp;
ud = orgFloatPoint.ud;
isSub = orgFloatPoint.isSub;
dp = orgFloatPoint.dp;
nfp = neighborFloatPoints;
}
}
Your answer
Follow this Question
Related Questions
A node in a childnode? 1 Answer
question about array or list of boolean 1 Answer
Changes not being saved in the Inspector Editor 1 Answer
Keep adding targets to a list 2 Answers
Difference between Static, Dynamic, and Built-In Arrays 1 Answer