var smooth:int;
var gravity:int = 10;
static var grounded:boolean = false;
private var targetPosition:Vector3;
var moveDirection:Vector3 = Vector3.zero;
var speed = 60;
function Update () {
if(grounded == false)
{
moveDirection.y -= gravity * Time.deltaTime;
}
var controller:CharacterController = GetComponent(CharacterController);
var flags = controller.Move(moveDirection * Time.deltaTime);
grounded = (flags & CollisionFlags.Below) != 0;
if(grounded==false)
{
this.transform.position.y -= gravity * Time.deltaTime;
}
if(Input.GetKeyDown(KeyCode.Mouse0))
{
smooth=1;
var playerPlane = new Plane(Vector3.up, transform.position);
var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
var hitdist = 0.0;
if (playerPlane.Raycast (ray, hitdist)) {
var targetPoint = ray.GetPoint(hitdist);
targetPosition = ray.GetPoint(hitdist);
var targetRotation = Quaternion.LookRotation(targetPoint - transform.position);
transform.rotation = targetRotation;
}
}
var dir:Vector3 = targetPosition - transform.position;
var dist:float = dir.magnitude;
var move:float = speed * Time.deltaTime;
if(dist > move){
transform.position.x += dir.x* move;
transform.position.z += dir.z* move;
} else {
transform.position.x = targetPosition.x;
transform.position.z = targetPosition.z;
}
}
I make the RTS click to move script and it have gravity function,but when character move on the terrain that have some hills it well pass through the hills and fall.
How can i fix it?