示例#1
0
    public static void CreatePlayerInputConfig()
    {
        PlayerInputConfig config = ScriptableObject.CreateInstance <PlayerInputConfig>();

        AssetDatabase.CreateAsset(config, "Assets/NewPlayerInputConfig.asset");
        AssetDatabase.SaveAssets();

        EditorUtility.FocusProjectWindow();

        Selection.activeObject = config;
    }
示例#2
0
 public WorldPlayers(
     ReplicationConfig replicationConfig,
     PlayerInputConfig playerInputConfig,
     int capacity)
 {
     this._replicationDataPool = new PlayerReplicationDataPool(replicationConfig, capacity);
     this._playerInputsPool    = new PlayerInputsPool(
         inputFrameCount: playerInputConfig.MaxFrameCount,
         capacity: capacity);
     this._playerIdToIndex = new Dictionary <PlayerId, int>(capacity);
     this._players         = new WorldPlayer[capacity];
     this._count           = 0;
 }
    public static void Update(PlayerInputConfig playerInputConfig, PlayerInputState playerInputState)
    {
        var wasJumpRequested = playerInputState.platformerState.isJumpRequested;

        playerInputState.platformerState.isJumpRequested = Input.GetKey(playerInputConfig.jumpCode);
        foreach (var pair in playerInputConfig.directions)
        {
            if (Input.GetKeyDown(pair.key))
            {
                playerInputState.directions.AddFirst(pair.direction);
            }
            if (Input.GetKeyUp(pair.key))
            {
                playerInputState.directions.Remove(pair.direction);
            }
        }
        var head         = playerInputState.directions.First;
        var oldDirection = playerInputState.platformerState.walkDirection;

        playerInputState.platformerState.walkDirection = head == null ? PlatformerWalkDirection.None : head.Value;
    }
示例#4
0
    public void Initialize(InputController iController, int pId, Transform carryingPivot)
    {
        base.Awake();

        inputController    = iController;
        playerId           = pId;
        carryingItem       = null;
        playerActionState  = EPlayerActionState.IDLE;
        this.carryingPivot = carryingPivot;

        PlayerInputConfig inputConfig = new PlayerInputConfig();

        if (!AppConstant.Instance.isMultiPlayer)
        {
            inputConfig.horizontalAxis = InputAxisEnum.SinglePlayerHorizontal.Value;
            inputConfig.verticalAxis   = InputAxisEnum.SinglePlayerVertical.Value;
            inputConfig.actionButton   = InputAxisEnum.SinglePlayerAction.Value;
        }
        else
        {
            if (IsFirstPlayer())
            {
                inputConfig.horizontalAxis = InputAxisEnum.Player1_Horizontal.Value;
                inputConfig.verticalAxis   = InputAxisEnum.Player1_Vertical.Value;
                inputConfig.actionButton   = InputAxisEnum.Player1_Action.Value;
            }
            else
            {
                inputConfig.horizontalAxis = InputAxisEnum.Player2_Horizontal.Value;
                inputConfig.verticalAxis   = InputAxisEnum.Player2_Vertical.Value;
                inputConfig.actionButton   = InputAxisEnum.Player2_Action.Value;
            }
        }

        inputController.inputConfig = inputConfig;

        nearbyInteractiveGameObjects = new HashSet <GameObject>();
    }