unity : カメラの向きとコントローラーの向きからプレイヤーの回転を
2ベクトルの角度を計算して、足しました。
Vector3.Angle で角度を取得して
Vector3.Cross 外積でどちら向きか取得してみました。
float forwardAngle = Vector3.Angle (player.forward, controlDirection);
if (Vector3.Cross (player.forward, controlDirection).y < 0) {
forwardAngle *= -1;
}
プレイヤーとカメラ向きとの角度と十字キーの入力角度(上を0度、右90みたいな)を足してプレイヤーの次の向きを指定。