Skip to main content
Version: 🚧 Work in Progress

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 tree;

private string _playbackUid;

private void Start()
{
// Option 1:
_playbackUid = JungleRuntime.Play(tree);

// Option 2:
_playbackUid = JungleRuntime.Play(tree, 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 tree;

private string _playbackUid;
private JunglePlayback _playback;

private void Start()
{
_playbackUid = JungleRuntime.Play(tree, out _playback);
Invoke(nameof(StopTreeAfterFiveSeconds), 5);
}

private void StopTreeAfterFiveSeconds()
{
// Option 1: Stop via a playback uid
JungleRuntime.Stop(_playbackUid);

// Option 2: Stop via a playback reference
JungleRuntime.Stop(_playback);
}
}