ContextualMenuManipulator contextualMenuManipulator = new ContextualMenuManipulator(
_MenuEvent =>
_MenuEvent.menu.AppendAction("Add Node",actionEvent => AddElement(CreateNode(actionEvent.eventInfo.localMousePosition))) );
해당 코드는 유니티 커스텀 에디터 윈도우 에서
컨텍스트 메뉴 클릭시
실행되는 함수를 매개번수로 받음.
람다식에서
actionEvent가 마우스 행동에 대한 정보를 가지고 있다는데 어떻게 그게 되는건지 이해가 안됨.
람다식에 대한 이해가 부족해서 이해가 안되는건지 모르겠어서 질문드림
참고 코드 (ContextualMenuManipulator 생성자)
| public ContextualMenuManipulator(Action<ContextualMenuPopulateEvent> menuBuilder) { m_MenuBuilder = menuBuilder; base.activators.Add(new ManipulatorActivationFilter { button = MouseButton.RightMouse }); if (Application.platform == RuntimePlatform.OSXEditor || Application.platform == RuntimePlatform.OSXPlayer) { base.activators.Add(new ManipulatorActivationFilter { button = MouseButton.LeftMouse, modifiers = EventModifiers.Control }); } } |
참고 코드 (AppendAction 함수)
| public void AppendAction(string actionName, Action<DropdownMenuAction> action, DropdownMenuAction.Status status = DropdownMenuAction.Status.Normal) { if (status == DropdownMenuAction.Status.Normal) { AppendAction(actionName, action, DropdownMenuAction.AlwaysEnabled); return; } if (status == DropdownMenuAction.Status.Disabled) { AppendAction(actionName, action, DropdownMenuAction.AlwaysDisabled); return; } AppendAction(actionName, action, (DropdownMenuAction e) => status); } |