Пример #1
0
 /// <summary>
 /// 设置面板
 /// </summary>
 /// <param name="_event"></param>
 /// <param name="_eventWindows"></param>
 public void SetPanel(Event @_event, EventWindows _eventWindows)
 {
     @event = @_event;
     playerGestureEventInfo = @event.playerGestureEventInfo;
     eventWindows           = _eventWindows;
     EventName.text         = @event.playerGestureEventInfo.eventName;
     Detailed.text          = @event.playerGestureEventInfo.eventDetailed;
     playerIndex.text       = @event.playerGestureEventInfo.playerIndex.ToString();
 }
Пример #2
0
 /// <summary>
 /// 设置更新事件数据
 /// (注释:对应更新事件触发的玩家索引和手势名字)
 /// </summary>
 /// <param name="gestureEventInfo"></param>
 public void SetPlayerGestureEvent(PlayerGestureEventInfo gestureEventInfo)
 {
     for (int i = 0; i < gestureEvents.Count; i++)
     {
         if (gestureEvents[i].eventName == gestureEventInfo.eventName && gestureEvents[i].eventDetailed == gestureEventInfo.eventDetailed)
         {
             gestureEvents[i].playerIndex = gestureEventInfo.playerIndex;
             gestureEvents[i].gestureName = gestureEventInfo.gestureName;
         }
     }
 }
Пример #3
0
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="_playerGestureEventInfo"></param>
        /// <param name="_eventWindows"></param>
        public void Init(PlayerGestureEventInfo _playerGestureEventInfo, EventWindows _eventWindows)
        {
            playerGestureEventInfo = _playerGestureEventInfo;

            GestureName.text = playerGestureEventInfo.eventName;
            eventWindows     = _eventWindows;
            eventButton.OnClick.AddListener(() =>
            {
                eventWindows.ReturnEventButton(this);
            });
        }
Пример #4
0
        /// <summary>
        /// 删除手势事件
        /// </summary>
        /// <param name="playerIndex"></param>
        /// <param name="gestureName"></param>
        /// <param name="eventName"></param>
        public void RemovePlayerGestureEvent(int playerIndex, string gestureName, string eventName)
        {
            PlayerGestureEventInfo eventInfo = new PlayerGestureEventInfo();

            for (int i = 0; i < gestureEvents.Count; i++)
            {
                if (gestureEvents[i].playerIndex == playerIndex && gestureEvents[i].gestureName == gestureName)
                {
                    eventInfo = gestureEvents[i];
                }
            }
            gestureEvents.Remove(eventInfo);
        }
Пример #5
0
        /// <summary>
        /// 添加手势事件
        /// </summary>
        /// <param name="playerIndex"></param>
        /// <param name="gestureName"></param>
        /// <param name="eventName"></param>
        /// <param name="eventDetailed"></param>
        /// <param name="gestureEvent"></param>
        public void AddPlayerGestureEvent(int playerIndex, string gestureName, string eventName, string eventDetailed, Action gestureEvent)
        {
            PlayerGestureEventInfo eventInfo = new PlayerGestureEventInfo();

            eventDetailed          += string.Format("\n\n(初始玩家事件-{0})", playerIndex);
            eventInfo.gestureName   = gestureName;
            eventInfo.playerIndex   = playerIndex;
            eventInfo.eventName     = eventName;
            eventInfo.eventDetailed = eventDetailed;
            eventInfo.gestureEvent  = gestureEvent;
            gestureEvents.Add(eventInfo);

            onAddGestureEvent?.Invoke(eventInfo);
        }
Пример #6
0
 /// <summary>
 /// 恢复手势关联的事件,每个事件只能在一个手势上出现,此方法就是更新手势触发的事件
 /// (注释:在手势添加事件时调用)
 /// </summary>
 /// <param name="playerGestureEventInfo"></param>
 public void ReturnGestureEvent(PlayerGestureEventInfo playerGestureEventInfo)
 {
     for (int i = 0; i < playerGestureDatas.Count; i++)
     {
         for (int j = 0; j < playerGestureDatas[i].playerGestureEvents.Count; j++)//循环整个手势数组上的所有事件
         {
             PlayerGestureEventInfo playerGestureEvent = playerGestureDatas[i].playerGestureEvents[j];
             if (playerGestureEvent.eventName == playerGestureEventInfo.eventName && playerGestureEvent.eventDetailed == playerGestureEventInfo.eventDetailed)
             {
                 playerGestureDatas[i].playerGestureEvents.Remove(playerGestureEvent);
                 return;
             }
         }
     }
 }
Пример #7
0
        /// <summary>
        /// 设置面板
        /// </summary>
        /// <param name="_eventWindows"></param>
        public void SetPanel(EventWindows _eventWindows)
        {
            transform.localScale = Vector3.one;
            eventWindows         = _eventWindows;
            foreach (var item in PlayerManager.Instance.gestureEvents)
            {
                bool isF = false;
                for (int i = 0; i < eventWindows.events.Count; i++)
                {
                    if (eventWindows.events[i].playerGestureEventInfo.eventName == item.eventName && eventWindows.events[i].playerGestureEventInfo.eventDetailed == item.eventDetailed)
                    {
                        isF = true;
                        break;
                    }
                }
                if (isF)
                {
                    continue;
                }
                Event @event;
                if (_events.Count > 0)
                {
                    @event = _events[0];
                    @event.transform.parent     = Content;
                    @event.transform.localScale = Vector3.one;
                    _events.Remove(@event);
                }
                else
                {
                    @event = SourcesManager.LoadSources <Event>("Event", Content.transform);
                }
                @event.Init(item, eventWindows);
                @event.eventButton.OnClick.AddListener(() =>
                {
                    Detailed.transform.localScale = Vector3.one;
                    value.text             = @event.playerGestureEventInfo.eventDetailed;
                    playerGestureEventInfo = @event.playerGestureEventInfo;

                    ReturnEventButton(@event);
                });
                events.Add(@event);
            }
        }
Пример #8
0
        /// <summary>
        /// 封装的添加事件按钮
        /// </summary>
        /// <param name="_playerGestureEventInfo"></param>
        public void AddEvent(PlayerGestureEventInfo _playerGestureEventInfo)
        {
            PlayerGestureEventInfo playerGestureEventInfo = new PlayerGestureEventInfo();

            playerGestureEventInfo.eventDetailed = _playerGestureEventInfo.eventDetailed;
            playerGestureEventInfo.eventName     = _playerGestureEventInfo.eventName;
            playerGestureEventInfo.gestureName   = gesture.playerGestureData.playerGestureInfo.GestureName;
            //playerGestureEventInfo.isFindGesture = _playerGestureEventInfo.isFindGesture;
            playerGestureEventInfo.playerIndex = _playerGestureEventInfo.playerIndex;
            Event @event;

            if (_events.Count > 0)
            {
                @event = _events[0];
                @event.transform.parent     = Content;
                @event.transform.localScale = Vector3.one;
                _events.Remove(@event);
            }
            else
            {
                @event = SourcesManager.LoadSources <Event>("Event", Content);
            }
            @event.Init(playerGestureEventInfo, this);
            @event.eventButton.OffChoice.AddListener(() =>
            {
                eventInfoWindows.transform.localScale = Vector3.zero;
            });
            @event.eventButton.OnChoice.AddListener(() =>
            {
                eventInfoWindows.transform.localScale = Vector3.one;
                eventInfoWindows.SetPanel(@event, this);
            });
            events.Add(@event);
            PlayerGestureManager.Instance.ReturnGestureEvent(@event.playerGestureEventInfo);
            ReturnEventButton(@event);
            //for (int i = 0; i < events.Count; i++)
            //{

            //    Debug.Log(events[i].playerGestureEventInfo.playerIndex);
            //}
        }