public EditorModel(GameObject assetPrefab) { prefab = assetPrefab; saveAssetFolder = System.IO.Path.GetDirectoryName(AssetDatabase.GetAssetPath(prefab)); assetInstance = GameObject.Instantiate(assetPrefab) as GameObject; assetInstance.name = assetPrefab.name; assetInstance.SetActive(true); // Check for LocalSettings on the prefab and use that if possible LocalSettings = assetInstance.GetComponentInChildren<LocalSettings>(); if (LocalSettings != null) { UseLocalSettings = true; BlobModel = assetInstance.AddComponent<ABlobModel>().InitWithExistingBlob(LocalSettings.gameObject); } else { Mesh blobMesh = AssetDatabase.LoadAssetAtPath("Assets/BlobOMatic/BlobMesh.asset", typeof(Mesh)) as Mesh; BlobModel = assetInstance.AddComponent<ABlobModel>().Init(blobMesh); if (!ICanHasShadow) return; // Not a valid model, bugger off! LocalSettings = BlobModel.BlobRenderer.gameObject.AddComponent<LocalSettings>().CopyGlobalSettings(); saveAssetFolder += "/" + prefab.name + "WithBlob"; } // Collect original layers and set everything to blob layer foreach (Transform t in assetInstance.GetComponentsInChildren<Transform>(true)) originalLayers[t.gameObject] = t.gameObject.layer; assetInstance.SetLayerRecursively(BlobOMatic.EditorLayer); assetInstance.SetActive(false); assetInstance.SetHideFlagsRecursively(HideFlags.HideAndDontSave); RenderBlob(); }
public void Init(PlaceItemMaster master) { GameObject hc = new GameObject ("Handle Camera", typeof(HandleCameraSync)); layer = LayerMask.NameToLayer ("ItemHandle"); hcs = hc.GetComponent<HandleCameraSync> (); hcs.master = master; hcs.SetLayer (layer); this.master = master; this.movePref = master.movePref; this.rotatePref = master.rotatePref; this.scalePref = master.scalePref; float trans = .8f; xHandle = GameObject.Instantiate (movePref); xHandle.GetComponent<Renderer> ().material.color = new Color (1, 0, 0, trans); xHandle.gameObject.name = "X Handle"; yHandle = GameObject.Instantiate (movePref); yHandle.GetComponent<Renderer> ().material.color = new Color (0, 1, 0, trans); yHandle.gameObject.name = "Y Handle"; zHandle = GameObject.Instantiate (movePref); zHandle.GetComponent<Renderer> ().material.color = new Color (0, 0, 1, trans); zHandle.gameObject.name = "Z Handle"; xRotateHandle = GameObject.Instantiate (rotatePref); xRotateHandle.GetComponent<Renderer> ().material.color = new Color (1, 0, 0, trans); xRotateHandle.gameObject.name = "X Rotate Handle"; yRotateHandle = GameObject.Instantiate (rotatePref); yRotateHandle.GetComponent<Renderer> ().material.color = new Color (0, 1, 0, trans); yRotateHandle.gameObject.name = "Y Rotate Handle"; zRotateHandle = GameObject.Instantiate (rotatePref); zRotateHandle.GetComponent<Renderer> ().material.color = new Color (0, 0, 1, trans); zRotateHandle.gameObject.name = "Z Rotate Handle"; xHandle.SetLayerRecursively (layer); yHandle.SetLayerRecursively (layer); zHandle.SetLayerRecursively (layer); xRotateHandle.SetLayerRecursively (layer); yRotateHandle.SetLayerRecursively (layer); zRotateHandle.SetLayerRecursively (layer); }