コード例 #1
0
    /// <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);
    }
コード例 #2
0
 /// <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);
     }
 }
コード例 #3
0
 /// <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);
     }
 }