public void OnUpdate(ActorBall arg_ball) { //コライダーオブジェクト格納時 if (arg_ball.colGameObject) { switch (arg_ball.colGameObject.tag) { //地形に当たったら戻ってくる case "Ground": case "PassWall": arg_ball.transform.position = Vector3.MoveTowards(arg_ball.transform.position, arg_ball.playerObject.transform.position, 0.5f); break; //壁に当たったらその座標に移動する case "Wall": case "Paipu": arg_ball.playerObject.transform.position = Vector3.MoveTowards(arg_ball.playerObject.transform.position, arg_ball.hitPosition, 0.5f); break; //モンスターに当たったらくっつけて戻ってくる case "Monster": arg_ball.colGameObject.transform.position = arg_ball.transform.position; arg_ball.transform.position = Vector3.MoveTowards(arg_ball.transform.position, arg_ball.playerObject.transform.position, 0.5f); break; default: break; } }//コライダーオブジェクト消失時はそのままプレイヤーの位置へ戻る else { arg_ball.transform.position = Vector3.MoveTowards(arg_ball.transform.position, arg_ball.playerObject.transform.position, 0.5f); } //プレイヤーの位置まで戻ったら通常時に移行 if (arg_ball.transform.position == arg_ball.playerObject.transform.position) { arg_ball.StateTransion(new BallIdle()); } }
public void OnUpdate(ActorBall arg_ball) { Vector3 m_startPostion = Camera.main.ScreenToWorldPoint(arg_ball.m_touchZone.pressStartPosition); //角度指定 float zRotation = Mathf.Atan2(arg_ball.m_touchZone.flickEndPosition.y - m_startPostion.y, arg_ball.m_touchZone.flickEndPosition.x - m_startPostion.x) * Mathf.Rad2Deg; //値格納 float AngleRotation = zRotation; //取得した角度反映 arg_ball.transform.rotation = Quaternion.Euler(0f, 0f, AngleRotation); //移動量 Vector3 angleVec = arg_ball.transform.rotation * new Vector3(20, 0f, 0); //向いている方向に向かって移動 arg_ball.transform.position += angleVec * Time.deltaTime; SoundPlayer.Instance.PlaySE("Shot"); }
public void OnExit(ActorBall arg_ball) { }
public void OnEnter(ActorBall arg_ball) { }
/// <summary> /// 毎フレーム呼ばれる処理 /// </summary> /// <param name="arg_ball">Argument player.</param> public void OnUpdate(ActorBall arg_ball) { arg_ball.transform.position = arg_ball.playerObject.transform.position; }