/// <summary> /// 毎フレーム呼ばれる処理 /// </summary> /// <param name="arg_player">Argument player.</param> public void OnUpdate(ActorPlayer arg_player) { arg_player.transform.position = new Vector2(arg_player.colPlayerOBject.transform.position.x, arg_player.transform.position.y); //パイプから離れたら通常に戻る if (arg_player.ExitCollider) { arg_player.StateTransion(new PlayerIdle()); } }
/// <summary> /// 毎フレーム呼ばれる処理 /// </summary> /// <param name="arg_player">Argument player.</param> public void OnUpdate(ActorPlayer arg_player) { //落下状態は例外として最優先する if (arg_player.colPlayerOBject) { if (arg_player.colPlayerOBject.tag == "Paipu") { arg_player.StateTransion(new PlayerFall()); } } //入力が無い場合は else if (!arg_player.m_touchZone.pressing && !arg_player.m_touchZone.longpressing) { arg_player.StateTransion(new PlayerIdle()); } //プレスのみの場合は通常移動 else if (arg_player.m_touchZone.pressing) { arg_player.StateTransion(new PlayerRun()); }//入力が何もない場合デフォルト状態 }
/// <summary> /// 毎フレーム呼ばれる処理 /// </summary> /// <param name="arg_player"></param> public void OnUpdate(ActorPlayer arg_player) { //フリックでボールショット if (arg_player.m_touchZone.flicking) { arg_player.ballObject.StateTransion(new BallShot()); } //入力が無ければ通常へ戻る if (!arg_player.m_touchZone.pressing) { arg_player.StateTransion(new PlayerIdle()); } }
/// <summary> /// 毎フレーム呼ばれる処理 /// </summary> /// <param name="arg_player">M player.</param> public void OnUpdate(ActorPlayer arg_player) { if (arg_player.m_touchZone.pressing) { SoundPlayer.Instance.PlaySE("PlayerWalk"); float m_length; float m_triggerLength = 2f; float longPresslengs; longPresslengs = Input.mousePosition.x - arg_player.m_touchZone.pressStartPosition.x; Vector2 currentTouchPos = Camera.main.ScreenToWorldPoint(Input.mousePosition); Vector2 touchStartPos = Camera.main.ScreenToWorldPoint(arg_player.m_touchZone.pressStartPosition); m_length = touchStartPos.x - currentTouchPos.x; //ここでスピードは書いちゃダメです arg_player.m_moveSpeed = 0.05f; //スワイプの長さに応じて移動速度アップ if (m_length > 5 || m_length < -5) { arg_player.m_moveSpeed = 0.07f; if (m_length > 12 || m_length < -12) { arg_player.m_moveSpeed = 0.1f; } } //一定値その場で長押し状態で射出待機状態 if (arg_player.m_touchZone.longpressing && longPresslengs < swipeLength && longPresslengs > -swipeLength) { if (!moving) { arg_player.StateTransion(new PlayerShot()); Debug.Log("射出"); } } //一定値以上スワイプしたら移動開始 if (m_length < -m_triggerLength) { arg_player.transform.position += new Vector3(arg_player.m_moveSpeed, 0, 0); arg_player.m_direction = ActorBase.Direction.Right; moving = true; } if (m_length > m_triggerLength) { arg_player.transform.position -= new Vector3(arg_player.m_moveSpeed, 0, 0); arg_player.m_direction = ActorBase.Direction.Left; moving = true; } } //指を離したら通常に戻る else { SoundPlayer.Instance.MuteSE(); arg_player.StateTransion(new PlayerIdle()); } }