/// <summary> /// Master program /// </summary> public void CreateActorPool(ActorPoolData data) { if (data != null) { InitialiseActorPool(data); } else { Debug.LogError("Invalid ActorPoolData (Null)"); } }
/// <summary> /// Creates an actorPool and populates with ActorDraft.SO's. /// Note: data checked by parent method /// </summary> private void InitialiseActorPool(ActorPoolData data) { string pathPool, pathDraft; // // - - - ActorPool // ActorPool poolAsset = ScriptableObject.CreateInstance <ActorPool>(); //path with unique asset name for each pathPool = string.Format("Assets/SO/Tools/ActorPools/{0}.asset", data.poolName); //how many actors required to populate pool int numToCreate = numOfActors; poolAsset.nameSet = data.nameSet; poolAsset.tag = data.tag; poolAsset.side = data.side; poolAsset.author = data.author; poolAsset.dateCreated = data.dateCreated; // // - - - ActorDrafts // for (int i = 0; i < numToCreate; i++) { //create SO object ActorDraft actorAsset = ScriptableObject.CreateInstance <ActorDraft>(); //overwrite default data UpdateActorDraft(poolAsset, actorAsset, i); //path with unique asset name for each (poolName + counter) pathDraft = string.Format("Assets/SO/Tools/ActorDrafts/{0}{1}.asset", data.poolName, i); //delete any existing asset at the same location (if same named asset presnet, new asset won't overwrite) AssetDatabase.DeleteAsset(pathDraft); //Add asset to file and give it a name ('actor') AssetDatabase.CreateAsset(actorAsset, pathDraft); } //delete any existing asset at the same location (if same named asset presnet, new asset won't overwrite) AssetDatabase.DeleteAsset(pathPool); //initialise pool AssetDatabase.CreateAsset(poolAsset, pathPool); //Save assets to disk AssetDatabase.SaveAssets(); }