Question by
Dark_Shadow_12 · Sep 02, 2016 at 01:46 PM ·
cameracamera-movementcamera rotatecamera-looksupport
viewing on the Mouse Y axis not working.
Hello. So i tried to make my character be able to look around the screen, and it worked on the Mouse X axis, but when I introduced the Mouse Y axis, things went wired. I wouldn't be able to move screen at all except for a tiny bit and the X axis wasn't working either. Want I want it to do is that if I move it on the X axis, it will move the character, but if i move on the Y axis, it just moves the camera. here is the code:
using UnityEngine;
using System.Collections;
public class PlayerMovement : MonoBehaviour {
public float speed = 6f;
Vector3 movement;
Rigidbody playerrigidbody;
bool IsFlying = false;
public float mousesensetivity = 2f;
float Range = 60f;
void Start () {
playerrigidbody = GetComponent<Rigidbody>();
}
// Update is called once per frame
void FixedUpdate () {
// rotation
float h = Input.GetAxisRaw("Horizontal");
float v = Input.GetAxisRaw("Vertical");
move(h, v);
float Yrot = Input.GetAxisRaw("Mouse Y") * mousesensetivity;
Camera.main.transform.localRotation = Quaternion.Euler(Yrot, 0, 0);
float Xrot = Input.GetAxisRaw("Mouse X") * mousesensetivity;
transform.Rotate(0, Xrot, 0);
Vector3 speed = new Vector3(h, 0, v);
speed = transform.rotation * speed;
}
void move (float h, float v)
{
if (Input.GetKey(KeyCode.Space))
{
if (IsFlying == false)
{
IsFlying = true;
GetComponent<Rigidbody>().velocity = new Vector3(0, 6, 0);
}
}
Vector3 Speed = new Vector3(h, 0, v);
Speed = transform.rotation * Speed / 6;
movement.Set(h, 0f, v);
playerrigidbody.MovePosition(transform.position + Speed);
}
void OnCollisionEnter(Collision col)
{
if (col.gameObject.name == "floor" || col.gameObject.name == "PlatformPrototype08x01x08" || col.gameObject.name == "StepsPrototype04x02x02" || col.gameObject.name == "PlatformPrototype02x01x02")
{
IsFlying = false;
}
}
}
Comment