/// <summary> 管理しているオブジェクト全てを変更する </summary> public void SetPlayer(JoystickIndex index) { foreach (var name in _names) { name.SetPlayer(index); } }
/// <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; }
/// <summary> カメラパラメータの初期化 </summary> public void Setup(JoystickIndex index) { // ビューポート設定 var viewportPosition = index.GetViewportPosition(); _camera.rect = new Rect(viewportPosition, ActorDataTable.viewportScale); }
/// <summary> カメラの初期化を行う </summary> public void Setup(Transform target, JoystickIndex playerNumber) { this.target = target; _camera.Setup(playerNumber); _uiCamera.Setup(playerNumber); _actorUI.Setup(playerNumber); }
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; } }
/// <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); }
/// <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; }
/// <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; }
/// <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; }
/// <summary> プレイヤー番号に対応する色で機体の色を変える </summary> public void SetColor(JoystickIndex playerIndex) { var material = _renderer.materials[_index]; material.color = playerIndex.GetPlayerColor(); }
/// <summary> 指定したコントローラー番号に対応する文字列を取得 </summary> public static IEnumerable <string> GetAxes(JoystickIndex index) { return(_axes.Where(axis => Regex.IsMatch(axis, index.ToString()))); }
public static float JoystickTriggerRight(JoystickIndex index, float threshold = 0.1f) { return(Input.window.JoystickTriggerRight((int)index, threshold)); }
public static float JoystickTriggerRightRaw(JoystickIndex index) { return(Input.window.JoystickTriggerRightRaw((int)index)); }
/// <summary> プレイヤー番号に対応した色に変更する </summary> public void SetColor(JoystickIndex index) { _renderer.SetColor(index); }
public static Vector2 JoystickAxisRightRaw(JoystickIndex index) { return(Input.window.JoystickAxisRightRaw((int)index)); }
public static void JoystickVibrate(JoystickIndex index, float left, float right) { Input.window.JoystickVibrate((int)index, left, right); }
/// <summary> プレイヤー番号に対応する名前と色を設定する </summary> public void SetPlayer(JoystickIndex index) { nameMesh.text = index.GetPlayerNumber(); SetColor(index); }
/// <summary> コントローラー番号に対応する色で初期化する </summary> public void Setup(JoystickIndex index) { SetColor(index.GetPlayerColor()); UpdateName(index, true); }
public static bool IsJoystickButtonPressed(JoystickButton button, JoystickIndex index) { return(Input.joystickButtons[button][(int)index].Pressed); }
/// <summary> プレイヤーの状態に合わせて名前を更新する </summary> public void UpdateName(JoystickIndex index, bool isPlayable) { _mesh.text = isPlayable ? index.GetPlayerNumber() : "AI"; }
/// <summary> プレイヤーカラーを指定した色に変更する </summary> public void SetPlayerColor(JoystickIndex index) { joystickIndex = index; _renderer.SetColor(index); }
/// <summary> 指定した番号のコントローラー情報を取得 </summary> public static Joystick GetJoystick(this JoystickIndex index) { return(_joysticks[index]); }
/// <summary> 指定したプレイヤーの状態を取得 </summary> public static ActorState GetState(this JoystickIndex index) { return(_actors[index]); }
public static string JoystickDebug(JoystickIndex index) { return(Input.window.JoystickDebug((int)index)); }
/// <summary> プレイヤーの状態に合わせて名前を更新する </summary> public void UpdateName(JoystickIndex index) { _playerNumber.text = index.GetPlayerNumber(); _playerNumber.color = index.GetPlayerColor(); }
public static Vector2 JoystickAxisRight(JoystickIndex index, float threshold = 0.1f) { return(Input.window.JoystickAxisRight((int)index, threshold)); }
public static bool IsJoystickButtonUp(JoystickButton button, JoystickIndex index) { return(Input.joystickButtons[button][(int)index].Up); }
// 指定したプレイヤー番号のスコアよりも高いスコアを持つプレイヤーの数を返す int GetCount(JoystickIndex index) { var scores = _playerNumbers.Select(player => player.GetState().score); return(scores.Count(score => score > index.GetState().score)); }