- Home /
how to make a animation play only when I get into the range of that game object?
ok so i have a game object that is an enemy. I want its animation to play only when I get really close to it.(im controllled by a fps player controller in my game) how do i do this? thanks!
Answer by Jessy · Jan 23, 2011 at 05:06 AM
Set the speed of your animation to zero when out of range, and to one, when in range. You can check the distance directly, but it's faster to compare the square of the distance to the square of your desired range.
ok well exactly, how do I set the speed pf my animation to zero when out of range? thats kinda what I asked.
It seems to me that I answered. Try putting some code together based on my links, and comment your questions thereafter, if you have any.
Answer by Grady · Jan 23, 2011 at 07:17 AM
In one game that I'm currently working on, I have it so that when my First Person Controller comes into range of a door, it plays the animation that opens the door... Just add the following script to your first person controller
var rayCastLength = 5;
function Update () { var hit : RaycastHit;
//check if were in range...
if(Physics.Raycast(transform.position, transform.forward, hit, rayCastLength))
{
// ... with the object
if(hit.collider.gameObject.tag == "lift_door")
{
//play the animation:
hit.collider.gameObject.animation.Play("lift_door_open");
}
}
}
Then just change the rayCastLength to how close you want your person to be when the animation is played. Then just tag your "enemy" as something you want, and replace my "lift_door" tag with your one. Then just change my "lift_door_open" to what your animation is called. And you don't have to put the .js at the end.
Your answer
![](https://koobas.hobune.stream/wayback/20220613100638im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Reset other animations on screen 0 Answers
animation play in game over 1 Answer
Play animation when 2 keys pressed? 3 Answers
Character won't play animation 8 Answers