Example #1
0
        private void UpdateStateInputItems()
        {
            currStateInputItems.Clear();
            //获取当前玩家状态
            var currStates = playerStateCollector.GetCurrStates(EPlayerStateCollectType.UseMoment);

            foreach (var state in currStates)
            {
                currStateInputItems.Add(PlayerStateInputsDataMap.Instance.GetState(state));
            }
        }
        private void UpdateStateInputItems(IUserCmd cmd)
        {
            currStateInputItems.Clear();

            //获取实时玩家状态,每帧只更新一次
            HashSet <EPlayerState> currStates =
                playerStateCollector.GetCurrStates(EPlayerStateCollectType.CurrentMoment);

            //匍匐捡枪不允许移动
            if (currStates.Contains(EPlayerState.Pickup) && currStates.Contains(EPlayerState.Prone))
            {
                cmd.MoveHorizontal = 0f;
                cmd.MoveVertical   = 0f;
                UserInput.SetInput(EPlayerInput.IsRun, false);
                UserInput.SetInput(EPlayerInput.IsSprint, false);
                UserInput.SetInput(EPlayerInput.IsSlightWalk, false);
            }

            foreach (var state in currStates)
            {
                currStateInputItems.Add(PlayerStateInputsDataMap.Instance.GetState(state));
            }
        }