/// <summary> /// Adds prefab /// </summary> /// <param name="name"></param> /// <param name="prefab"></param> /// <returns></returns> public PrefabsConfig AddPrefab(string name, SpellieSpawnedObject prefab) { var obj = PrefabObject.New() .WithName(name) .WithObject(prefab); _prefabs.Add(obj); return(this); }
/// <summary> /// Spawns object in world /// </summary> /// <param name="prefab"></param> /// <param name="position"></param> /// <param name="eulerAngles"></param> /// <param name="parent"></param> /// <returns></returns> public static SpellieSpawnedObject Instantiate(SpellieSpawnedObject prefab, Vector3 position, Vector3 eulerAngles, Transform parent = null) { var o = Object.Instantiate(prefab, position, Quaternion.Euler(eulerAngles), parent); if (!o.useGlobalPosition) { o.spawnPos = o.transform.localPosition; } else { o.spawnPos = o.transform.position; } return(o); }
/// <inheritdoc /> public abstract Vector3 EvaluateMovement(SpellieSpawnedObject obj, float dt);
/// <summary> /// Defines prefab object to spawn /// </summary> /// <param name="obj"></param> /// <returns></returns> public PrefabObject WithObject(SpellieSpawnedObject obj) { prefab = obj; return(this); }
/// <inheritdoc /> public Vector3 EvaluateMovement(SpellieSpawnedObject obj, float dt) { return Instance.EvaluateMovement(obj, dt); }
/// <summary> /// Spawns object in world /// </summary> /// <param name="prefab"></param> /// <param name="parent"></param> /// <returns></returns> public static SpellieSpawnedObject Instantiate(SpellieSpawnedObject prefab, Transform parent = null) { return(Instantiate(prefab, Vector3.zero, Vector3.zero, parent)); }