- Home /
Top Down Shooter Player Controller
I've started to make a top down shooter, and am currently working on a character controller. I've created very basic movements, but when I tried to make my character look where the mouse is pointing nothing would happen. I followed the tutorial perfectly, but nothing would work. Could someone look at my code?
public float playerSpeed;
private Rigidbody2D playerRigidbody;
private Vector2 moveInput;
private Vector2 moveVelocity;
private Camera mainCamera;
void Start () {
playerRigidbody = GetComponent<Rigidbody2D>();
mainCamera = FindObjectOfType<Camera>();
}
void Update () {
moveInput = new Vector2 (Input.GetAxisRaw ("Horizontal"), Input.GetAxisRaw ("Vertical"));
moveVelocity = moveInput * playerSpeed;
Ray cameraRay = mainCamera.ScreenPointToRay (Input.mousePosition);
Plane groundPlane = new Plane(Vector3.up, Vector3.zero);
float rayLength;
if(groundPlane.Raycast(cameraRay, out rayLength)) {
Vector3 pointToLook = cameraRay.GetPoint(rayLength);
Debug.DrawLine(cameraRay.origin, pointToLook, Color.blue);
transform.LookAt (pointToLook);
}
}
void FixedUpdate () {
playerRigidbody.velocity = moveVelocity;
}
}
Answer by RealCOOLGHOST · Feb 18, 2018 at 04:12 PM
I have a soultion not sure if it will work, dont use the static float if you not going to use it the right way remove static to see variable in editor but I have the basic mouse things down here you go. using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player3 : MonoBehaviour { public static float speed = 1; private Vector3 mousePosition; void FixedUpdate() { mousePosition = Input.mousePosition; mousePosition = Camera.main.ScreenToWorldPoint(mousePosition); transform.position = Vector2.Lerp(transform.position, mousePosition, speed * Time.deltaTime); } }
Your answer
Follow this Question
Related Questions
No way to use Raycast infront of player according to rotation in 2D? 1 Answer
Raycast hits and then doesn't fire again? 2D Game Raycasting Problem 1 Answer
How to get Ray rotation from direction 0 Answers
Aim Line (Line Renderer) not showing in 2D shooter 2 Answers
Rotating the player animation also rotates the player 2 Answers