public LevelObjectView NewObject( LevelObjectView objectProto, Vector3 spawnPoint, int areaIndex) { // DebugUtils.Log("LevelView.NewObject()"); var poolable = objectProto.GetComponent <PoolableView>(); LevelObjectView obj = null; if (poolable == null) { obj = instantiator.InstantiatePrefabForComponent <LevelObjectView>( objectProto.gameObject); } else { obj = poolStorage.Take(poolable.PoolId) .GetComponent <LevelObjectView>(); } var position = new Vector3( spawnPoint.x, spawnPoint.y, spawnPoint.z + areaIndex * areaDepth); obj.transform.position = position; obj.transform.parent = transform; return(obj); }
private PlanetController GeneratePlanet([NotNull] PlanetController planetPrefab, Vector3 position, [NotNull] Transform parent) { // todo: use Extenject Factory var planet = _instantiator.InstantiatePrefabForComponent <PlanetController>(planetPrefab, position, Quaternion.identity, parent); return(planet); }
public static T InstantiatePrefabForComponent <T>( this IInstantiator instantiator, T prefab ) where T : Component { return(instantiator.InstantiatePrefabForComponent <T>( prefab.gameObject )); }
public void Spawn(Vector3 position) { var geometryObjectName = _geometryObjectsJson.RandomName; var clickColorData = _geometryObjectData.FindClickColorData(geometryObjectName); var geometryObjectView = _instantiator.InstantiatePrefabForComponent <IGeometryObjectView>(_geometryObjectPrefabs[geometryObjectName]); var geometryObjectModel = new GeometryObjectModel(clickColorData); var geometryObjectController = new GeometryObjectController(geometryObjectModel, geometryObjectView); geometryObjectModel.Position = position; }
private T Instantiate <T>(IInstantiator instantiator, GameObject prefab, Vector3 position, Quaternion rotation, Transform parent = null) { T component = default; if (prefab != null && instantiator != null) { component = instantiator.InstantiatePrefabForComponent <T>(prefab, position, rotation, parent); } return(component); }
private TPrefab InstantiatePrefab <TPrefab>(GameObject prefab, Transform location, bool asAnchor) where TPrefab : Component { var prefabActive = prefab.activeSelf; prefab.SetActive(false); var instance = asAnchor ? _instantiator.InstantiatePrefabForComponent <TPrefab>(prefab, location.position, location.rotation, location.parent) : _instantiator.InstantiatePrefabForComponent <TPrefab>(prefab, location); prefab.SetActive(prefabActive); if (instance == null) { throw new InvalidOperationException($"No {typeof(TPrefab).Name} component on prefab root GameObject"); } PrepareInstance(instance); return(instance); }
public PoolableView Get() { var instance = instantiator.InstantiatePrefabForComponent <PoolableView>( proto.gameObject); if (instance.DeactivateOnReturn) { GameObject instanceObject = instance.gameObject; instance.ActivateOnTake = instanceObject.activeSelf; instanceObject.SetActive(false); } if (parent != null) { instance.transform.SetParent(parent, !instance.IsUI); } return(instance); }
public void OnConstruct() { // DebugUtils.Log("PlayerView.OnConstruct()"); float halfWidth = Collider.bounds.extents.x; minX = levelMinX + halfWidth; maxX = levelMaxX - halfWidth; health = MaxHealth; cameraStartPosition = Camera.transform.localPosition; creationTime = Time.time; speedChangeDelayWaiter = new WaitForSeconds(speedChangeDelay); speedCheckRateWaiter = new WaitForSeconds(speedCheckRate); FrontSpeed = BaseFrontSpeed; SideSpeed = BaseSideSpeed; RefuseChance = BaseRefuseChance; RefuseDuration = BaseRefuseDuration; CriticalScoreChance = BaseCriticalScoreChance; CriticalScoreFactor = BaseCriticalScoreFactor; DamageAbsorbChance = BaseDamageAbsorbChance; DamageAbsorbFactor = BaseDamageAbsorbFactor; HUD = instantiator.InstantiatePrefabForComponent <HUDView>( hudProto.gameObject); eventBus.Fire((int)Events.PlayerConstruct, new Evt(this)); }