03-02-2016, 10:20 AM
salve, vorrei esporvi un problema che assolutamente non riesco a risolvere
ho creato un CharacterController su Unity nella quale ho inserito pure un RigidBody e un script creato da me per muoversi
però ho due problemi:
1) quando il personaggio salta e tocca il tetto, quest'ultimo non cade subito a terra ma rimane qualche decimo di secondo ancora in aria, come se la spinta del salto non fosse ancora terminata
2) quando fisso il pavimento con la telecamera e cammino all'indietro, anziché camminare il personaggio "saltella"
qualche consiglio?
ho creato un CharacterController su Unity nella quale ho inserito pure un RigidBody e un script creato da me per muoversi
Codice:
using UnityEngine;
using System.Collections;
public class PlayerMovement : MonoBehaviour {
public float speed = 6.0F;
public float jumpSpeed = 8.0F;
public float gravity = 20.0F;
public Camera fpsCamera;
public bool playerBlocked = false;
private Vector3 moveDirection = Vector3.zero;
void Update()
{
if (playerBlocked == false)
{
CharacterController controller = GetComponent<CharacterController> ();
if (controller.isGrounded)
{
moveDirection = new Vector3 (Input.GetAxis ("Horizontal"), 0, Input.GetAxis ("Vertical"));
moveDirection = fpsCamera.transform.TransformDirection (moveDirection);
moveDirection *= speed;
if (Input.GetButton ("Jump"))
{
moveDirection.y = jumpSpeed;
}
}
moveDirection.y -= gravity * Time.deltaTime;
controller.Move (moveDirection * Time.deltaTime);
}
}
public void disableMovement ()
{
playerBlocked = true;
}
public void enableMovement ()
{
playerBlocked = false;
}
}
però ho due problemi:
1) quando il personaggio salta e tocca il tetto, quest'ultimo non cade subito a terra ma rimane qualche decimo di secondo ancora in aria, come se la spinta del salto non fosse ancora terminata
2) quando fisso il pavimento con la telecamera e cammino all'indietro, anziché camminare il personaggio "saltella"
qualche consiglio?