Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Problemas con la gravedad del personaje

Iniciado por l0111, Septiembre 29, 2015, 08:34:15 PM

Tema anterior - Siguiente tema
Buenas tardes,estoy intentando implementar el movimiento de un personaje. Es muy sencillo: quiero que se mantenga quieto salvo cuando clique sobre el botón derecho del ratón. No necesito arrastrarlo porque voy a usar un sistema de turnos. El problema es, que aunque parece que responde al click, se me cae por todos lados. Es decir, no consigo que no le afecte la gravedad. De momento este es el código que he hecho. Me creo el objeto personaje, le asigno a false el booleano useGravity y después en el método update compruebo si hago click y le asigno una nueva posición. No da errores de compilación, pero el pobre se cae todo el rato.No se que hago mal, me pregunto si viendo el código así por encima véis algún fallo tonto que esté pasando por alto. Gracias de antemano. 
using UnityEngine;
using System.Collections;

/* Este script controla el movimiento de cada jugador:
  * Permite que se mueva sobre el eje X (horizontal) y el Z (vertical)
  * segun la posicion del mouse  */

public class PlayerControl : MonoBehaviour
{
//puntos de partida
public int puntos= 0;

// Update is called once per frame
void Update ()
{
   Rigidbody player = this.GetComponent<Rigidbody> ();
   player.useGravity = false;

   if (Input.GetMouseButton (0) == true) {
      var mousePos=Input.mousePosition;
      Vector3 worldPos = Camera.main.ScreenToWorldPoint(mousePos);
      worldPos = Camera.main.ScreenToWorldPoint (Input.mousePosition);
      worldPos.z = 0;
      player.transform.position = worldPos;
   }
}   
}
  

Si no vas a utilizar physics para moverlo, márcalo como isKinematic. Las colisiones las deberás controlar con el OnTrigger.

Etiquetas: