public AddPowerShard ( PowerShard, shard ) : void | ||
shard | PowerShard, | |
Résultat | void |
public static PlayBoard JSONToBoard(ref GameObject board, String fileName) { board = new GameObject("Board"); GameObject assets = new GameObject("Assets"); assets.transform.parent = board.transform; JSONObject js = JSONObject.GetJsonObjectFromFile("JsonFiles/Maps/" + fileName); int width = (int)js.GetField("Width").n; int height = (int)js.GetField("Height").n; PlayBoard playBoard = new PlayBoard(width, height); JSONObject array = js.GetField("Hexagons"); GameObject groundEffect = Resources.Load<GameObject>("VFX/Ground/Ground_Effect"); GameObject shardEffect = Resources.Load<GameObject>("VFX/Shard_Zone/Shard_Zone_Effect"); GameObject glyph = Resources.Load<GameObject>("prefabs/SM_Glyphe_1"); JSONObject camera = js.GetField("Camera"); if (camera != null) { float xCam = camera.GetField("x").f; float yCam = camera.GetField("y").f; float zCam = camera.GetField("z").f; float rotXCam = camera.GetField("rotX").f; float rotYCam = camera.GetField("rotY").f; float rotZCam = camera.GetField("rotZ").f; float rotWCam = camera.GetField("rotW").f; Camera.main.transform.position = new Vector3(xCam, yCam, zCam); Camera.main.transform.rotation = new Quaternion(rotXCam, rotYCam, rotZCam, rotWCam); } foreach (JSONObject hexa in array.list) { Hexagon hexagon = playBoard.CreateHexagone((int)hexa.GetField("posX").n, (int)hexa.GetField("posY").n); GameObject prefab = (GameObject)Resources.Load("Prefabs/" + hexa.GetField("gameObject").str, typeof(GameObject)); hexagon.DefaultColor = prefab.GetComponent<Renderer>().sharedMaterial.color; hexagon.GameObject = GameObject.Instantiate(prefab); hexagon.GameObject.name = hexa.GetField("gameObject").str; hexagon.GameObject.transform.parent = board.transform; hexagon.GameObject.transform.position = new Vector3(0.866f * hexagon._posX - 0.433f * hexagon._posY, hexa.GetField("posZ").n, 0.75f * hexagon._posY); JSONObject quaternion = hexa.GetField("rotation"); if (quaternion == null) { hexagon.GameObject.transform.Rotate(EruleRandom.RangeValue(0, 7) * 180f, EruleRandom.RangeValue(0, 11) * 60f, 0f); } else { hexagon.GameObject.transform.rotation = new Quaternion(quaternion.GetField("x").f, quaternion.GetField("y").f, quaternion.GetField("z").f, quaternion.GetField("w").f); } hexagon.Glyph = GameObject.Instantiate(glyph); hexagon.Glyph.transform.parent = hexagon.GameObject.transform; hexagon.Glyph.transform.position = new Vector3(0.866f * hexagon._posX - 0.433f * hexagon._posY, hexa.GetField("posZ").n+0.2f, 0.75f * hexagon._posY); hexagon.Glyph.SetActive(false); hexagon.GroundEffect = GameObject.Instantiate(groundEffect); hexagon.GroundEffect.transform.parent = hexagon.GameObject.transform; hexagon.GroundEffect.transform.position = new Vector3(0.866f * hexagon._posX - 0.433f * hexagon._posY, hexa.GetField("posZ").n + 0.23f, 0.75f * hexagon._posY); hexagon.GroundEffect.SetActive(false); hexagon.GroundEffect.transform.rotation = Quaternion.Euler(0, EruleRandom.RangeValue(0.0f,360.0f), 0); hexagon.ShardEffect = GameObject.Instantiate(shardEffect); hexagon.ShardEffect.transform.parent = hexagon.GameObject.transform; hexagon.ShardEffect.transform.position = new Vector3(0.866f * hexagon._posX - 0.433f * hexagon._posY, hexa.GetField("posZ").n + 0.23f, 0.75f * hexagon._posY); hexagon.ShardEffect.SetActive(false); hexagon.ShardEffect.transform.rotation = Quaternion.Euler(0, EruleRandom.RangeValue(0.0f, 360.0f), 0); hexagon.CurrentState = Hexagon.State.Default; if (hexa.GetField("isSpawn") != null) { hexagon.CurrentState = Hexagon.State.Spawnable; hexagon.IsSpawn = true; } else { hexagon.IsSpawn = false; } /*if (hexa.GetField("underground") != null) { string undergroundName = hexa.GetField("underground").str; if (undergroundName != null) { GameObject prefabObstacle = (GameObject)Resources.Load("Prefabs/" + undergroundName, typeof(GameObject)); GameObject underground = GameObject.Instantiate(prefabObstacle); underground.transform.parent = hexagon.GameObject.transform; underground.name = undergroundName; underground.transform.position = new Vector3(0.866f * hexagon._posX - 0.433f * hexagon._posY, hexa.GetField("posZ").n - 0.2f, 0.75f * hexagon._posY); underground.transform.Rotate(0f, EruleRandom.RangeValue(0, 5) * 60f, 0f); hexagon.Underground = underground; } }*/ if (hexa.GetField("obstacle") != null) { string obstacleName = hexa.GetField("obstacle").str; if (obstacleName != null) { GameObject prefabObstacle = (GameObject)Resources.Load("Prefabs/" + obstacleName, typeof(GameObject)); GameObject asset = GameObject.Instantiate(prefabObstacle); asset.transform.parent = assets.transform; asset.transform.position = new Vector3(0.866f * hexagon._posX - 0.433f * hexagon._posY, hexa.GetField("posZ").n, 0.75f * hexagon._posY); Obstacle obs = new Obstacle(hexagon); obs.GameObject = new GameObject(prefabObstacle.name); obs.GameObject.transform.parent = hexagon.GameObject.transform; obs.GameObject.transform.position = new Vector3(0.866f * hexagon._posX - 0.433f * hexagon._posY, hexa.GetField("posZ").n, 0.75f * hexagon._posY); CapsuleCollider collider = obs.GameObject.AddComponent<CapsuleCollider>(); collider.height = 5; collider.radius = 0.5f; obs.GameObject.layer = LayerMask.NameToLayer("Obstacle"); obs.GameObject.transform.Rotate(0f, EruleRandom.RangeValue(0, 5) * 60f, 0f); } } if (hexa.GetField("powerShard") != null) { PowerShard ps = PowerShard.JSONToPowerShard(hexa.GetField("powerShard"), hexagon); GameObject prefabShard = (GameObject)Resources.Load("Prefabs/" + hexa.GetField("powerShard").GetField("gameObject").str, typeof(GameObject)); GameObject asset = GameObject.Instantiate(prefabShard); asset.transform.parent = assets.transform; asset.transform.position = new Vector3(0.866f * hexagon._posX - 0.433f * hexagon._posY, hexa.GetField("posZ").n, 0.75f * hexagon._posY); ps.GameObject.transform.parent = hexagon.GameObject.transform; ps.GameObject.transform.position = new Vector3(0.866f * hexagon._posX - 0.433f * hexagon._posY, hexa.GetField("posZ").n, 0.75f * hexagon._posY); ps.GameObject.layer = LayerMask.NameToLayer("Obstacle"); playBoard.AddPowerShard(ps); } } JSONObject centerJs = js.GetField("Center"); if (centerJs != null) { Vector3 center = new Vector3(centerJs.GetField("x").n, centerJs.GetField("y").n, centerJs.GetField("z").n); playBoard._center = center; Logger.Debug(center); } return playBoard; }