前提・実現したいこと
横になって転がる、というアクションで前後の動きに加えて、車のようなカーブを実装したい
発生している問題・エラーメッセージ
AddTorqueではCapcelColliderの影響か、上手く横に移動できず、両端の丸っこい所を軸に回転して変な挙動になってしまう(長さは鉛筆位を想定しています)。
該当のソースコード
void Update(){
inputHorizontal = Input.GetAxis("Horizontal") * Time.deltaTime; inputVertical = Input.GetAxis("Vertical") * Time.deltaTime; //カメラ方向から、x-z平面の単位ベクトルを取得 cameraForward = Vector3.Scale(Camera.main.transform.forward, new Vector3(1, 0, 1)).normalized; //方向キーの入力値とカメラの向きから、移動方向を決定 moveForward = cameraForward * inputVertical; /*if (Input.GetButton("RollR")) { rb.AddTorque(-moveRotate * rotateSpeed); } if (Input.GetButton("RollL")) { rb.AddTorque(moveRotate * rotateSpeed); }*/ timeCount = timeCount + Time.deltaTime; if (rollJump) { rb.AddForce(moveForward * rollSpeed);
}
}
試したこと
上記のRollRとRollLでのAddTorqueを使った回転の方法
Mathf.Absを使ってRotationに直接値を代入する方法
補足情報(FW/ツールのバージョンなど)
上記のRollRとRollLでのAddTorqueを使った回転ならいい感じにできていると思うのですが、開発チームの上の方からPS4コントローラーの左スティックのみで処理を行ってほしいとのことでした。
新しくボタンを追加するのはなしということでお願いしたいです。
まだ描き足りないところはあると思いますが、質問していただければお教えしますので宜しくお願い致します。
わかりにくいとご指摘があったので自分の中での目標を図で表しておきました。拙くて申し訳ないです。