public ExplodeObject SpawnShip(int race, int type, int expObjType) { string expObjTypeString = ""; if (expObjType == Cannon.leftBullet) { expObjTypeString = "leftShips"; } else if (expObjType == Cannon.rightBullet) { expObjTypeString = "rightShips"; } else if (expObjType == Cannon.allBullet) { expObjTypeString = "allShips"; } string poolPath = "Prefabs/Airships/" + expObjTypeString + "/race_" + race.ToString() + "/ship_" + type.ToString(); GameObject newObj = ObjectsPool.PullObject(poolPath); ExplodeObject expObj = newObj.GetComponent <ExplodeObject> (); expObj.ExplodeObjectAwake(); expObj.poolPath = poolPath; explodeObjects.Add(expObj); return(expObj); }
void SpawnMines() { int bulletsCount = 8; float bulletLerpPathPart = 1f / (float)bulletsCount; float bulletsLerpPosition = 0; float minX = Camera.main.ScreenToWorldPoint(SpawnerController.instance.bottomSpawner.leftTop.position).x; float maxX = Camera.main.ScreenToWorldPoint(SpawnerController.instance.bottomSpawner.rightTop.position).x; float positionY = Camera.main.ScreenToWorldPoint(SpawnerController.instance.bottomSpawner.rightTop.position).y; for (int i = 0; i < bulletsCount; i++) { mineTimer.SetTimer(ship.explodeObject.damageHealthParam.spawnTime2); string path = "Prefabs/Airships/bullets/race_" + ship.explodeObject.raceType.ToString() + "/mine"; GameObject bulletObj = ObjectsPool.PullObject(path); Transform spawnerTransform = ship.GetRandomSpawner(); ExplodeObject bulletExpObj = bulletObj.GetComponent <ExplodeObject> (); bulletExpObj.explodeTransform.position = spawnerTransform.position; bulletExpObj.poolPath = path; ShipsController.instance.explodeObjects.Add(bulletExpObj); bulletExpObj.DefaultAwake(); bulletExpObj.directionPosition = Vector3.Lerp(new Vector3(minX, positionY, 0), new Vector3(maxX, positionY, 0), bulletsLerpPosition); bulletExpObj.directionVector = bulletExpObj.directionPosition - bulletExpObj.explodeTransform.position; bulletExpObj.directionVector.Normalize(); bulletExpObj.SetAngle(); bulletsLerpPosition += bulletLerpPathPart; } }
public virtual void Clear() { if (_aniParent == null) { return; } if (_curColor != DefaultColor) { _renderer.color = DefaultColor; } if (_curScale != DefaultScale) { _trans.localScale = DefaultScale; } _spList = null; _renderer = null; _trans = null; if (_isDefaultPrefab) { _aniParent.SetActive(false); ObjectsPool.GetInstance().RestorePrefabToPool("AniParent", _aniParent); } _spList = null; _renderer = null; _trans = null; _aniTf = null; _aniObject = null; _aniParent = null; _completeCBFunc = null; _completeCBPara = null; _cache = null; }
public void BulletTriangleSpawn() { if (bulletTimer.TimeIsOver()) { string bulletPath = ""; if (cannonType == leftBullet) { bulletPath = PoolPath.cannonBulletTriangleLeft; } else if (cannonType == rightBullet) { bulletPath = PoolPath.cannonBulletTriangleRight; } GameObject newObj = ObjectsPool.PullObject(bulletPath); Vector3 bulletDirection = cannonBulletSpawner.position - cannonCore.position; bulletDirection.Normalize(); newObj.transform.position = cannonBulletSpawner.position; Bullet bullet = newObj.GetComponent <Bullet> (); bullet.poolPath = bulletPath; bullet.directionVector = bulletDirection; bullet.BulletAwake(); bullet.bulletType = cannonType; bulletTimer.SetTimer(damageHealthParam.spawnTime); /*string audioEffectPoolPath = "Prefabs/AudioEffects/Cannons/type_3"; * GameObject audioEffectObj = ObjectsPool.PullObject (audioEffectPoolPath); * AudioEffect audioEffect = audioEffectObj.GetComponent<AudioEffect> (); * audioEffect.poolPath = audioEffectPoolPath; * audioEffect.StartEffect ();*/ } }
public void ShipActive() { if (ship.explodeObject.isActive) { /*if (bulletTimer.TimeIsOver ()) { * SpawnBullets (); * }*/ ship.movementController.TranslateByPointsPath(); if (mineTimer.TimeIsOver()) { SpawnMines(); } if (torpedoTimer.TimeIsOver()) { torpedoTimer.SetTimer(ship.explodeObject.damageHealthParam.spawnTime3); string path = "Prefabs/Airships/bullets/race_" + ship.explodeObject.raceType.ToString() + "/torpedo"; GameObject bulletObj = ObjectsPool.PullObject(path); Transform spawnerTransform = ship.GetRandomSpawner(); ExplodeObject bulletExpObj = bulletObj.GetComponent <ExplodeObject> (); bulletExpObj.explodeTransform.position = spawnerTransform.position; bulletExpObj.poolPath = path; ShipsController.instance.explodeObjects.Add(bulletExpObj); bulletExpObj.DefaultAwake(); } } }
public void SetPrefab(string prefabName, LayerId layerId, bool isUsingCache = false) { _isUsingCache = isUsingCache; _effectGoName = prefabName; _effectGo = ObjectsPool.GetInstance().GetPrefabAtPool(_effectGoName); if (_effectGo == null) { GameObject protoType = ObjectsPool.GetInstance().GetProtoType(_effectGoName); if (protoType == null) { protoType = ResourceManager.GetInstance().GetPrefab("Prefab/Effects/Special", prefabName); protoType.name = _effectGoName; Transform tf = protoType.transform; tf.localPosition = new Vector3(2000, 2000, 0); UIManager.GetInstance().AddGoToLayer(protoType, layerId); ObjectsPool.GetInstance().AddProtoType(_effectGoName, protoType); } _effectGo = GameObject.Instantiate <GameObject>(protoType); UIManager.GetInstance().AddGoToLayer(_effectGo, layerId); } _effectTf = _effectGo.transform; _spRenderer = _effectTf.Find("Sprite").GetComponent <SpriteRenderer>(); // 获取sprite对象的原始尺寸 Sprite sp = _spRenderer.sprite; if (sp != null) { Vector3 size = sp.bounds.extents * 2 * sp.pixelsPerUnit; _originalWidth = size.x; _originalHeight = size.y; // 计算实际尺寸 _curWidth = _originalWidth; _curHeight = _originalHeight; } }
public void TestRecycleLater() { TimerManager timerManager = new TimerManager(); ObjectsPool <PoolDummy> pool = new ObjectsPool <PoolDummy>(timerManager); PoolDummy o1 = pool.NextObject(); PoolDummy o2 = pool.NextObject(); PoolDummy o3 = pool.NextObject(); Assert.AreEqual(pool.size, 0); pool.RecycleObjectLater(o1); pool.RecycleObjectLater(o2); pool.RecycleObjectLater(o3); Assert.AreEqual(pool.size, 0); timerManager.Update(0.016f); Assert.AreEqual(pool.size, 3); PoolDummy o4 = pool.NextObject(); PoolDummy o5 = pool.NextObject(); PoolDummy o6 = pool.NextObject(); Assert.AreEqual(pool.size, 0); Assert.AreEqual(o1, o4); Assert.AreEqual(o2, o5); Assert.AreEqual(o3, o6); }
/// <summary> /// The Shoot mechanic of the machine gun. /// </summary> public override void Use() { if (shootIsAllowed) { base.Use(); GameObject prefab = ChooseRandomPrefab(); GameObject g = ObjectsPool.Spawn(prefab, Vector3.zero, prefab.transform.rotation); Bullet bullet; if (g != null && g.GetComponent <MonoBehaviour>() is Bullet) { bullet = g.GetComponent <MonoBehaviour>() as Bullet; bullet.OwnerScript = this.OwnerScript; bullet.name = "TetrisBullet"; bullet.Damage = this.WeaponDamage; bullet.transform.position = transform.position; bullet.transform.rotation = Quaternion.LookRotation(transform.forward); //bullet.transform.Rotate(Vector3.forward, Random.Range(0, 360f)); float speed = bullet.BulletSpeed; // Random rotation Quaternion rotation = Quaternion.Euler(0, Random.Range(-weaponAccuracy, weaponAccuracy), 0); Vector3 v = transform.forward; Vector3 rotationVector = rotation * v; bullet.Shoot(rotationVector, speed); bulletRounds.Emit(1); } shootIsAllowed = false; StartCoroutine(WaitForNextShot()); } }
public void MakeDamage(float damage) { if (DamageMeter.instance.isActive) { DamageMeter.instance.damage += damage; } if (ShipsController.instance.doubleDamageActive) { damage = damage * 2f; } if (health <= damage) { if (isActive) { isActive = false; destroyWithPointsAction.Invoke(); RemoveFromExpObjList(); } } else { health -= damage; StartCoroutine(DamageAnimation()); string audioEffectPoolPath = "Prefabs/AudioEffects/hitEffect"; GameObject audioEffectObj = ObjectsPool.PullObject(audioEffectPoolPath); AudioEffect audioEffect = audioEffectObj.GetComponent <AudioEffect> (); audioEffect.poolPath = audioEffectPoolPath; audioEffect.StartEffect(); } }
IEnumerator drawLine() { yield return(new WaitForSeconds(0.01f)); //Draws the line if (thisTransform.position.x > (lastx + 0.02f)) { if (!GameController.isGameOver) { skipLine -= 1; } ObjectsPool.Spawn(Line, thisTransform.position, Quaternion.identity); lastx = thisTransform.position.x; } //If we not drawn enough lines, keep drawing. Else, pause for a bit then start drawing again if (skipLine > 0) { StartCoroutine(drawLine()); } else { yield return(new WaitForSeconds(0.45f)); StartCoroutine(drawLine()); skipLine = Random.Range(150, 250); } }
/// <summary> /// 创建自定义的simpleBullet /// <para>customizedName 自定义的子弹名称</para> /// <para>float posX</para> /// <para>float posY</para> /// <para>args...</para> /// </summary> /// <param name="luaState"></param> /// <returns></returns> public static int CreateCustomizedBullet(ILuaState luaState) { int numArgs = luaState.GetTop() - 3; string customizedName = luaState.ToString(-3 - numArgs); float posX = (float)luaState.ToNumber(-2 - numArgs); float posY = (float)luaState.ToNumber(-1 - numArgs); EnemySimpleBullet bullet = ObjectsPool.GetInstance().CreateBullet(BulletType.Enemy_Simple) as EnemySimpleBullet; bullet.SetPosition(posX, posY); // 设置自定义的数据 BCCustomizedTask bc = bullet.AddOrGetComponent <BCCustomizedTask>(); int funcRef = InterpreterManager.GetInstance().GetBulletInitFuncRef(customizedName); luaState.RawGetI(LuaDef.LUA_REGISTRYINDEX, funcRef); if (!luaState.IsFunction(-1)) { Logger.LogError("InitFuncRef of " + customizedName + " is not point to a function"); } luaState.PushLightUserData(bullet); for (int i = 0; i < numArgs; i++) { luaState.PushValue(-2 - numArgs); } luaState.Call(numArgs + 1, 0); luaState.PushLightUserData(bullet); return(1); }
public void BulletTrigger(ExplodeObject expObj) { if (Cannon.CheckSuitability(expObj.objectType, bullet.bulletType)) { expObj.MakeDamage(GetValueByState(bullet.damageHealthParams.damage, currentState)); currentState += 1; if (currentState == 3) { ObjectsPool.PushObject(bullet.poolPath, bullet.gameObject); } else { triangle1Transform.localScale = new Vector3( GetValueByState(triangle1Transform.localScale.x, currentState), GetValueByState(triangle1Transform.localScale.y, currentState), GetValueByState(triangle1Transform.localScale.z, currentState) ); triangle2Transform.localScale = new Vector3( GetValueByState(triangle2Transform.localScale.x, currentState), GetValueByState(triangle2Transform.localScale.y, currentState), GetValueByState(triangle2Transform.localScale.z, currentState) ); } } }
void Awake() { BulletPool = GetComponent <ObjectsPool>(); GetComponent <CircleCollider2D>().radius = shootRadius; ifShoot = false; moveSpeed = 5.0f; }
public async Task WhenFirstObjectIsLockedAndSecondCallIsPerformedThenSecondObjectIsCreated() { var instanceNumber = 0; var testPool = new ObjectsPool <PooledObject>( new PooledItemManager <PooledObject>( () => Task.FromResult(new PooledObject(++instanceNumber)), item => Task.CompletedTask), _poolsCleaner, TimeSpan.MaxValue, _testDateTimeProvider, new LoggerStub(), 2); var testObject = await testPool.Acquire(); Assert.NotNull(testObject); Assert.Equal(1, testObject.InstanceNumber); var secondTestObject = await testPool.Acquire(); Assert.NotNull(secondTestObject); Assert.Equal(2, secondTestObject.InstanceNumber); testPool.Release(secondTestObject); secondTestObject = await testPool.Acquire(); Assert.NotNull(secondTestObject); Assert.Equal(2, secondTestObject.InstanceNumber); }
void RelocatePosition() { string path = "Prefabs/Effects/warp"; GameObject expObj = ObjectsPool.PullObject(path); Effect exp = expObj.GetComponent <Effect>(); exp.poolPath = path; exp.transform.position = this.transform.position; exp.main.Play(); exp.DestoyOverTime(exp.main.main.duration); int random = Random.Range(0, 3); if (random == 0) { ship.explodeObject.explodeTransform.position = SpawnerController.instance.topElusiveSpawner.GetRandomPositionInWorld(); } else if (random == 1) { ship.explodeObject.explodeTransform.position = SpawnerController.instance.topLeftElusiveSpawner.GetRandomPositionInWorld(); } else if (random == 2) { ship.explodeObject.explodeTransform.position = SpawnerController.instance.topRightElusiveSpawner.GetRandomPositionInWorld(); } GeneratePath(); ship.movementController.PathByPointsRebind(); }
public void TestNextObject2() { TimerManager timerManager = new TimerManager(); ObjectsPool <PoolDummy> pool = new ObjectsPool <PoolDummy>(timerManager); PoolDummy o1 = pool.NextObject(); PoolDummy o2 = pool.NextObject(); PoolDummy o3 = pool.NextObject(); Assert.AreEqual(pool.size, 0); pool.RecycleObject(o1); pool.RecycleObject(o2); Assert.AreEqual(pool.size, 2); PoolDummy o4 = pool.NextObject(); PoolDummy o5 = pool.NextObject(); PoolDummy o6 = pool.NextObject(); Assert.AreEqual(pool.size, 0); Assert.AreEqual(o1, o4); Assert.AreEqual(o2, o5); Assert.AreNotEqual(o3, o6); }
public override void Clear() { ClearTasks(); if (_isUsingCache) { _effectTf.localScale = Vector3.one; _effectTf.localRotation = Quaternion.Euler(0, 0, 0); _spRenderer.color = new Color(1, 1, 1, 1); ObjectsPool.GetInstance().RestorePrefabToPool(_effectGoName, _effectGo); } else { GameObject.Destroy(_effectGo); } ObjectsPool.GetInstance().RestorePoolClassToPool <MovableObject>(_movableObject); _movableObject = null; _effectGo = null; _effectTf = null; _spRenderer = null; if (_attachmentsCount > 0) { _attachmentsList.Clear(); _attachmentsCount = 0; } _master = null; }
void Awake() { audioSources = new ObjectsPool <AudioSource>( () => Instantiate(audioSourcePrefab), source => source.gameObject.SetActive(true), source => source.gameObject.SetActive(false)); }
public void Clear() { int i; BulletBase bullet; // 己方子弹 for (i = 0; i < _playerBulletsCount; i++) { bullet = _playerBullets[i]; if (bullet != null) { bullet.Clear(); ObjectsPool.GetInstance().RestoreBullet(bullet); } } _playerBullets.Clear(); _playerBulletsCount = 0; // 敌方子弹 for (i = 0; i < _enemyBulletsCount; i++) { bullet = _enemyBullets[i]; if (bullet != null) { bullet.Clear(); ObjectsPool.GetInstance().RestoreBullet(bullet); } } _enemyBullets.Clear(); _enemyBulletsCount = 0; }
public void SetSoundEffect() { if (type != 7 && type != 8 && type != 9) { string audioEffectPoolPath = ""; if ( type == 1 || type == 2 || type == 3 || type == 6) { int expIndex = Random.Range(0, 5); audioEffectPoolPath = "Prefabs/AudioEffects/Explodes/exp" + expIndex.ToString(); } else if (type == 4 || type == 5) { int expIndex = Random.Range(0, 4); audioEffectPoolPath = "Prefabs/AudioEffects/Explodes/texp" + expIndex.ToString(); } GameObject audioEffectObj = ObjectsPool.PullObject(audioEffectPoolPath); AudioEffect audioEffect = audioEffectObj.GetComponent <AudioEffect> (); audioEffect.poolPath = audioEffectPoolPath; audioEffect.StartEffect(); } }
/// <summary> /// 创建EnemyLaser的原型 /// </summary> /// <param name="bulletId"></param> /// <returns></returns> private GameObject CreateEnemyLaserProtoType(string bulletId) { GameObject original = Resources.Load <GameObject>("BulletPrefab/Laser"); GameObject protoType = GameObject.Instantiate <GameObject>(original); // 读取配置 EnemyLinearLaserCfg cfg = GetLinearLaserCfgById(bulletId); string protoTypeName = "EnemyLaser" + bulletId; // 设置sprite以及material protoType.name = protoTypeName; // 激光发射源 SpriteRenderer sp = protoType.transform.Find("Source").GetComponent <SpriteRenderer>(); sp.sprite = ResourceManager.GetInstance().GetSprite(Consts.STGBulletsAtlasName, "Bullet" + cfg.laserSourceTexId); // 激光本体 sp = protoType.transform.Find("LaserSprite").GetComponent <SpriteRenderer>(); sp.sprite = ResourceManager.GetInstance().GetSprite(cfg.laserAtlasName, cfg.laserTexName); if (cfg.blendMode != eBlendMode.Normal) { sp.material = ResourceManager.GetInstance().GetSpriteMatByBlendMode(cfg.blendMode); } UIManager.GetInstance().AddGoToLayer(protoType, LayerId.EnemyBarrage); // 添加原型到缓存池中 ObjectsPool.GetInstance().AddProtoType(bulletId, protoType); #if LogCreateBulletProto Logger.Log("Create Bullet ProtoType " + protoTypeName); #endif return(protoType); }
private GameObject CreateEnemyCurveLaserProtoType(string bulletId) { GameObject original = Resources.Load <GameObject>("BulletPrefab/CurveLaser"); GameObject protoType = GameObject.Instantiate <GameObject>(original); // 读取配置 EnemyCurveLaserCfg cfg = GetCurveLaserCfgById(bulletId); string protoTypeName = "EnemyCurveLaser" + cfg.id; // 设置sprite以及material protoType.name = protoTypeName; // 设置曲线激光的材质 Transform laserObjectTf = protoType.transform.Find("LaserObject"); MeshRenderer meshRenderer = laserObjectTf.GetComponent <MeshRenderer>(); if (cfg.materialName != "CurveLaserMat000") { meshRenderer.material = Resources.Load <Material>("materials/" + cfg.materialName); } meshRenderer.sortingLayerName = "STG"; // 将原型放置在敌机弹幕层 UIManager.GetInstance().AddGoToLayer(protoType, LayerId.EnemyBarrage); // 添加原型到缓存池中 ObjectsPool.GetInstance().AddProtoType(bulletId, protoType); #if LogCreateBulletProto Logger.Log("Create CurveLaser ProtoType " + protoTypeName); #endif return(protoType); }
public override void Clear() { if ( _laserObj != null ) { _laser.size = Vector2.zero; if ( !_isOriginalColor ) { _laser.color = new Color(1, 1, 1, 1); } ObjectsPool.GetInstance().RestorePrefabToPool(_prefabName, _laserObj); } _laserObj = null; _objTrans = null; _laser = null; _laserTrans = null; if (_isSourceEnable) { _sourceTf.gameObject.SetActive(false); } _sourceTf = null; _sourceSp = null; ObjectsPool.GetInstance().RestorePoolClassToPool<MovableObject>(_movableObject); _movableObject = null; base.Clear(); }
/// <summary> /// 根据Id创建SimpleBullet原型 /// </summary> /// <param name="bulletId"></param> /// <returns></returns> private GameObject CreateEnemySimpleProtoType(string bulletId) { GameObject original = Resources.Load <GameObject>("BulletPrefab/SimpleBullet"); GameObject protoType = GameObject.Instantiate <GameObject>(original); EnemyBulletDefaultCfg cfg = BulletsManager.GetInstance().GetBulletDefaultCfgById(bulletId); string protoTypeName = "EnemySimpleBullet" + bulletId; // 设置sprite以及material protoType.name = protoTypeName; SpriteRenderer sp = protoType.transform.Find("BulletSprite").GetComponent <SpriteRenderer>(); if (cfg.aniFrameCount == 0) { sp.sprite = ResourceManager.GetInstance().GetSprite(Consts.STGBulletsAtlasName, cfg.spriteName); } else { sp.sprite = ResourceManager.GetInstance().GetSprite(Consts.STGBulletsAtlasName, cfg.spriteName + "_0"); } if (cfg.blendMode != eBlendMode.Normal) { sp.material = ResourceManager.GetInstance().GetSpriteMatByBlendMode(cfg.blendMode); } UIManager.GetInstance().AddGoToLayer(protoType, LayerId.EnemyBarrage); // 添加原型到缓存池中 ObjectsPool.GetInstance().AddProtoType(bulletId, protoType); #if LogCreateBulletProto Logger.Log("Create Bullet ProtoType " + protoTypeName); #endif return(protoType); }
public void Update() { // 符卡尚未开始 if (!_isSCTaskStarted) { for (int i = 0; i < _bossCount; i++) { InterpreterManager.GetInstance().AddPara(_bossList[i], LuaParaType.LightUserData); } InterpreterManager.GetInstance().CallTaskCoroutine(_scTask, _bossCount); _isSCTaskStarted = true; Logger.Log("Call SpellCard Task"); } // update else { _frameLeft--; object[] data = { _frameLeft }; CommandManager.GetInstance().RunCommand(CommandConsts.UpdateSpellCardTime, data); if (_scTask != null && !_scTask.isFinish) { InterpreterManager.GetInstance().CallTaskCoroutine(_scTask); if (_scTask.isFinish) { Logger.Log("SpellCard " + _scName + " task finish!"); ObjectsPool.GetInstance().RestorePoolClassToPool <Task>(_scTask); _scTask = null; } } } }
// Update is called once per frame void Update() { FPSController.GetInstance().SleepToNextFrame(); //if (_isFirst) //{ // _isFirst = false; // _lastFrameTime = TimeUtil.GetTimestamp(); //} //else //{ // long curFrameTime = TimeUtil.GetTimestamp(); // Logger.Log("FrameDuration = " + 1000f * (curFrameTime - _lastFrameTime) / 10000000); // _lastFrameTime = curFrameTime; //} _fsm.Update(); TimerManager.GetInstance().Update(); TweenManager.GetInstance().Update(); UIManager.GetInstance().Update(); SoundManager.GetInstance().Update(); // 销毁检测 if (Global.SysBusyValue < Consts.SysBusyValue) { ObjectsPool.GetInstance().CheckDestroyPoolObjects(); if (Global.SysBusyValue == 0) { ObjectsPool.GetInstance().DestroyProtoTypes(); } } }
public override void SetStyleById(string id) { EnemyCurveLaserCfg cfg = BulletsManager.GetInstance().GetCurveLaserCfgById(id); if (cfg == null) { Logger.LogError("Bullet ChangeStyle Fail! SysId " + id + " is not exist!"); return; } if (_bullet != null) { ObjectsPool.GetInstance().RestorePrefabToPool(_prefabName, _bullet); } _cfg = cfg; _bullet = BulletsManager.GetInstance().CreateBulletGameObject(BulletType.Enemy_CurveLaser, cfg.id); _prefabName = cfg.id; _trans = _bullet.transform; Transform laserTrans = _trans.Find("LaserObject"); _mesh = laserTrans.GetComponent <MeshFilter>().mesh; if (_cfg.aniCount == 0) { int index = cfg.colorIndex; _textureIndex = 16 - index; _vUnit = 1f / cfg.colorsCount; _startV = _vUnit * (_textureIndex - 1); _endV = _vUnit * _textureIndex; } _isPosModified = true; }
public void SetRightCannon(int id) { if (rightCannon != null) { ObjectsPool.PushObject(rightCannon.poolPath, rightCannon.gameObject); } string poolPath = "Prefabs/Cannons/type_" + id.ToString() + "/right"; GameObject cannon = ObjectsPool.PullObject(poolPath); rightCannon = cannon.GetComponent <Cannon> (); rightCannon.poolPath = poolPath; cannon.transform.position = rightCannonTransform.position; string cannonKey = Cannon.rightBullet.ToString() + "_" + id.ToString(); LevelController.instance.currentRightButtonKey = cannonKey; if (LevelController.instance.cannonButtonsStatus.ContainsKey(cannonKey)) { LevelController.instance.cannonButtonsStatus [cannonKey] = true; } else { LevelController.instance.cannonButtonsStatus.Add(cannonKey, true); } }
public void SetInactive() { LevelController.instance.levelActive = false; isDead = true; ShipSpawner.instance.StopSpawn(); /*foreach (ExplodeObject obj in ShipsController.instance.explodeObjects) { * obj.DefaultDestroy (); * }*/ Dictionary <int, ExplodeObject> expObjDict = new Dictionary <int, ExplodeObject> (); for (int i = 0; i < ShipsController.instance.explodeObjects.Count; i++) { expObjDict.Add(i, ShipsController.instance.explodeObjects[i]); } for (int i = 0; i < expObjDict.Count; i++) { expObjDict [i].DefaultDestroy(); } //ShipsController.instance.explodeObjects.Clear (); List <Bullet> bulletObjects = new List <Bullet> (FindObjectsOfType <Bullet> ()); foreach (Bullet bullObj in bulletObjects) { ObjectsPool.PushObject(bullObj.poolPath, bullObj.gameObject); } AudioController.instance.currentSong.Stop(); //Advertising.TryShowInterstitial (); }
public override void Clear() { ObjectsPool.GetInstance().RestorePrefabToPool("BulletEliminateEffect1", _effectGo); _effectGo = null; _effectTf = null; _spRenderer = null; }
/// <summary> /// Initilize service, creating threads for socket and start listening /// </summary> public void Initialize() { _connectionsPool = new ObjectsPool<ClientConnection>(_maxConnectionsCount); EndPoint endPoint = new IPEndPoint(IPAddress.Parse(_host), _port); _listeningSocket.Bind(endPoint); _listeningSocket.Listen(40); for (int i = 0; i < 10; i++) { var th = new Thread(() => _listeningSocket.BeginAccept(AcceptCallback, null)); th.Start(); _listeningThreads.Add(th); } Debug.Print($"Tcp server started at {_host}:{_port}"); }
private void Start() { poolObj = ObjectsPool.Instance; StartCoroutine(RandomSpawning()); }
// Use this for initialization void Start () { shipInfo = GetComponent<ShipCombatInfo>(); bulletsPool = new ObjectsPool(bulletPrefab, transform, true); waitBetweenShoots = new WaitForSeconds(shipInfo.TimeBetweenShoots); StartCoroutine(ShootCountdown()); // iniciar coroutina de disparo }