/// <summary> 管理しているオブジェクト全てを変更する </summary>
 public void SetPlayer(JoystickIndex index)
 {
     foreach (var name in _names)
     {
         name.SetPlayer(index);
     }
 }
Пример #2
0
 /// <summary> プレイヤー番号に対応する色に設定する </summary>
 public void SetColor(JoystickIndex index)
 {
     foreach (var mesh in _meshes)
     {
         mesh.color = index.GetPlayerColor();
     }
 }
    // 指定したコントローラー番号から、その番号に一致する入力軸の一覧を取得
    static string[] GetAxes(this JoystickIndex index)
    {
        //var axes = InputManager.GetAxes((int)index);
        var axes = InputAxisAsset.GetAxes(index);

        return(axes.ToArray());
    }
    /// <summary> コントローラー番号に合わせた初期化を行う </summary>
    public void Setup(JoystickIndex index)
    {
        // 割り当てられたコントローラー情報を取得
        joystick = index.GetJoystick();

        // 各プレイヤーのカメラに表示されるオブジェクト名を設定
        _nameController.SetPlayer(index);

        // 自身のパラメータを表すコンポーネントを取得
        actorObject = GetComponent <ActorObject>();
        actorObject.SetPlayerColor(index);

        // 自身をターゲットとして追尾するカメラを生成、初期化
        camera = Instantiate(_camera);
        camera.Setup(transform, index);
        UpdateGauge();
        UpdateScore();

        // プレイヤーの状態で振る舞いを切り替える
        var isPlayer = index.GetState().isPlayer;

        _translate   = isPlayer ? (System.Action <float>)TranslatePlayer : TranslateAI;
        _rotate      = isPlayer ? (System.Action <float>)RotatePlayer : RotateAI;
        _attack      = isPlayer ? (System.Action)AttackPlayer : AttackAI;
        _superAttack = isPlayer ? (System.Action)SuperAttackPlayer : null;
    }
Пример #5
0
    /// <summary> カメラパラメータの初期化 </summary>
    public void Setup(JoystickIndex index)
    {
        // ビューポート設定
        var viewportPosition = index.GetViewportPosition();

        _camera.rect = new Rect(viewportPosition, ActorDataTable.viewportScale);
    }
Пример #6
0
 /// <summary> カメラの初期化を行う </summary>
 public void Setup(Transform target, JoystickIndex playerNumber)
 {
     this.target = target;
     _camera.Setup(playerNumber);
     _uiCamera.Setup(playerNumber);
     _actorUI.Setup(playerNumber);
 }
Пример #7
0
    void UpdateRankBoard(JoystickIndex playerNumber)
    {
        // 取得したプレイヤーよりもスコアの高いプレイヤーの人数を取得
        var count = GetCount(playerNumber);

        // UI を更新する
        for (var i = count; i < _actors.Count(); i++)
        {
            var actor = _actors[i];

            // 登録済みの UI なら次の UI へ進む
            if (actor.isActive)
            {
                continue;
            }

            actor.SetPlayerName(playerNumber);

            // 順位の文字列と色を順位に合わせて更新
            actor.rank.text  = _rankNames[count];
            actor.rank.color = _colors[count];

            // 順位の文字列サイズを順位に合わせて設定
            var baseScale = Vector3.one + Vector3.right * _width;
            actor.rank.rectTransform.localScale = baseScale * (1 - count * _scale);

            break;
        }
    }
Пример #8
0
    /// <summary> 指定した位置に指定したモデルを表示する </summary>
    public void GenerateModel(JoystickIndex playerNumber, int index)
    {
        var model = Instantiate(_models[(int)playerNumber - 1]);

        model.transform.SetParent(_positions[index]);
        model.transform.localPosition = Vector3.zero;
        model.transform.localRotation = Quaternion.Euler(Vector3.up * _angle);

        model.SetColor(playerNumber);
    }
Пример #9
0
    /// <summary> プレイヤー番号に対応した色と名前を設定する </summary>
    public void SetPlayerName(JoystickIndex index)
    {
        _playerName.text  = index.GetPlayerNumber();
        _playerName.color = index.GetPlayerColor();

        _score.text = index.GetState().score.ToString();

        playerNumber = index;
        isActive     = true;
    }
Пример #10
0
    /// <summary> プレイヤー番号に対応するビューポートに設定する </summary>
    public void Setup(JoystickIndex index)
    {
        var viewportPosition = index.GetViewportPosition();

        _camera.rect = new Rect(viewportPosition, ActorDataTable.viewportScale);

        // 描画対象レイヤーの登録
        var layer = index.GetObjectLayer();

        _camera.cullingMask     += 1 << layer;
        _camera.gameObject.layer = layer;
    }
Пример #11
0
    /// <summary> UI の表示を指定したパラメータで初期化 <para>
    /// CAUTION: Instantiate() の直後に呼び出すこと </para></summary>
    public void Setup(JoystickIndex playerNumber)
    {
        var color = playerNumber.GetPlayerColor();

        _endurance.color   = color;
        _actorNumber.color = color;

        _actorNumber.text = playerNumber.GetPlayerNumber() + "<color=FFFFFFFF>:</color>";

        // 画面右のプレイヤーのみ、UI の位置を右側に移動する
        if (((int)playerNumber % 2) > 0)
        {
            return;
        }

        var x        = _boardParent.localPosition.x;
        var position = Vector3.right * Mathf.Abs(x) * 2f;

        _boardParent.localPosition += position;
    }
Пример #12
0
    /// <summary> プレイヤー番号に対応する色で機体の色を変える </summary>
    public void SetColor(JoystickIndex playerIndex)
    {
        var material = _renderer.materials[_index];

        material.color = playerIndex.GetPlayerColor();
    }
Пример #13
0
 /// <summary> 指定したコントローラー番号に対応する文字列を取得 </summary>
 public static IEnumerable <string> GetAxes(JoystickIndex index)
 {
     return(_axes.Where(axis => Regex.IsMatch(axis, index.ToString())));
 }
Пример #14
0
 public static float JoystickTriggerRight(JoystickIndex index, float threshold = 0.1f)
 {
     return(Input.window.JoystickTriggerRight((int)index, threshold));
 }
Пример #15
0
 public static float JoystickTriggerRightRaw(JoystickIndex index)
 {
     return(Input.window.JoystickTriggerRightRaw((int)index));
 }
Пример #16
0
 /// <summary> プレイヤー番号に対応した色に変更する </summary>
 public void SetColor(JoystickIndex index)
 {
     _renderer.SetColor(index);
 }
Пример #17
0
 public static Vector2 JoystickAxisRightRaw(JoystickIndex index)
 {
     return(Input.window.JoystickAxisRightRaw((int)index));
 }
Пример #18
0
 public static void JoystickVibrate(JoystickIndex index, float left, float right)
 {
     Input.window.JoystickVibrate((int)index, left, right);
 }
Пример #19
0
 /// <summary> プレイヤー番号に対応する名前と色を設定する </summary>
 public void SetPlayer(JoystickIndex index)
 {
     nameMesh.text = index.GetPlayerNumber();
     SetColor(index);
 }
Пример #20
0
 /// <summary> コントローラー番号に対応する色で初期化する </summary>
 public void Setup(JoystickIndex index)
 {
     SetColor(index.GetPlayerColor());
     UpdateName(index, true);
 }
Пример #21
0
 public static bool IsJoystickButtonPressed(JoystickButton button, JoystickIndex index)
 {
     return(Input.joystickButtons[button][(int)index].Pressed);
 }
Пример #22
0
 /// <summary> プレイヤーの状態に合わせて名前を更新する </summary>
 public void UpdateName(JoystickIndex index, bool isPlayable)
 {
     _mesh.text = isPlayable ? index.GetPlayerNumber() : "AI";
 }
Пример #23
0
 /// <summary> プレイヤーカラーを指定した色に変更する </summary>
 public void SetPlayerColor(JoystickIndex index)
 {
     joystickIndex = index;
     _renderer.SetColor(index);
 }
Пример #24
0
 /// <summary> 指定した番号のコントローラー情報を取得 </summary>
 public static Joystick GetJoystick(this JoystickIndex index)
 {
     return(_joysticks[index]);
 }
 /// <summary> 指定したプレイヤーの状態を取得 </summary>
 public static ActorState GetState(this JoystickIndex index)
 {
     return(_actors[index]);
 }
Пример #26
0
 public static string JoystickDebug(JoystickIndex index)
 {
     return(Input.window.JoystickDebug((int)index));
 }
Пример #27
0
 /// <summary> プレイヤーの状態に合わせて名前を更新する </summary>
 public void UpdateName(JoystickIndex index)
 {
     _playerNumber.text  = index.GetPlayerNumber();
     _playerNumber.color = index.GetPlayerColor();
 }
Пример #28
0
 public static Vector2 JoystickAxisRight(JoystickIndex index, float threshold = 0.1f)
 {
     return(Input.window.JoystickAxisRight((int)index, threshold));
 }
Пример #29
0
 public static bool IsJoystickButtonUp(JoystickButton button, JoystickIndex index)
 {
     return(Input.joystickButtons[button][(int)index].Up);
 }
Пример #30
0
    // 指定したプレイヤー番号のスコアよりも高いスコアを持つプレイヤーの数を返す
    int GetCount(JoystickIndex index)
    {
        var scores = _playerNumbers.Select(player => player.GetState().score);

        return(scores.Count(score => score > index.GetState().score));
    }