Question by 
               burgee · Apr 19, 2018 at 04:58 AM · 
                editorinstantiateprefab  
              
 
              I'm trying to make a prefab placement editor tool for point and click prefab placements drawn from a random pool.
I've written an editor, and when I try to place a prefab by left-clicking the scene editor just goes to a black screen. I'm new-ish to unity and not sure how to trouble shoot this.
Note that while the editor has room for 9 prefabs to be loaded, I'm testing it by just trying to place the 0th value of the array that holds all of the prefabs.
Editor Class:
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEditor;
 
 
 [CustomEditor(typeof(TerrainTrees))]
 public class PrefabPlacement : Editor
 {
     public GameObject[] Prefab = new GameObject[10];
     public float minScale = .5f;
     public float maxScale = 2f;
     public GameObject parent;
     private bool placeMode = false;
 
     private void OnSceneGUI()
     {
         int i;
 
         if (placeMode)
         {
             if (Event.current.type == EventType.MouseUp)
             {
                 Ray worldPoint = HandleUtility.GUIPointToWorldRay(Event.current.mousePosition);
                 RaycastHit hitInfo;
                 
                 if (Physics.Raycast(worldPoint, out hitInfo))
                 {
                     if (hitInfo.collider.transform.tag == "Terrain")
                     {
                         GameObject newPrefab = PrefabUtility.InstantiatePrefab(Prefab[0]) as GameObject;
                         newPrefab.transform.position = hitInfo.point;
                         newPrefab.transform.parent = parent.transform;
                         newPrefab.name = "PrefabTreePlacement";
                     }
                 }
             }
             Event.current.Use();
         }
     }
 
     public override void OnInspectorGUI()
     {
         for (int i = 0; i < 9; i++)
             Prefab[i] = EditorGUILayout.ObjectField("Prefab", Prefab[i], typeof(GameObject), true) as GameObject;
 
         minScale = EditorGUILayout.FloatField("Min", .5f);
         maxScale = EditorGUILayout.FloatField("Max", 2.5f);
         parent = EditorGUILayout.ObjectField("Parent", parent, typeof(GameObject), true) as GameObject;
 
         if (placeMode)
         {
             if (GUILayout.Button("Disable Editing"))
             {
                 placeMode = false;
             }
         }
         else
         {
             if (GUILayout.Button("Enable Editing"))
             {
                 placeMode = true;
             }
         }
     }
 }
 
              
               Comment
              
 
               
              Your answer
 
             Follow this Question
Related Questions
Why does GameObject.FindWithTag() get a wrong instance? 2 Answers
How can I change the root game object of a prefab in the editor? 1 Answer
Instantiate and destroy an object with the same key 1 Answer
Instantiate Random Prefab From Folder 1 Answer
How to Change the Variables of an Instantiated Object? 0 Answers