private void CreateNewShape(PBShapeType type, out GameObject go, out ExposeToEditor exposeToEditor) { go = PBShapeGenerator.CreateShape(type); go.AddComponent <PBMesh>(); Renderer renderer = go.GetComponent <Renderer>(); if (renderer != null && renderer.sharedMaterials.Length == 1 && renderer.sharedMaterials[0] == PBBuiltinMaterials.DefaultMaterial) { IMaterialPaletteManager paletteManager = IOC.Resolve <IMaterialPaletteManager>(); if (paletteManager.Palette.Materials.Count > 0) { renderer.sharedMaterial = paletteManager.Palette.Materials[0]; } } IRuntimeEditor rte = IOC.Resolve <IRuntimeEditor>(); RuntimeWindow scene = rte.GetWindow(RuntimeWindowType.Scene); Vector3 position; Quaternion rotation; GetPositionAndRotation(scene, out position, out rotation); exposeToEditor = go.AddComponent <ExposeToEditor>(); go.transform.position = position + rotation * Vector3.up * exposeToEditor.Bounds.extents.y; go.transform.rotation = rotation; }
private static void CreateShape(PBShapeType type, out GameObject go, out ExposeToEditor exposeToEditor) { go = PBShapeGenerator.CreateShape(type); go.AddComponent <PBMesh>(); Renderer renderer = go.GetComponent <Renderer>(); if (renderer != null && renderer.sharedMaterials.Length == 1 && renderer.sharedMaterials[0] == PBBuiltinMaterials.DefaultMaterial) { IMaterialPaletteManager paletteManager = IOC.Resolve <IMaterialPaletteManager>(); if (paletteManager.Palette.Materials.Count > 0) { renderer.sharedMaterial = paletteManager.Palette.Materials[0]; } } exposeToEditor = go.AddComponent <ExposeToEditor>(); }
private object OnNewShape(object arg) { GameObject go = PBShapeGenerator.CreateShape((PBShapeType)arg); go.AddComponent <PBMesh>(); Renderer renderer = go.GetComponent <Renderer>(); if (renderer != null && renderer.sharedMaterials.Length == 1 && renderer.sharedMaterials[0] == PBBuiltinMaterials.DefaultMaterial) { IMaterialPaletteManager paletteManager = IOC.Resolve <IMaterialPaletteManager>(); if (paletteManager.Palette.Materials.Count > 0) { renderer.sharedMaterial = paletteManager.Palette.Materials[0]; } } IRuntimeEditor rte = IOC.Resolve <IRuntimeEditor>(); RuntimeWindow scene = rte.GetWindow(RuntimeWindowType.Scene); Vector3 position; Quaternion rotation; GetPositionAndRotation(scene, out position, out rotation); ExposeToEditor exposeToEditor = go.AddComponent <ExposeToEditor>(); go.transform.position = position + rotation * Vector3.up * exposeToEditor.Bounds.extents.y; go.transform.rotation = rotation; Editor.Undo.BeginRecord(); Editor.Selection.activeGameObject = go; Editor.Undo.RegisterCreatedObjects(new[] { exposeToEditor }); Editor.Undo.EndRecord(); return(go); }