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);
}
}