Action <Vector3?> ApplyAoEDamage(Game.Data.Actions.Attacks.AreaOfEffectAttack attack) { return((Vector3? position) => { if (!position.HasValue) { return; } attack.TryApply(Utilities.Combat.WorldPositionToCombatPosition(position.Value), this); }); }
public override void OnInspectorGUI() { Game.Data.Actions.Attacks.AreaOfEffectAttack item = (Game.Data.Actions.Attacks.AreaOfEffectAttack)target; serializedObject.Update(); foreach (SerializedProperty property in properties.Values) { EditorGUILayout.PropertyField(property); } serializedObject.ApplyModifiedProperties(); }
void OnSceneGUI(SceneView sceneView) { Game.Data.Actions.Attacks.AreaOfEffectAttack item = (Game.Data.Actions.Attacks.AreaOfEffectAttack)target; Handles.color = new Color(1, 0, 0, 0.1f); Vector3 mousePosition = Event.current.mousePosition; Ray ray = HandleUtility.GUIPointToWorldRay(mousePosition); if (Physics.Raycast(ray, out RaycastHit hit)) { Handles.DrawSolidDisc(hit.point, hit.normal, item.Radius); } SceneView.RepaintAll(); }