首页 > 代码库 > Unity 添加鼠标右键事件
Unity 添加鼠标右键事件
把此类放到 Editor下使用就OK
1 using UnityEngine; 2 using System.Collections; 3 using System.Collections.Generic; 4 using UnityEditor; 5 6 /// <summary> 7 /// 添加鼠标右键事件 8 /// </summary> 9 [InitializeOnLoad]10 [ExecuteInEditMode]11 public static class AddMouseRight12 {13 14 static AddMouseRight()15 {16 SceneView.onSceneGUIDelegate = OnSceneFunc;17 }18 19 private class Item20 {21 public string MenuName { get; set; }22 public GenericMenu.MenuFunction2 Call { get; set; }23 }24 static List<Item> S_MenuList = new List<Item>();25 public static void AddMenu(string menuName, GenericMenu.MenuFunction2 call)26 {27 Item item = new Item();28 item.MenuName = menuName;29 item.Call = call;30 S_MenuList.Add(item);31 }32 33 static void OnSceneFunc(SceneView sceneView)34 {35 if (S_MenuList.Count == 0)36 {37 return;38 }39 40 if (Event.current.isMouse && Event.current.button == 1)41 {42 Vector3 p = Event.current.mousePosition;43 44 GenericMenu menu = new GenericMenu();45 46 foreach(Item i in S_MenuList)47 {48 menu.AddItem(new GUIContent(i.MenuName), false, i.Call, p);49 }50 menu.ShowAsContext();51 52 Event.current.Use();53 }54 }55 56 public static void Reset()57 {58 while(S_MenuList.Count > 0)59 {60 S_MenuList.RemoveAt(0);61 }62 }63 64 65 }
Unity 添加鼠标右键事件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。