public override void OnInspectorGUI() { if (!Application.isPlaying) { base.OnInspectorGUI(); GravitationalBodyManager manager = target as GravitationalBodyManager; EditorGUILayout.Space(); bool guiEnabled = GUI.enabled; GUI.enabled = false; EditorGUILayout.IntField("Count", manager.Count); GUI.enabled = guiEnabled; EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.Space(); if (GUILayout.Button("Add Body")) { manager.AddBody(); } EditorGUILayout.EndHorizontal(); EditorGUILayout.Space(); } }
private void OnEnable() { if (bodies == null) { bodies = new GameObject().AddComponent <GravitationalBodyManager>(); bodies.transform.parent = transform; } LoadResource("GravitationalField", ref gravitationalField); LoadResource("GravitationalFieldVelocity", ref gravitationalFieldVelocity); LoadResource("GravitationalFieldPoints", ref pointsMaterial); LoadResource("GravitationalFieldGrid", ref gridMaterial); computePointPositionsKernel = gravitationalField.FindKernel("ComputePointPositions"); computeDisplacementKernel = gravitationalField.FindKernel("ComputeDisplacement"); computeGridKernel = gravitationalField.FindKernel("ComputeGrid"); computeVelocityKernel = gravitationalFieldVelocity.FindKernel("ComputeVelocity"); }