- Home /
Question by
SiberianRusky · Mar 05, 2015 at 11:03 AM ·
2.5dsidescrollerunderwater
Underwater 2.5d scroller 3D model Rotation
Heya. I've had the nastiest time working with these quaternions and euler angles for my underwater sidescroller. Basically I would like the character to face the way she swims.
The 3D model just doesn't rotate correctly and results in facing the incorrect way for most of the arrow key inputs. (the black arrows denote the arrow keys pressed) Can't I just write a script that rotates the character separate from the movement script or do I have to have it all together like this?
public class PlayerController : MonoBehaviour
{
public float maxSpeed = 1f;
public float maxSpeed1 = 10f;
//bool facingRight = true;
//bool facingUp = true;
//bool facingDown = true;
Animator anim;
// Use this for initialization
void Start () {
anim = GetComponent<Animator> ();
}
// Update is called once per frame
void FixedUpdate ()
{
float move = Input.GetAxis ("Horizontal");
float move1= Input.GetAxis ("Vertical");
anim.SetFloat("Speed", Mathf.Max (Mathf.Abs(move),Mathf.Abs(move1)));
//if (!animation.isPlaying)
//animation.Play("idle");
//Mong in 8 directions up down left right and diagonal
rigidbody.velocity = new Vector2 (move * maxSpeed, move1 * maxSpeed1);
MMD4MecanimBone blah = transform.GetComponentInChildren<MMD4MecanimBone> ();
if (rigidbody.velocity != new Vector3 (0, 0, 0)) {
//Quaternion end = Quaternion.LookRotation (rigidbody.velocity) * Quaternion.Euler (0, -90, 0);
Quaternion end = Quaternion.LookRotation (rigidbody.velocity) * Quaternion.Euler (0, 0, 0);
Vector3 euler = end.eulerAngles;
blah.userRotation = Quaternion.Slerp(blah.userRotation,Quaternion.Euler(euler.z + 90*move,euler.y ,euler.x),.1f);
}
else
blah.userRotation = Quaternion.Slerp(blah.userRotation,Quaternion.Euler(0,90,0),0.1f);
}
not-working.png
(12.6 kB)
Comment
Your answer
![](https://koobas.hobune.stream/wayback/20220613185104im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Input.GetAxis to act like button 1 Answer
Knockout Or Suicide Detection 1 Answer
advice on how to implement 2.5D 1 Answer
Water volume for Sidescroller 1 Answer
Grappling Hook in 2.5d Game 0 Answers