/// <summary> /// Create a new 3D representation of the 3D object. /// </summary> public static BattleObject3D CreateNewVisual(BattleObject data, BattleViewController viewController) { var prefab = data.Settings.LoadVisuals(); if (prefab == null) { Debug.LogWarning($"Failed to find prefab for {data.Settings}", data.Settings); return(null); } var newObject = BattleObject3D.Instantiate <BattleObject3D>(prefab); newObject.Data = data; newObject.Animator = newObject.gameObject.GetComponentInChildren <Animator>(); newObject.ViewController = viewController; newObject.Init(data); newObject.Sync(0); if (newObject.Animator) { newObject.Animator.logWarnings = false; } return(newObject); }
/// <summary> /// Removes 3d object from all collections on dispose. /// </summary> public void Remove(BattleObject3D obj) { allVisuals.Remove(obj); if (obj != null && obj.Data != null) { object2VisualMap.Remove(obj.Data); } }
/// <summary> /// Create new 3D representation of the given object. /// </summary> void InitNewObject(BattleObject obj) { if (!object2VisualMap.ContainsKey(obj) && BattleObject3D.CreateNewVisual(obj, this) is BattleObject3D newVisual) { object2VisualMap.Add(obj, newVisual); allVisuals.Add(newVisual); } }