public override void OnInspectorGUI() { AresEditorUtility.DrawBoxGroup(null, () => { if (m_maxPoints.floatValue <= 0f) { EditorGUILayout.HelpBox("\"Max Health\" must be greater than 0!", MessageType.Error); m_maxPoints.floatValue = 0f; } EditorGUILayout.PropertyField(m_maxPoints); m_points.floatValue = Mathf.Clamp(m_points.floatValue, 0f, m_maxPoints.floatValue); EditorGUILayout.PropertyField(m_points); EditorGUILayout.PropertyField(m_destroyOnKilled); }); AresEditorUtility.DrawBoxGroup("Regeneration", () => { m_regenerationDelay.floatValue = Mathf.Max(m_regenerationDelay.floatValue, 0f); EditorGUILayout.PropertyField(m_regenerationDelay); if (m_regenerationRate.floatValue == 0f) { EditorGUILayout.HelpBox("\"Regeneration Rate\" is 0! Are you changing this value at runtime?", MessageType.Warning); } EditorGUILayout.PropertyField(m_regenerationRate); }); AresEditorUtility.DrawBoxGroup("Invulnerability", () => { m_invulnerabilityTime.floatValue = Mathf.Max(m_invulnerabilityTime.floatValue, 0f); EditorGUILayout.PropertyField(m_invulnerabilityTime); }); }
public override void OnInspectorGUI() { base.OnInspectorGUI(); serializedObject.Update(); AresEditorUtility.DrawDamageGroup(m_damage); serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { serializedObject.Update(); AresEditorUtility.DrawBoxGroup(null, DrawShooterGroup); AresEditorUtility.DrawBoxGroup("Audio", DrawAudioGroup); serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { serializedObject.Update(); AresEditorUtility.DrawBoxGroup(null, () => { if (m_maxCharge.floatValue <= 0f) { EditorGUILayout.HelpBox("\"Max Charge\" must be greater than 0!", MessageType.Error); m_maxCharge.floatValue = 0f; } EditorGUILayout.PropertyField(m_maxCharge); EditorGUILayout.PropertyField(m_resetOnEndFire); }); serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { base.OnInspectorGUI(); serializedObject.Update(); AresEditorUtility.DrawBoxGroup("Tracking", () => { EditorGUILayout.PropertyField(m_canTrack); if (m_canTrack.boolValue) { m_maxLockTime.floatValue = Mathf.Max(m_maxLockTime.floatValue, 0f); EditorGUILayout.PropertyField(m_maxLockTime); } }); serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { serializedObject.Update(); AresEditorUtility.DrawBoxGroup(null, () => { if (m_maxHeat.floatValue <= 0f) { EditorGUILayout.HelpBox("\"Max Heat\" must be greater than 0!", MessageType.Error); m_maxHeat.floatValue = 0f; } EditorGUILayout.PropertyField(m_maxHeat); if (m_heatPerShot.floatValue <= 0f) { EditorGUILayout.HelpBox("\"Heat Per Shot\" must be greater than 0!", MessageType.Error); m_heatPerShot.floatValue = 0f; } EditorGUILayout.PropertyField(m_heatPerShot); }); AresEditorUtility.DrawBoxGroup("Cooldown", () => { m_cooldownDelay.floatValue = Mathf.Max(m_cooldownDelay.floatValue, 0f); EditorGUILayout.PropertyField(m_cooldownDelay); m_cooldownRate.floatValue = Mathf.Max(m_cooldownRate.floatValue, 0f); EditorGUILayout.PropertyField(m_cooldownRate); }); AresEditorUtility.DrawBoxGroup("Overheat", () => { m_overheatDelay.floatValue = Mathf.Max(m_overheatDelay.floatValue, 0f); EditorGUILayout.PropertyField(m_overheatDelay); m_overheatRate.floatValue = Mathf.Max(m_overheatRate.floatValue, 0f); EditorGUILayout.PropertyField(m_overheatRate); }); serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { serializedObject.Update(); AresEditorUtility.DrawBoxGroup(null, () => { EditorGUILayout.PropertyField(m_isPlayerControlled); }); AresEditorUtility.DrawBoxGroup("Controls", DrawControlsGUI); AresEditorUtility.DrawBoxGroup("Burst Fire", DrawBurstGUI); AresEditorUtility.DrawFoldoutGroup(ref m_showEvents, "Events", DrawEventsGUI); EditorGUI.BeginDisabledGroup(true); EditorGUILayout.FloatField("Shots Per Second", m_controller.data.shotsPerSecond); EditorGUILayout.FloatField("Damage Per Second", m_controller.data.damagePerSecond); EditorGUI.EndDisabledGroup(); serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { serializedObject.Update(); AresEditorUtility.DrawDamageGroup(m_damage); AresEditorUtility.DrawBoxGroup("Physics", () => { if (m_speed.floatValue <= 0) { EditorGUILayout.HelpBox("\"Speed\" must be greater than 0!", MessageType.Error); m_speed.floatValue = 0f; } EditorGUILayout.PropertyField(m_speed); m_acceleration.floatValue = Mathf.Max(m_acceleration.floatValue, 0f); EditorGUILayout.PropertyField(m_acceleration); if (m_acceleration.floatValue > 0f) { m_maxSpeed.floatValue = Mathf.Min(m_maxSpeed.floatValue, m_speed.floatValue); EditorGUILayout.PropertyField(m_maxSpeed); } }); AresEditorUtility.DrawBoxGroup("Tracking", () => { EditorGUILayout.PropertyField(m_target); if (m_angularSpeed.floatValue <= 0f && m_target.objectReferenceValue != null) { EditorGUILayout.HelpBox("\"Angular Speed\" must be greater than 0!", MessageType.Error); m_angularSpeed.floatValue = 0f; } EditorGUILayout.PropertyField(m_angularSpeed); }); serializedObject.ApplyModifiedProperties(); }
public override void OnInspectorGUI() { serializedObject.Update(); if (m_isInfinite.boolValue && !m_useMagazine.boolValue) { EditorGUILayout.HelpBox("If \"Is Infinite\" and \"Use Magazine\" are true and false respectively, then \"Shooter Ammo\" component is not required!", MessageType.Warning); } AresEditorUtility.DrawBoxGroup(null, () => { EditorGUILayout.PropertyField(m_isInfinite); if (!m_isInfinite.boolValue) { if (m_useMagazine.boolValue) { m_capacity.intValue = m_magazineCapacity.intValue * m_shotsPerMagazine.intValue; m_count.intValue = m_magazineCount.intValue * (m_shotsPerMagazine.intValue - 1) + m_shotsInMagazine.intValue; } if (m_capacity.intValue <= 0) { EditorGUILayout.HelpBox("\"Capacity\" must be greater than 0!", MessageType.Error); m_capacity.intValue = 0; } m_count.intValue = Mathf.Clamp(m_count.intValue, 0, m_capacity.intValue); EditorGUI.BeginDisabledGroup(m_useMagazine.boolValue); EditorGUILayout.PropertyField(m_capacity); EditorGUILayout.PropertyField(m_count); EditorGUI.EndDisabledGroup(); } }); AresEditorUtility.DrawBoxGroup("Magazine", () => { EditorGUILayout.PropertyField(m_useMagazine); if (m_useMagazine.boolValue) { if (!m_isInfinite.boolValue) { m_magazineCount.intValue = Mathf.Clamp(m_magazineCount.intValue, 0, m_magazineCapacity.intValue); EditorGUILayout.PropertyField(m_magazineCapacity); EditorGUILayout.PropertyField(m_magazineCount); } m_shotsInMagazine.intValue = Mathf.Clamp(m_shotsInMagazine.intValue, 0, m_shotsPerMagazine.intValue); if (controller != null && controller.isBurstFire && controller.shotsPerBurst > 0 && m_shotsPerMagazine.intValue % controller.shotsPerBurst != 0) { EditorGUILayout.HelpBox("\"Shots Per Magazine\" is not divisible by \"Shots Per Burst\"!", MessageType.Error); } if (m_shotsPerMagazine.intValue <= 0) { EditorGUILayout.HelpBox("\"Shots Per Magazine\" must be greater than 0!", MessageType.Error); m_shotsPerMagazine.intValue = 0; } EditorGUILayout.PropertyField(m_shotsPerMagazine); EditorGUILayout.PropertyField(m_shotsInMagazine); if (controller != null && controller.isBurstFire) { EditorGUI.BeginDisabledGroup(true); EditorGUILayout.FloatField("Bursts Per Magazine", m_ammo.data.burstsPerMagazine); EditorGUI.EndDisabledGroup(); } EditorGUILayout.PropertyField(m_isAutoReload); EditorGUILayout.PropertyField(m_isSimultaneousReload); if (m_reloadTime.floatValue <= 0f) { EditorGUILayout.HelpBox("\"Reload Time\" must be greater than 0!", MessageType.Error); m_reloadTime.floatValue = 0f; } EditorGUILayout.PropertyField(m_reloadTime); if (!m_isSimultaneousReload.boolValue) { if (m_consecutiveReloadTime.floatValue <= 0f) { EditorGUILayout.HelpBox("\"Consecutive Reload Time\" must be greater than 0!", MessageType.Error); m_consecutiveReloadTime.floatValue = 0f; } EditorGUILayout.PropertyField(m_consecutiveReloadTime); } EditorGUILayout.PropertyField(m_reloadButton); } }); if (!m_isInfinite.boolValue) { AresEditorUtility.DrawBoxGroup("Regeneration", () => { EditorGUILayout.PropertyField(m_useRegeneration); if (m_useRegeneration.boolValue) { m_regenerationDelay.floatValue = Mathf.Max(m_regenerationDelay.floatValue, 0f); m_regenerationRate.floatValue = Mathf.Max(m_regenerationRate.floatValue, 0f); EditorGUILayout.PropertyField(m_regenerationDelay); EditorGUILayout.PropertyField(m_regenerationRate); } }); } AresEditorUtility.DrawFoldoutGroup(ref m_showEvents, "Events", () => { EditorGUILayout.PropertyField(m_onCountChanged); // Do not show reload events if there is no reload action if (m_useMagazine.boolValue) { EditorGUILayout.PropertyField(m_onBeginReload); EditorGUILayout.PropertyField(m_onEndReload); } }); serializedObject.ApplyModifiedProperties(); }