How can I adapt it to not use an object transform’s rotation but instead use a Vector3 (forward direction)? What I need is to be able to use a Vector3 as therelative forward (in my case based on player’s team). This is my “forward vector”.
But with velocity you need to make some more calculations (my old js code):
var right = this.cameraTransform.right;
var forward = this.cameraTransform.forward;
var v = this.inputParser.verticalLeftStick;
var h = this.inputParser.horizontalLeftStick;
moveDirection = v * forward + h * right;
moveDirection = moveDirection.normalized;
if(moveDirection != Vector3.zero){
transform.rotation = Quaternion.LookRotation(moveDirection);
transform.Translate(Vector3.forward * Time.deltaTime * moveSpeed);
}
else {
this.transform.rotation.eulerAngles.x = 0;
this.transform.rotation.eulerAngles.z = 0;
}
You can replace the camera transform by any other transform and use velocity instead of translate. Be aware that with this approach the character will always face the direction he will move to relative to the (in this case) camera (like fo example in dark souls).