Movimiento del personaje hasta el puntero al hacer click izquierdo con el ratón

Código javascript para mover el personaje hasta el mouse al hacer click izquierdo. Tiene rotación del personaje y un pequeño smooth al final a través del cálculo de distancia entre los dos puntos.
Uso: Añadir el script al personaje que se desee mover.

3 pensamientos en “Movimiento del personaje hasta el puntero al hacer click izquierdo con el ratón

  1. miguel

    muy bueno el script pero en la bola 3d que ise no me sale y solo gira en y , y deveria acerlo en x para hacerlo horizontalmente …

    Responder
  2. miguel

    aqui teneis uno que ise con partes de otros scripts y mejoras que ise , ase lo mismo pero en 3d

    var speed = 0.5;

    private var target : Vector3;

    var hit : RaycastHit;
    var Activar : boolean =false;

    public var distanceSmooth = 1.5;
    private var distance : float;

    function Start () {
    //rigidbody.freezeRotation = true; target = transform.position; }
    }
    function FixedUpdate () {
    //target.y = transform.position.y;
    if (Input.GetMouseButtonDown(0) || Input.GetMouseButton(0)) {
    var ray = Camera.main.ScreenPointToRay (Input.mousePosition);

    if (Physics.Raycast (ray, hit)) {
    target = hit.point;

    Activar =true;
    transform.LookAt(target);

    }
    }

    if (Vector3.Distance(transform.position, target) && Activar ){ //&& targetRadius) {

    // transform.Translate(0,0,speed * Time.deltaTime );
    // transform.Translate((hit.point – transform.position) * Time.deltaTime);

    // transform.Translate((hit.point) * Time.deltaTime);
    transform.eulerAngles = new Vector3(0, transform.eulerAngles.y, 0);
    //Activar =false;

    distance = Vector3.Distance(transform.position, target);
    if(distance > distanceSmooth){
    transform.position = Vector3.MoveTowards(transform.position, target, Time.deltaTime * speed );
    } else {
    transform.position = Vector3.Lerp(transform.position, target, Mathf.SmoothStep(0.0, speed, Time.deltaTime * speed));
    }
    }
    }

    Responder
  3. Jony

    Me sale error en:
    pos = Camera.main.ScreenToWorldPoint(pos);

    y tambien en:
    var ray = Camera.main.ScreenPointToRay (Input.mousePosition);

    como solucionarlo? gracias.

    Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *