- Home /
Question by
mcgamerx19 · Aug 02, 2014 at 03:13 PM ·
floatingmode
Model floats in the air when I jump.
So as my model is chasing me, it slowly starts to inch its way up into the air. And if I jump, and it's still following me it will float in the air. Here's my script.
var Distance;
var Target : Transform;
var lookAtDistance = 25.0;
var chaseRange = 15.0;
var attackRange = 1.5;
var moveSpeed = 5.0;
var Damping = 6.0;
var attackRepeatTime = 1;
var runanimation = 15;
var TheDammage = 40;
private var attackTime : float;
var controller : CharacterController;
var gravity : float = 20.0;
private var MoveDirection : Vector3 = Vector3.zero;
function Start ()
{
attackTime = Time.time;
}
function Update ()
{
Distance = Vector3.Distance(Target.position, transform.position);
if (Distance < lookAtDistance)
{
lookAt();
}
if (Distance > lookAtDistance)
{
renderer.material.color = Color.green;
}
if (Distance < attackRange)
{
attack();
}
else if (Distance < chaseRange)
{
chase ();
animation.Play("run");
}
}
function lookAt ()
{
renderer.material.color = Color.yellow;
var rotation = Quaternion.LookRotation(Target.position - transform.position);
transform.rotation = Quaternion.Slerp(transform.rotation, rotation,Time.deltaTime * Damping);
}
function chase ()
{
renderer.material.color = Color.red;
moveDirection = transform.forward;
moveDirection *= moveSpeed;
moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime);
}
function attack ()
{
if (Time.time > attackTime)
{
Target.SendMessage("ApplyDammage", TheDammage);
Debug.Log("The Enemy Has Attacked");
attackTime = Time.time + attackRepeatTime;
}
}
function ApplyDammage ()
{
chaseRange += 30;
moveSpeed += 2;
lookAtDistance += 40;
}
Comment
Answer by robertbu · Aug 02, 2014 at 03:15 PM
Change your lookAt() function:
function lookAt ()
{
renderer.material.color = Color.yellow;
var look = Target.position - transform.position;
var look.y = 0.0;
var rotation = Quaternion.LookRotation(look);
transform.rotation = Quaternion.Slerp(transform.rotation, rotation,Time.deltaTime * Damping);
}
Saying "Doesn't work" does not help me figure out what is going on with your code. Does it mean nothing changed? Or does it mean something changed, but did not do what it needed to do? Or does it mean you could not get the code to compile? I see clearly in the code where not removing the 'y' value in LookRotation would cause your object to rise or fall with the object it is following.