public void Deserialize(HierarchyNode n) { foreach (HierarchyNode i in n.Children) { AssetRepresentation asset = KnownAssets.SingleOrDefault(o => o.Id == i.Name); if (asset == null) { Debug.LogWarning("Could not find asset with id: " + i.Name); continue; } asset = Instantiate(asset, Vector3.zero, Quaternion.identity); asset.Deserialize(i); } }
private void OnMouseDown() { EditorController ctrl = FindObjectOfType <EditorController>(); if (FindObjectOfType <LevelLoader>().Playing) { return; } Vector2 clickedPositionExact = Camera.main.ScreenToWorldPoint(Input.mousePosition); Vector2 clickedPosition = new Vector2((int)clickedPositionExact.x + 0.5f, (int)clickedPositionExact.y - 0.5f); Debug.Log(clickedPosition); AssetRepresentation clickedAsset = GetAssetAtPoint(clickedPosition); if (clickedAsset != null) { if (Input.GetMouseButtonDown((int)MouseButton.LeftMouse)) { //Rotate it clickedAsset.transform.Rotate(90); FindObjectOfType <EditorController>().LastRotationAngle = clickedAsset.transform.eulerAngles.z; } else if (Input.GetMouseButtonDown((int)MouseButton.RightMouse)) { //Delete it Destroy(clickedAsset.gameObject); } } else { if (Input.GetMouseButtonDown(0)) { EditorController c = FindObjectOfType <EditorController>(); //Add asset Instantiate(c.SelectedAsset, clickedPosition, Quaternion.Euler(0, 0, c.LastRotationAngle)); } } }