private void InstantiateMapObject(MapObjectInfo moi) { //Debug.Log("InstantiateMapObject " + moi.ObjectName); if (moi.SceneObject == null) { PrefabTemplate templ = PrefabPool.Instance.ShowTemplate(moi.ObjectName).GetComponent <PrefabTemplate>(); if (templ != null && templ.isActive) { if (ShouldSpawnActiveObject(moi)) { GameObject createdObject = ActiveObjectsManager.Instance.CreateAvtiveObject(moi.ObjectName, moi.ObjectPosition + EndlessWorldModuleManager.Instance.GetBiomPosition(moi.TheBiom)); createdObject.SetActive(true); } moi.MyGroup.ObjectList.Remove(moi); } else { moi.SceneObject = PrefabPool.Instance.GetPrefab(moi.ObjectName); moi.SceneObject.transform.parent = moi.TheBiom.TheMainGO.transform; moi.SceneObject.transform.localPosition = moi.ObjectPosition; moi.SceneObject.transform.localRotation = moi.ObjectRotation; moi.SceneObject.transform.localScale = moi.ObjectScale; moi.SceneObject.SetActive(true); } } }
//when PrefabTemplate is instanced public void OnConfigureObjectRequest(PrefabTemplate obj) { foreach (Component module in _gameModules.Values) { (module as IEngineModule).OnConfigureObjectRequest(obj); } }
public void SetTemplate(PrefabTemplate template) { this.template = template; }