protected override void OnItemContextMenu(GenericMenu menu, MemberInspectorTreeElement treeElement) { ComponentInformation.MemberReference member = treeElement.data; // 1. Select menu.AddItem(new GUIContent("Select"), false, () => Selection.activeGameObject = member.componentInfo.gameObject); if (!Application.isPlaying) { // 2. Watch bool isFavorite = member.isWatched; if (isFavorite) { menu.AddItem(new GUIContent("Remove Watch"), false, () => member.componentInfo.RemoveWatch(member)); } else { menu.AddItem(new GUIContent("Watch"), false, () => { GameObject target = member.componentInfo.gameObject; //bool hasBookmark = target.HasComponent<GameObjectBookmark>(); //if (!hasBookmark) //{ // MemberInspectorWindow.SetBookmark(member.componentInfo.gameObject); //} member.componentInfo.Watch(member); }); } } }
/// <summary> /// Removes a member from the watch list /// </summary> /// <param name="memberReference"></param> public void RemoveWatch(ComponentInformation.MemberReference memberReference) { memberReference.isWatched = false; if (this.AssertMemberIndex(memberReference)) { this.watchList.RemoveAll(x => x.name == memberReference.name && x.memberIndex == memberReference.memberIndex); GameObjectBookmark.UpdateWatchList(true); } }
/// <summary> /// Adds a member to the watch list /// </summary> /// <param name="member"></param> /// <param name="componentInfo"></param> /// <param name="memberIndex"></param> public void Watch(ComponentInformation.MemberReference memberReference) { memberReference.isWatched = true; if (this.AssertMemberIndex(memberReference)) { this.watchList.Add(memberReference); GameObjectBookmark.UpdateWatchList(true); } }