//////////////////////////////////////////////// //////////////////////////////////////////////// public static void CreatePanelForCube(int[] cubeData, CubeLocationScript cubeScript) { GameObject panelObject = WorldBuilder._nodeBuilder.CreatePanelObject(cubeScript); panelObject.GetComponent <ObjectScript>().objectStyle = (CubeObjectStyles)cubeData[1]; if (panelObject.GetComponent <Renderer>()) { ObjectTextures texEnum = (ObjectTextures)cubeData[2]; string matName = "MapTextures/Materials/" + texEnum.ToString(); Material mat = (Material)Resources.Load(matName, typeof(Material)); panelObject.GetComponent <Renderer>().material = mat; } PanelPieceScript panelScript = panelObject.GetComponent <PanelPieceScript>(); int rotX = cubeData[4]; int rotY = cubeData[5]; int rotZ = cubeData[6]; panelObject.GetComponent <ObjectScript>().forcedRotation = new Vector3Int(rotX, rotY, rotZ); panelObject.transform.localScale *= 200; if (cubeData[0] == (int)CubeObjectTypes.Panel_Floor) // Floor { panelObject.GetComponent <ObjectScript>().objectType = CubeObjectTypes.Panel_Floor; cubeScript.CubeIsSlope = false; panelScript._panelYAxis = 0; } else if (cubeData[0] == (int)CubeObjectTypes.Panel_Wall) // Floor { panelObject.GetComponent <ObjectScript>().objectType = CubeObjectTypes.Panel_Wall; cubeScript.CubeIsSlope = false; rotZ = 90; panelScript._panelYAxis = rotY; } else if (cubeData[0] == (int)CubeObjectTypes.Panel_Angle) // Floor { panelObject.GetComponent <ObjectScript>().objectType = CubeObjectTypes.Panel_Angle; cubeScript.CubeIsSlope = true; } else { Debug.LogError("GOT AN ISSUE HERE"); } //Debug.Log("f**k TEST >>>>>>>>>> rotX " + rotX + " + rotY " + rotY + " + rotZ " + rotZ); panelObject.transform.localRotation = Quaternion.Euler(new Vector3Int(rotX, rotY, rotZ)); // panelObject.transform.tag = panelName; // panelScript.name = panelName; }
private void CollectObjectsData() { ObjectScript[] objs = FindObjectsOfType(typeof(ObjectScript)) as ObjectScript[]; objectsData = new Dictionary <Vector3, int[]>(); foreach (ObjectScript obj in objs) { Vector3 objPos = obj.transform.position; Vector3 globalRot = obj.transform.rotation.eulerAngles; Vector3 localRot = obj.transform.localRotation.eulerAngles; Vector3 objFace = obj.transform.forward; Vector3Int forceRotation = obj.GetComponent <ObjectScript>().forcedRotation; int parentYAxis = (int)obj.transform.parent.localEulerAngles.y; //Debug.Log("objFace == " + objFace); //<< This is where we left off (need to combine both trans.forward & tras.euler, to get proper pos/rot data // Debug.Log("objRot == " + objRot); //<< This is where we left off (need to combine both trans.forward & tras.euler, to get proper pos/rot data Vector3Int objRot = new Vector3Int(forceRotation.x, forceRotation.y + parentYAxis, forceRotation.z); if (objRot.x >= 360) { objRot.x -= 360; } if (objRot.y >= 360) { objRot.y -= 360; } if (objRot.z >= 360) { objRot.z -= 360; } if (objRot.z == 90) // Walls { if (objRot.y == 0 || objRot.y == 180) { objRot.y = 0; } if (objRot.y == 90 || objRot.y == 270) { objRot.y = 90; } } else { } //Debug.Log("globalRot.y == " + globalRot + " localRot.y == " + localRot); //<< This is where we left off (need to combine both trans.forward & tras.euler, to get proper pos/rot data //Debug.Log("objRot >>>>>>>>> " + objRot); //<< This is where we left off (need to combine both trans.forward & tras.euler, to get proper pos/rot data string name = obj.gameObject.GetComponent <Renderer>().material.name.Replace("(Instance)", ""); //Debug.Log("f**k name >>>>>>>> " + name); ObjectTextures objTexture = (ObjectTextures)Enum.Parse(typeof(ObjectTextures), name); CubeStruct data = new CubeStruct() { objectType = obj.objectType, styleType = obj.objectStyle, objectTexture = objTexture, health = 100, rotation = objRot }; int[] dataArray = ConvertCubeDataIntoIntArray(data); Vector3 roundedPos = GetRoundedVector3(objPos); if (!objectsData.ContainsKey(roundedPos)) { objectsData.Add(roundedPos, dataArray); } // Debug.Log("Total Panel Objects Postion == " + objPos); } Debug.Log("Total Panel Objects in Scene == " + objectsData.Count); }