Beispiel #1
0
    /// <summary>
    /// 入力待ち処理
    /// </summary>
    void WaitForInput()
    {
        //入力待ちプレイヤーを取得
        var players = data.Where(it => it.state == State.Wait).ToArray();

        foreach (var it in players)
        {
            if (it.id == PlayerManager.NOT_ENTRY)
            {
                continue;
            }

            int           index        = DataBase.GetControllerID(it.id) - 1;
            GamePad.Index gamePadIndex = (GamePad.Index)(index + 1);
            var           input        = MyInputManager.GetController(gamePadIndex);

            //入力終了の瞬間
            if (input.START)
            {
                data[index].state = State.End;
                ResultTextManager.Instance.StartCloseAndOpenVertical(index);
                ResultTextManager.Instance.SetFinishedText(index);

                //効果音
                SoundManager.Instance.PlayOnSE("Inputed");
            }
        }
    }
Beispiel #2
0
    /// <summary>
    /// エントリー終了の操作
    /// </summary>
    private void EFinishInput()
    {
        //登録し終わったプレイヤーを取得
        var player = data.Where(it => it.registState == RegistState.End).ToArray();

        //参加プレイヤー全員が準備を完了していなければ処理しない
        if (!player.All(it => it.registState == RegistState.End))
        {
            return;
        }

        foreach (var it in player)
        {
            var input = MyInputManager.GetController(it.index);

            //キャラ選択に戻る
            if (input.B)
            {
                int index = (int)it.index - 1;
                it.registState = RegistState.Select;

                int modelNo = DataBase.GetPrefabID(it.id);

                EntryTextManager.Instance.StartCloseAndOpenVertical(index);
                EntryTextManager.Instance.SetSelectCharacterText(index);
                EntryTextManager.Instance.SetCharacterArrowActive(index, true);
                EntryTextManager.Instance.StartArrowCursol(index);
                ViewerManager.Instance.Create(it.index, modelNo);
                ViewerManager.Instance.SetRotationFlags(index, true);

                continue;
            }
        }
    }
Beispiel #3
0
    /// <summary>
    /// 遊ぶのを止める
    /// </summary>
    private void PlayingCancel()
    {
        //非参加プレイヤーの取得
        var player = data.Where(it => it.registState == RegistState.Entry).ToArray();

        bool isInput = false;

        //Bボタンが押されているか判定
        foreach (var it in player)
        {
            var input = MyInputManager.GetController(it.index);

            if (input.B_Hold)
            {
                isInput = true;
                break;
            }
        }

        //非参加プレイヤーの誰かがBボタンを長押ししている
        if (isInput)
        {
            RiseReturnValue();
        }
        //誰も長押ししていない
        else
        {
            FallReturnValue();
        }

        //蓄積値をUIのFill値としてセット
        ReturnTitleUI.Instance.SetFillAmountValue(returnValue);
    }
Beispiel #4
0
    /// <summary>
    /// 参加プレイヤーのエントリー
    /// </summary>
    private void Entry()
    {
        //非参加プレイヤーの取得
        var player = data.Where(it => it.registState == RegistState.Entry).ToArray();

        //非参加プレイヤーに対して入力を受け付ける
        foreach (var it in player)
        {
            //入力
            var input = MyInputManager.GetController(it.index);

            //プレイヤー番号
            int index = (int)it.index - 1;

            //登録時処理
            if (input.START)
            {
                //テキスト変更
                EntryTextManager.Instance.StartCloseAndOpenVertical(index);
                EntryTextManager.Instance.SetSelectCharacterText(index);

                //初期化
                int id_i = (int)data[index].index * DataBase.ID_INDEX;          //コントローラー番号
                int id_m = (int)DataBase.MODEL.UTC_S * DataBase.ID_PREFAB;      //モデル番号(初期はUTC_S)
                int id_c = (int)data[index].index * DataBase.ID_COLOR - 1;      //色番号(初期はコントローラー番号に応じた色が設定)

                //ID決定
                it.id = id_i + id_m + id_c;

                //矢印
                EntryTextManager.Instance.SetCharacterArrowActive(index, true);
                EntryTextManager.Instance.StartArrowCursol(index);

                //一番最初のモデルビュー(UTC_S)
                int iModel = (int)DataBase.MODEL.UTC_S;
                ViewerManager.Instance.Create(it.index, iModel);

                //登録状況の更新
                it.registState = RegistState.Select;

                //効果音
                int channel = index + 1;//AudioSourceのインデックスを算出
                SoundManager.Instance.Play("entry", channel);
            }
        }
    }
Beispiel #5
0
    /// <summary>
    /// 更新
    /// </summary>
    public void PlayerUpdate()
    {
        //コントローラー
        gamePad = MyInputManager.GetController(useControllerIndex);



        //攻撃
        //Attack();
        AttackTrgOn();
        AttackUpdate();

        //回転
        Turn();

        //移動
        Move();
    }
Beispiel #6
0
    /// <summary>
    /// 登録のキャンセル処理
    /// </summary>
    /// <param name="index"></param>
    /// <param name="data"></param>
    private void EntryCancel(GamePad.Index index, EntryData data)
    {
        var input = MyInputManager.GetController(index);

        //参加登録をキャンセル
        if (input.B)
        {
            int textIndex = (int)index - 1;

            data.registState = RegistState.Entry;
            EntryTextManager.Instance.StartCloseAndOpenVertical(textIndex);
            EntryTextManager.Instance.SetWaitText(textIndex);
            ViewerManager.Instance.Destroy(index);

            EntryTextManager.Instance.SetCharacterName(textIndex, PlayerManager.NOT_ENTRY);
            EntryTextManager.Instance.SetCharacterArrowActive(textIndex, false);

            //効果音
            int chanel = (int)index;
            SoundManager.Instance.Play("entryCancel", chanel);
        }
    }
Beispiel #7
0
 /// <summary>
 /// 使用するコントローラーの設定
 /// </summary>
 /// <param name="index"></param>
 public void SetControllerIndex(GamePadInput.GamePad.Index index)
 {
     useControllerIndex = index;
     gamePad            = MyInputManager.GetController(useControllerIndex);
 }
Beispiel #8
0
    /// <summary>
    /// 初期化
    /// </summary>
    public void Initialize()
    {
        //  移動可能フラグ
        isMove = true;

        //  回転可能フラグ
        isRotation = true;

        //  攻撃可能フラグ
        isAttack = false;

        //  無敵フラグ
        isInvisible = false;

        //  初期位置の記憶
        resetPos = modelObject.transform.position;

        //  ポイント
        point = 0;

        //  コントローラーの設定
        gamePad = MyInputManager.GetController(useControllerIndex);

        //  アウトラインマテリアルの設定
        SetOutlineColor();

        //  蹴り
        KickEvent inst = modelObject.AddComponent <KickEvent>();

        inst.Init(animator);

        //  キック時の攻撃トリガーを入れる関数
        Action kickStartFunc = () =>
        {
            //  攻撃のトリガー
            isAttack = true;
            #region DEBUG
            #if UNITY_EDITOR
            //  デバッグ用
            isDrawAttackTrigger = true;
            #endif
            #endregion
        };

        inst.SetKickStartFunc(kickStartFunc);

        //  キック時の攻撃トリガーを切る関数
        Action kickEndFunc = () =>
        {
            AttackTrgOff();
        };

        inst.SetKickEndFunc(kickEndFunc);

        //  攻撃時に発生するボイス
        Action kickVoiceFunc = () =>
        {
            KickVoice();
        };

        inst.SetKickVoiceFunc(kickVoiceFunc);

        //  注視処理
        Vector3 targetPos = Camera.main.transform.position;

        lookAtTargetIK.SetTargetPosition(targetPos);
        lookAtTargetIK.SetLookAtWeight(1.0f, 0.0f, 0.45f, 0.0f, 0.5f);
    }
Beispiel #9
0
    /// <summary>
    /// キャラクター選択
    /// </summary>
    /// <param name="index">コントローラー番号</param>
    /// <param name="data">エントリーデータ</param>
    private void CharacterChoice(GamePad.Index index, EntryData data)
    {
        var input = MyInputManager.GetController(index);

        //IDからコントローラーインデックス取得
        int id_i = DataBase.GetControllerID(data.id);

        //IDから選択モデル取得
        int id_m = DataBase.GetPrefabID(data.id);

        int before = DataBase.GetPrefabID(data.id);//比較用変更前のモデル番号

        //左
        if (!data.isInput && input.LStick.x < 0)
        {
            id_m--;
            if ((DataBase.MODEL)id_m < DataBase.MODEL.UTC_S)
            {
                id_m = (int)DataBase.MODEL.YUKO_W;
            }

            //連続入力防止用フラグを立てる
            data.isInput = true;

            //キーフラグリセット用コルーチンの開始
            IEnumerator coroutine = ResetKeyFlags(data);
            CoroutineManager.Instance.StartCoroutineMethod(coroutine);

            //効果音
            int channel = (int)index;
            SoundManager.Instance.Play("charaSelect", channel);
        }
        //右
        else if (!data.isInput && input.LStick.x > 0)
        {
            id_m++;
            if ((DataBase.MODEL)id_m > DataBase.MODEL.YUKO_W)
            {
                id_m = (int)DataBase.MODEL.UTC_S;
            }

            //連続入力防止用フラグを立てる
            data.isInput = true;

            //キーフラグリセット用コルーチンの開始
            IEnumerator coroutine = ResetKeyFlags(data);
            CoroutineManager.Instance.StartCoroutineMethod(coroutine);

            //効果音
            int channel = (int)index;
            SoundManager.Instance.Play("charaSelect", channel);
        }

        int textIndex = id_i - 1;

        //キャラクター決定時処理
        if (input.A)
        {
            data.registState = RegistState.End;
            EntryTextManager.Instance.StartCloseAndOpenVertical(textIndex);
            EntryTextManager.Instance.SetReadyText(textIndex);
            EntryTextManager.Instance.SetCharacterArrowActive(textIndex, false);
            ViewerManager.Instance.StartWinAnimation((int)index - 1);
            ViewerManager.Instance.SetRotationFlags((int)index - 1, false);


            //ボイス
            PlayVoice(id_m, id_i);
        }

        //キャラ名
        EntryTextManager.Instance.SetCharacterName(textIndex, id_m);

        //IDの算出
        id_i *= DataBase.ID_INDEX;
        id_m *= DataBase.ID_PREFAB;
        int id_c = DataBase.GetColorID(data.id);

        //IDの再設定
        data.id = id_i + id_m + id_c;

        //IDの変更があった場合モデルビューに表示するモデルを切り替える
        if (DataBase.GetPrefabID(data.id) != before)
        {
            ViewerManager.Instance.Create(index, (id_m / DataBase.ID_PREFAB));
        }
    }