- Home /
Mouse Aim for a 2.5D shoot em up game - C#
Hi I'm making a 2.5D game and I'm trying to create a script where the mouse is used to aim your weapon and you can only hit a target when the mouse is aimed over them the player should also rotate so he is facing the direction of the mouse.
The rotation code that I'm currently using is in the movement script, I'm using Unitys own code. The rotation should pretty much be instant and the player should rotate 180 degrees. For the mouse-aim script most people seem to be using raycasting but I don't really know how it works and any of the scripts that I've found online hasn't been working for me. Here's my code atm. Please help.
using UnityEngine; using System.Collections; public class Player_Movement : MonoBehaviour { public float speed = 6.0F; public float jumpSpeed = 8.0F; public float gravity = 20.0F; private Vector3 moveDirection = Vector3.zero; public float rotationSpeed = 2.0F; // Use this for initialization void Start () { } // Update is called once per frame void Update () { CharacterController controller = GetComponent<CharacterController>(); if (controller.isGrounded) { moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, 0); moveDirection *= speed; if (Input.GetButton("Jump")){ moveDirection.y = jumpSpeed; } } //Current rotation code float r = rotationSpeed * Input.GetAxis("Mouse X"); transform.Rotate(0, r, 0); //Old rotation code //transform.right = Vector3.Slerp (transform.right, Vector3.right * Input.GetAxis("Horizontal"), 0.1f); moveDirection.y -= gravity * Time.deltaTime; controller.Move(moveDirection * Time.deltaTime); } }
Your answer