using UnityEngine; using System.Collections.Generic; using uc; namespace uc { public class Activity : ActivityBase { public Activity source; [SerializeField] float idleTime = 0.0f; public List canvases = new List(); public bool isIdle { get { if (idleTime == 0.0f) return false; float stamp = 0.0f; foreach (var canvas in canvases) stamp = Mathf.Max(stamp, canvas.ActiveStamp); float dt = Time.time - stamp; return (dt > idleTime); } } protected override void OnEnter() { foreach (var canvas in canvases) canvas.Enter(); } protected override void OnUpdate() { } protected override void OnLeave() { foreach (var canvas in canvases) canvas.Leave(); } protected override void OnKilled() { if (gameObject != null) Destroy(gameObject); } } }