I have trouble with getting an animation to play when I use a call to gameobjects setActiveRecursively().
First I had the hierarchy:
FireRoomCamera (the camera from which you see the hose)
WaterHoseContainer
WaterHoseRight (contains two animations with the first set as default and “Play Automatically” set)
The two animations “WaterHoseIntro” and “WaterHoseOutro” play as they should when they are called. But during the game, the camera will shake and I want the hose to remain still. So I moved out the waterhoseContainer to a new empty GameObject “FireRoomPlayer” so the waterhose wouldn’t inherit the cameras shaking. So the FireRoomPlayer got the WaterHoseContainer and its contents drag and dropped to it with no other changes:
FireRoomPlayer
WaterHoseContainer
WaterHoseRight
And sure enough the waterhose now doesn’t follow the camera around as it shakes which is good. But the animations won’t play! The FireRoomCamera has a Script “ScriptedActionsFire” that can activate Objects and their children through the recursive activation in GameObject. So in the timeline of the camera I make a call to “activateObjectWithIdRecursivelyAE()” and set the value to 5 which is the index of “FireRoomPlayer” in “FireRoomCamera”'s list. This activates the waterhose so its visible. However the animation doesn’t play, it just shows up in its final position.
` using UnityEngine; using System.Collections; //====== Cut-out code public class ScriptedActions : MonoBehaviour { public GameObject[] activateObject; public GameObject[] inactivateObject; //====== Cut-out code void activateObjectWithIdRecursivelyAE(int id) { activateObject[id].SetActiveRecursively(true); } void inactivateObjectWithIdRecursivelyAE(int id) { inactivateObject[id].SetActiveRecursively(false); } }`
So my question is how do I make the camera activate the animations of the waterhose when the waterhose isn’t a child to it?