Пример #1
0
    public static Prefab <T> LoadRandom <T>(
        string folder,
        ref uint seed,
        GameManager manager = null,
        PrefabAttribute.Library attribute = null,
        bool useProbabilities             = true)
        where T : Component
    {
        if (string.IsNullOrEmpty(folder))
        {
            return((Prefab <T>)null);
        }
        if (manager == null)
        {
            manager = Prefab.DefaultManager;
        }
        if (attribute == null)
        {
            attribute = Prefab.DefaultAttribute;
        }
        string[] prefabNames = Prefab.FindPrefabNames(folder, useProbabilities);
        if (prefabNames.Length == 0)
        {
            return((Prefab <T>)null);
        }
        string     str       = prefabNames[SeedRandom.Range(ref seed, 0, prefabNames.Length)];
        GameObject prefab    = manager.FindPrefab(str);
        T          component = prefab.GetComponent <T>();

        return(new Prefab <T>(str, prefab, component, manager, attribute));
    }
Пример #2
0
 public static Prefab[] Load(
     string folder,
     GameManager manager = null,
     PrefabAttribute.Library attribute = null,
     bool useProbabilities             = true)
 {
     if (string.IsNullOrEmpty(folder))
     {
         return((Prefab[])null);
     }
     if (manager == null)
     {
         manager = Prefab.DefaultManager;
     }
     if (attribute == null)
     {
         attribute = Prefab.DefaultAttribute;
     }
     string[] prefabNames = Prefab.FindPrefabNames(folder, useProbabilities);
     Prefab[] prefabArray = new Prefab[prefabNames.Length];
     for (int index = 0; index < prefabArray.Length; ++index)
     {
         string     str    = prefabNames[index];
         GameObject prefab = manager.FindPrefab(str);
         prefabArray[index] = new Prefab(str, prefab, manager, attribute);
     }
     return(prefabArray);
 }
 public virtual void PreProcess(IPrefabProcessor preProcess, GameObject rootObj, string name, bool serverside, bool clientside, bool bundling)
 {
     if (bundling)
     {
         return;
     }
     this.fullName      = name;
     this.hierachyName  = base.transform.GetRecursiveName("");
     this.prefabID      = StringPool.Get(name);
     this.instanceID    = base.GetInstanceID();
     this.worldPosition = base.transform.position;
     this.worldRotation = base.transform.rotation;
     this.worldForward  = base.transform.forward;
     this.localPosition = base.transform.localPosition;
     this.localScale    = base.transform.localScale;
     this.localRotation = base.transform.localRotation;
     if (serverside)
     {
         this.prefabAttribute = PrefabAttribute.server;
         this.gameManager     = GameManager.server;
         this.isServer        = true;
     }
     this.AttributeSetup(rootObj, name, serverside, clientside, bundling);
     if (serverside)
     {
         PrefabAttribute.server.Add(this.prefabID, this);
     }
     preProcess.RemoveComponent(this);
     preProcess.NominateForDeletion(base.gameObject);
 }
Пример #4
0
 public Prefab(string name, GameObject prefab, GameManager manager, PrefabAttribute.Library attribute)
 {
     this.ID         = StringPool.Get(name);
     this.Name       = name;
     this.Object     = prefab;
     this.Manager    = manager;
     this.Attribute  = attribute;
     this.Parameters = prefab.GetComponent <PrefabParameters>();
 }
Пример #5
0
 public static Prefab <T>[] Load <T>(string folder, GameManager manager = null, PrefabAttribute.Library attribute = null, bool useProbabilities = true)
     where T : Component
 {
     if (string.IsNullOrEmpty(folder))
     {
         return(null);
     }
     return(Prefab.Load <T>(Prefab.FindPrefabNames(folder, useProbabilities), manager, attribute));
 }
Пример #6
0
 public Prefab(
     string name,
     GameObject prefab,
     T component,
     GameManager manager,
     PrefabAttribute.Library attribute)
     : base(name, prefab, manager, attribute)
 {
     this.Component = component;
 }
Пример #7
0
    public static Prefab <T> Load <T>(uint id, GameManager manager = null, PrefabAttribute.Library attribute = null)
        where T : Component
    {
        if (manager == null)
        {
            manager = Prefab.DefaultManager;
        }
        if (attribute == null)
        {
            attribute = Prefab.DefaultAttribute;
        }
        string     str        = StringPool.Get(id);
        GameObject gameObject = manager.FindPrefab(str);

        return(new Prefab <T>(str, gameObject, gameObject.GetComponent <T>(), manager, attribute));
    }
Пример #8
0
 public static Prefab <T>[] Load <T>(string[] names, GameManager manager = null, PrefabAttribute.Library attribute = null)
     where T : Component
 {
     if (manager == null)
     {
         manager = Prefab.DefaultManager;
     }
     if (attribute == null)
     {
         attribute = Prefab.DefaultAttribute;
     }
     Prefab <T>[] prefab = new Prefab <T> [(int)names.Length];
     for (int i = 0; i < (int)prefab.Length; i++)
     {
         string     str        = names[i];
         GameObject gameObject = manager.FindPrefab(str);
         T          component  = gameObject.GetComponent <T>();
         prefab[i] = new Prefab <T>(str, gameObject, component, manager, attribute);
     }
     return(prefab);
 }
Пример #9
0
 public static Prefab <T>[] Load <T>(
     string[] names,
     GameManager manager = null,
     PrefabAttribute.Library attribute = null)
     where T : Component
 {
     if (manager == null)
     {
         manager = Prefab.DefaultManager;
     }
     if (attribute == null)
     {
         attribute = Prefab.DefaultAttribute;
     }
     Prefab <T>[] prefabArray = new Prefab <T> [names.Length];
     for (int index = 0; index < prefabArray.Length; ++index)
     {
         string     name      = names[index];
         GameObject prefab    = manager.FindPrefab(name);
         T          component = prefab.GetComponent <T>();
         prefabArray[index] = new Prefab <T>(name, prefab, component, manager, attribute);
     }
     return(prefabArray);
 }
Пример #10
0
 public static Prefab[] Load(string folder, GameManager manager = null, PrefabAttribute.Library attribute = null, bool useProbabilities = true)
 {
     if (string.IsNullOrEmpty(folder))
     {
         return(null);
     }
     if (manager == null)
     {
         manager = Prefab.DefaultManager;
     }
     if (attribute == null)
     {
         attribute = Prefab.DefaultAttribute;
     }
     string[] strArrays = Prefab.FindPrefabNames(folder, useProbabilities);
     Prefab[] prefab    = new Prefab[(int)strArrays.Length];
     for (int i = 0; i < (int)prefab.Length; i++)
     {
         string     str        = strArrays[i];
         GameObject gameObject = manager.FindPrefab(str);
         prefab[i] = new Prefab(str, gameObject, manager, attribute);
     }
     return(prefab);
 }
 static PrefabAttribute()
 {
     PrefabAttribute.server = new PrefabAttribute.Library(false, true);
 }
Пример #12
0
    public static Prefab LoadRandom(string folder, ref uint seed, GameManager manager = null, PrefabAttribute.Library attribute = null, bool useProbabilities = true)
    {
        if (string.IsNullOrEmpty(folder))
        {
            return(null);
        }
        if (manager == null)
        {
            manager = Prefab.DefaultManager;
        }
        if (attribute == null)
        {
            attribute = Prefab.DefaultAttribute;
        }
        string[] strArrays = Prefab.FindPrefabNames(folder, useProbabilities);
        if (strArrays.Length == 0)
        {
            return(null);
        }
        string str = strArrays[SeedRandom.Range(ref seed, 0, (int)strArrays.Length)];

        return(new Prefab(str, manager.FindPrefab(str), manager, attribute));
    }