using System.Collections; using System.Collections.Generic; using UnityEngine; using ChivaXR; using System; using System.Text; /// /// 动画驱动器-显示隐藏物体 /// public class AniDriver_ActiveObjs : AnimationDriverBase { public List objs = new List(); public bool activeObjs; public override void FinishedState() { foreach (var item in objs) { if (item != null) { item.SetActive(activeObjs); } else { Debug.LogError("AniDriver_ActiveObjs模型引用丢失"); } } } public override void InitState() { foreach (var item in objs) { if (item != null) { item.SetActive(!activeObjs); } else { Debug.LogError("AniDriver_ActiveObjs模型引用丢失"); } } } public override void StartPlay(Action finishedCallBack = null) { foreach (var item in objs) { item.SetActive(activeObjs); } finishedCallBack?.Invoke(); } public override string AnimationDescription() { return animationSequence.ToString() + (activeObjs ? "--显示物体:" : "--隐藏物体:") + GetObjsName(); } public string GetObjsName() { StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < objs.Count; i++) { if (objs[i] == null) continue; stringBuilder.Append(objs[i].name); if (i < objs.Count - 1) { stringBuilder.Append("/"); } } return stringBuilder.ToString(); } }