- Home /
OnTriggerEnter getting delay when object is moving?
When object is moving from pointb to pointc (note they are defined vector3 points in program) the OnTriggerEnter function do not work untill object reached at it's destination (pointc) and then enter in OnTriggerEnter function and move from pointb to pointd.
I want to move object from pointb to pointc but when object collide then it should stop moving and enter into the OnTriggerEnter function.
function Start () {
yield MoveObject(transform, pointB, pointc, 2.0);
}
function OnTriggerEnter (other : Collider) {
pointd = Vector3(14.5,-16.306,28.6);
MoveObject(transform, pointB, pointd, 3);
}
function MoveObject (thisTransform : Transform, startPos : Vector3, endPos : Vector3, time : float) {
var i = 0.0;
var rate = 2.0/time;
while (i < 1.0) {
i += Time.deltaTime * rate;
thisTransform.position = Vector3.Lerp(startPos, endPos, i);
yield;
}
}
Answer by HarshadK · Aug 25, 2014 at 01:58 PM
You are starting the coroutine MoveObject() from your Start function which is moving your object from pointB to pointC.
So in your OnTriggerEnter you should cancel the previously started coroutine first and then start a new coroutine to move the object from pointB to pointD.
There are two coroutines that are working concurrently in your code that are moving the same object.
Your answer
Follow this Question
Related Questions
Need help with OnTriggerEnter 3 Answers
Enable/ Activate a script by script 1 Answer
Don'tDestroyOnLoad issue, please help :( 1 Answer
All objects gets same val. But i dont want that 2 Answers
How do I add force in the on trigger 1 Answer