void Start() { if (GameObject.FindGameObjectWithTag("ProceduralTrash") != null) { trash = GameObject.FindGameObjectWithTag("ProceduralTrash").GetComponent <ProceduralTrash>(); } foreach (Transform child in transform) { vertLimit += child.GetComponent <MeshFilter>().mesh.vertexCount; } }
void OnSceneGUI() { ProceduralTrash Ptrash = (ProceduralTrash)target; float Distance = Ptrash.Distance; float radius = Ptrash.force / 10; Handles.color = Color.green; Handles.DrawWireDisc(Ptrash.transform.position, Vector3.up, Ptrash.InstantiateRange); Handles.DrawWireDisc(new Vector3(Ptrash.gameObject.transform.position.x, Ptrash.gameObject.transform.position.y - Distance, Ptrash.gameObject.transform.position.z), Vector3.up, Ptrash.TowardRange + radius); Handles.DrawLine(new Vector3(Ptrash.gameObject.transform.position.x + Ptrash.InstantiateRange, Ptrash.gameObject.transform.position.y, Ptrash.gameObject.transform.position.z), new Vector3(Ptrash.gameObject.transform.position.x + Ptrash.TowardRange + radius, Ptrash.gameObject.transform.position.y - Distance, Ptrash.gameObject.transform.position.z)); Handles.DrawLine(new Vector3(Ptrash.gameObject.transform.position.x - Ptrash.InstantiateRange, Ptrash.gameObject.transform.position.y, Ptrash.gameObject.transform.position.z), new Vector3(Ptrash.gameObject.transform.position.x - Ptrash.TowardRange - radius, Ptrash.gameObject.transform.position.y - Distance, Ptrash.gameObject.transform.position.z)); Handles.DrawLine(new Vector3(Ptrash.gameObject.transform.position.x, Ptrash.gameObject.transform.position.y, Ptrash.gameObject.transform.position.z + Ptrash.InstantiateRange), new Vector3(Ptrash.gameObject.transform.position.x, Ptrash.gameObject.transform.position.y - Distance, Ptrash.gameObject.transform.position.z + Ptrash.TowardRange + radius)); Handles.DrawLine(new Vector3(Ptrash.gameObject.transform.position.x, Ptrash.gameObject.transform.position.y, Ptrash.gameObject.transform.position.z - Ptrash.InstantiateRange), new Vector3(Ptrash.gameObject.transform.position.x, Ptrash.gameObject.transform.position.y - Distance, Ptrash.gameObject.transform.position.z - Ptrash.TowardRange - radius)); }
public override void OnInspectorGUI() { GenerateStyle(); Texture myTexture = (Texture)AssetDatabase.LoadAssetAtPath("Assets/Crowd Procedural/Editor/logo.png", typeof(Texture)); GUILayout.Box(myTexture, newStyle); ProceduralTrash trash = (ProceduralTrash)target; GUI.color = Color.Lerp(Color.blue, Color.white, .8f); GUILayout.Label("~Generate trash using~", newStyle); GUILayout.Space(3); EditorGUILayout.BeginHorizontal(); if (EditorGUILayout.ToggleLeft("Moving object", trash.MovingObject)) { trash.MovingObject = true; trash.TimePass = false; } else { trash.TimePass = true; trash.MovingObject = false; } if (EditorGUILayout.ToggleLeft("Time pass", trash.TimePass)) { trash.TimePass = true; trash.MovingObject = false; } else { trash.MovingObject = true; trash.TimePass = false; } EditorGUILayout.EndHorizontal(); if (trash.TimePass) { GUILayout.Space(5); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Generate trash foreach"); trash.Delay = EditorGUILayout.FloatField(trash.Delay); EditorGUILayout.EndHorizontal(); } GUILayout.Space(5); serializedObject.Update(); EditorGUILayout.PropertyField(serializedObject.FindProperty("TrashModels"), true); serializedObject.ApplyModifiedProperties(); trash.InstantiateRange = EditorGUILayout.Slider("Instantiate Range", trash.InstantiateRange, 0, trash.TowardRange); trash.TowardRange = EditorGUILayout.Slider("Toward Range", trash.TowardRange, 0, 10); trash.force = EditorGUILayout.Slider("Force", trash.force, 0, 150); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button(TrashState)) { IsGenerating = !IsGenerating; if (IsGenerating) { TrashState = "Stop Generate Trash"; trash.StartGenrateTrash = true; } else { TrashState = "Start Generate Trash"; trash.StopGenrateTrash = true; } } EditorGUILayout.EndHorizontal(); if (trash.StartGenrateTrash == false) { EditorGUILayout.HelpBox("Genrating is off !", MessageType.None); } else { EditorGUILayout.HelpBox("Genrating is on !", MessageType.None); } }