Jungle Runtime
The JungleRuntime
class manages the playback of JungleTree
instances.
It handles starting, stopping, and updating the playbacks, and provides events for monitoring the lifecycle of the trees.
Overview​
The JungleRuntime
class provides the following functionalities:
- Managing the playback lifecycle of
JungleTree
instances. - Providing events for tree start and stop.
- Ensuring that playbacks are properly cleaned up.
Methods​
TryGetPlayback
​
public static bool TryGetPlayback(JungleTree tree, out JunglePlayback playback)
Attempts to get the JunglePlayback
associated with the specified JungleTree
.
Returns:
true
if the playback is found; otherwise,false
.
IsPlaying
​
public static bool IsPlaying(JungleTree tree)
Checks if the specified JungleTree
instance is currently running.
Returns:
true
if the tree is running; otherwise,false
.
Play
​
public static string Play(JungleTree tree)
Starts playing the specified JungleTree
instance.
Returns:
- A string representing the unique identifier of the playback, or
null
if the tree cannot be played.
Play
​
public static string Play(JungleTree tree, out JunglePlayback playback)
Starts playing the specified JungleTree
instance and returns the associated JunglePlayback
.
Returns:
- A string representing the unique identifier of the playback, or
null
if the tree cannot be played.
Stop
​
public static void Stop(JungleTree tree)
Stops the specified JungleTree
instance if it is currently running.
Stop
​
public static void Stop(JunglePlayback playback)
Stops the specified JunglePlayback
instance if it is currently registered and running.
Events​
OnTreePlay
​
public static event Action<JungleTree> OnTreePlay
Called when a JungleTree
has begun playing.
Values:
JungleTree
: The tree that has started playing.
OnTreeStop
​
public static event Action<JungleTree> OnTreeStop
Called when a JungleTree
has finished playing or was stopped.
Values:
JungleTree
: The tree that has stopped playing.
Examples​
Playing a JungleTree
​
To start playing a JungleTree
instance, use the Play
method:
using Jungle;
using UnityEngine;
public class JungleExample : MonoBehaviour
{
[SerializeField]
private JungleTree jungleTree;
private string _playbackUid;
private void Start()
{
// Option 1:
_playbackUid = JungleRuntime.Play(jungleTree);
// Option 2:
_playbackUid = JungleRuntime.Play(jungleTree, out JunglePlayback playback);
}
}
Stopping a JungleTree
​
To stop a running JungleTree
instance, use the Stop
method:
using Jungle;
using UnityEngine;
public class JungleExample : MonoBehaviour
{
[SerializeField]
private JungleTree jungleTree;
private string _playbackUid;
private JunglePlayback _playback;
private void Start()
{
_playbackUid = JungleRuntime.Play(jungleTree, out _playback);
Invoke(nameof(StopJungleTree), 5f);
}
private void StopJungleTree()
{
// Option 1: Stop via a playback uid
JungleRuntime.Stop(_playbackUid);
// Option 2: Stop via a playback reference
JungleRuntime.Stop(_playback);
}
}