Rotation player avec souris sur Unity3D

Fermé
TheYoungGeek43 Messages postés 88 Date d'inscription samedi 14 juin 2014 Statut Membre Dernière intervention 1 avril 2017 - 19 oct. 2016 à 15:44
Bonjour,

Je souhaiterais faire un jeu 2D vus de dessus et je veux que mon joueur face une rotation en même temps que la souris sur l'écran

J'ai déjà fait une fonction mais elle ne fonctionne pas je ne comprend pas pourquoi

/**
 *  Cette classe vas ce charger de tous les déplacement 
 *  Et les rotation 
 *  
 *  @author Maxime Mazet
 *  @entertainement New Merys Studio
**/

using UnityEngine;
using System.Collections;

public class Movement : MonoBehaviour
{

    public float speedH = 2.0f;
    public float speedV = 2.0f;

    private float yaw = 0.0f;
    private float pitch = 0.0f;

    private float speed;

    private Rigidbody2D rb2d;

    void Start()
    {
        this.rb2d = GetComponent<Rigidbody2D>();

        this.rb2d.isKinematic = true;

        this.speed = 5.0f;
    }
    void FixedUpdate()
    {
        this.Move();
        this.Turn();
    }

    private void Move()
    {
        if (Input.GetKey(KeyCode.LeftArrow))
        {
            transform.position += Vector3.left * speed * Time.deltaTime;
        }
        if (Input.GetKey(KeyCode.RightArrow))
        {
            transform.position += Vector3.right * speed * Time.deltaTime;
        }
        if (Input.GetKey(KeyCode.DownArrow))
        {
            transform.position += Vector3.down * speed * Time.deltaTime;
        }
        if (Input.GetKey(KeyCode.UpArrow))
        {
            transform.position += Vector3.up * speed * Time.deltaTime;
        }
    }

    private void Turn()
    {
        Vector3 mouseWorldPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition + Vector3.forward * 10f);

        float angle = AngleBetweenPoints(transform.position, mouseWorldPosition);


        transform.rotation = Quaternion.Euler(new Vector3(0f, 0f, angle));
    }

    private float AngleBetweenPoints(Vector2 a, Vector2 b)
    {
        return Mathf.Atan2(a.y - b.y, a.x - b.x) * Mathf.Rad2Deg;
    }

}



Merci de m'aider
A voir également: