コード例 #1
0
 protected override void OnEventTrigger()
 {
     #if UNITY_EDITOR
     Debug.Log("Crystal event " + gameObject.GetInstanceID());
     #endif
     PoolsManager.GetGameObjectsPool(EngineSettings.Crystals.CrystalsPoolTagName).Put(gameObject);
 }
コード例 #2
0
 private void Awake()
 {
     GemsOnBoard = new Gem[Columns, Rows];
     PoolsManager.RegisterPool(_gemPool);
     _gemPool.Prefab = _gemPrefab.gameObject;
     _gemPool.Initialize();
 }
コード例 #3
0
        private IEnumerator DestroyDelayed()
        {
            yield return(new WaitForSeconds(delayTime));

            particle.Stop();
            PoolsManager.GetGameObjectsPool(poolTagName).Put(gameObject);
        }
コード例 #4
0
    protected override IEnumerator Action()
    {
        yield return(new WaitForSecondsRealtime(
                         character.CharacterAnimator.GetCurrentAnimatorStateInfo(0).length + delayAfterAnimationIsFinished
                         ));

        actualBullet = PoolsManager.GetObjectFromPools(bulletPrefab).GetComponent <Bullet>();
        actualBullet.gameObject.SetActive(true);

        if (target != null)
        {
            RotateActualBulleTowardsDirection(GetTargetDirection());
        }
        else
        {
            RotateActualBulleTowardsDirection(GetTargetDirection(lastTargetPosition));
        }

        actualBullet.Launch(launchForce);
        actualBullet = null;

        PlaySfx();

        yield break;
    }
コード例 #5
0
 private void Awake()
 {
     if (Instance == null)
     {
         Instance = this;
     }
 }
コード例 #6
0
 /// <summary>
 /// Спауним префаб
 /// </summary>
 public void ShowPrefab()
 {
     if (prefab == null)
     {
         prefab = PoolsManager.Spawn(prefabName, new Vector3(position.x, position.y, 0), Quaternion.identity);
         prefab.transform.SetParent(GameObject.FindGameObjectWithTag("MapLayer").transform);//инкапсулировать
     }
 }
コード例 #7
0
ファイル: SpookyAttack.cs プロジェクト: mono26/Spooky
 private void CreateCurrentBullet()
 {
     if (Time.timeSinceLevelLoad > lastShoot + cooldown && actualBullet == null)
     {
         actualBullet = PoolsManager.GetObjectFromPools(bulletPrefab).GetComponent <SpookyBullet>();
         actualBullet.transform.position = shootPoint.position;
     }
 }
コード例 #8
0
 public void DestroyPlatform()
 {
     if (crystalRelated != null)
     {
         EventMonoBehaviour.TriggerObject(crystalRelated);
         crystalRelated = null;
     }
     PoolsManager.GetGameObjectsPool(EngineSettings.Platforms.PlatformsPoolTagName).Put(gameObject);
 }
コード例 #9
0
 protected virtual void OnCollisionEnter(Collision _collision)
 {
     foreach (string tag in damageComponent.DamageTags)
     {
         if (_collision.gameObject.CompareTag(tag))
         {
             VisualEffects.CreateVisualEffect(hitVfx, transform);
             PoolsManager.ReturnObjectToPools(this);
         }
     }
 }
コード例 #10
0
 private void Awake()
 {
     if (instance != null && instance != this)
     {
         Destroy(this.gameObject);
     }
     else
     {
         instance = this;
     }
 }
コード例 #11
0
        public void GenerateCrystal()
        {
            var crystalChance = Random.Range(0, 100);

            if (crystalChance <= EngineSettings.Crystals.SpawnRandomChance)
            {
                var crystalGameObject = PoolsManager.GetGameObjectsPool(EngineSettings.Crystals.CrystalsPoolTagName).Take();
                crystalGameObject.transform.position = transform.position + centerPosition;
                crystalGameObject.transform.parent   = transform;
                crystalRelated = crystalGameObject;
            }
        }
コード例 #12
0
        public void TakeCrystal()
        {
            if (crystalRelated != null)
            {
                var particle = PoolsManager.GetGameObjectsPool(EngineSettings.Crystals.CrystalParticlesTagName).Take();
                particle.transform.position = crystalRelated.transform.position + new Vector3(0f, 0.5f, 0f);
                particle.GetComponent <Particles.Particle>().PlayParticle();

                EventMonoBehaviour.TriggerObject(crystalRelated);
                crystalRelated = null;
                EventsManager.CallEvent(Events.AddCrystal);
            }
        }
コード例 #13
0
    private void Awake()
    {
        if (Instance == null)
        {
            Instance = this;
        }
        else if (Instance != this)
        {
            Destroy(gameObject);
        }
//        DontDestroyOnLoad(gameObject);
        InitPools();
    }
コード例 #14
0
ファイル: DemoScene.cs プロジェクト: zhuoweip/FrameScript
 private void OnGUI()
 {
     GUILayout.BeginVertical(GUI.skin.box, GUILayout.Width(200));
     foreach (var pool in poolObj.pools)
     {
         GUILayout.Label("Spawned: " + pool.spawnedCount + "/" + pool.totalCount);
     }
     if (GUILayout.Button("Despawn all"))
     {
         PoolsManager.DespawnAll();
     }
     GUILayout.EndVertical();
 }
コード例 #15
0
        private CargoEntity SpawnCargo()
        {
            var cargoObject = PoolsManager.GetGameObjectsPool(cargoList[randomCargoTypes[currentCargoIndex]].PoolName).Take();
            var cargoEntity = cargoObject.GetComponent <CargoEntity>();

            currentCargoIndex++;
            if (currentCargoIndex == cargoList.Count)
            {
                randomCargoTypes.Shuffle(random);
                currentCargoIndex = 0;
            }
            return(cargoEntity);
        }
コード例 #16
0
    private void Awake()
    {
        if (PoolsManager.instance == null)
        {
            PoolsManager.instance = this;
        }
        else if (PoolsManager.instance != this)
        {
            Destroy(PoolsManager.instance.gameObject);
            PoolsManager.instance = this;
        }

        InitPools();
    }
コード例 #17
0
ファイル: CorrosiveBullet.cs プロジェクト: mono26/Spooky
 protected IEnumerator CorrosiveEffect()
 {
     startTime = Time.timeSinceLevelLoad;
     while (Time.timeSinceLevelLoad < startTime + corrosiveDuration)
     {
         foreach (Character enemy in enemiesOnField)
         {
             var healthComponent = enemy.GetComponent <Health>();
             if (healthComponent)
             {
                 healthComponent.TakeDamage(corrosiveDamage);
             }
         }
         yield return(timeToDamage);
     }
     PoolsManager.ReturnObjectToPools(this);
 }
コード例 #18
0
ファイル: EscapeWithCorn.cs プロジェクト: mono26/Spooky
 protected override IEnumerator Action()
 {
     if (character != null)
     {
         EventManager.TriggerEvent <CharacterEvent>(new CharacterEvent(CharacterEventType.Release, character));
     }
     // Stop the action executiong because the animation has already end.
     if (poolableOBJ)
     {
         PoolsManager.ReturnObjectToPools(poolableOBJ);
     }
     else
     {
         character.gameObject.SetActive(false);
     }
     yield break;
 }
コード例 #19
0
    public IEnumerator Kill()
    {
        PoolableObject poolableCharacter = GetComponent <PoolableObject>();

        if (poolableCharacter != null)
        {
            yield return(CharacterDeath());

            PoolsManager.ReturnObjectToPools(poolableCharacter);
        }
        else if (poolableCharacter == null)
        {
            yield return(CharacterDeath());

            Destroy(gameObject);
        }

        VisualEffects.CreateVisualEffect(deathVfx, transform);
        yield break;
    }
コード例 #20
0
ファイル: WaveSpawner.cs プロジェクト: mono26/Spooky
    private void SpawnEnemy(string _enemyID)
    {
        Character tempEnemy = null;

        switch (_enemyID)
        {
        case "Stealer":
            tempEnemy = PoolsManager.GetObjectFromPools(enemiesPrefabs[0]).GetComponent <Character>();
            break;

        case "Attacker":
            tempEnemy = PoolsManager.GetObjectFromPools(enemiesPrefabs[1]).GetComponent <Character>();
            break;

        default:
            break;
        }
        tempEnemy.transform.position = LevelManager.Instance.GetRandomSpawnPoint().position;

        return;
    }
コード例 #21
0
    void Start()
    {
        Instance = this;

        pool = PoolManager.Pools.Create("MapPool");

        pool.group.localPosition = new Vector3(0, 0, 0);
        pool.group.localRotation = Quaternion.identity;

        for (int i = 0; i < prefabs.Length; i++)
        {
            PrefabPool prefabPool = new PrefabPool(prefabs[i]);
            prefabPool.preloadAmount  = counts[i];
            prefabPool.cullDespawned  = true;
            prefabPool.cullAbove      = counts[i];
            prefabPool.cullDelay      = 2;
            prefabPool.limitInstances = false;

            pool.CreatePrefabPool(prefabPool);
        }
    }
コード例 #22
0
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();

        EditorGUILayout.Separator();

        PoolsManager poolsManager = target as PoolsManager;

        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.LabelField("Pools", GUILayout.Width(EditorGUIUtility.currentViewWidth));
        EditorGUILayout.EndHorizontal();

        if (poolsManager.pools == null)
        {
            return;
        }

        var keys = poolsManager.pools.Keys;

        foreach (Type key in keys)
        {
            GameObjectPool objectPool;
            if (poolsManager.pools.TryGetValue(key, out objectPool))
            {
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField(key.Name, GUILayout.Width(EditorGUIUtility.currentViewWidth));
                EditorGUILayout.EndHorizontal();

                foreach (Spawnable spawnable in objectPool.pool)
                {
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.ObjectField(spawnable, typeof(Spawnable), false, GUILayout.Width(EditorGUIUtility.currentViewWidth));
                    EditorGUILayout.EndHorizontal();
                }
            }
        }
    }
コード例 #23
0
ファイル: PoolOfPools.cs プロジェクト: mono26/Spooky
 void Awake()
 {
     // Subscribe to the pool manager and create all the object collections.
     PoolsManager.SubscribePool(this);
     FillPool();
 }
コード例 #24
0
ファイル: DemoScene.cs プロジェクト: zhuoweip/FrameScript
 private void Start()
 {
     poolObj = PoolsManager.Instance;
     StartCoroutine(RandomSpawning());
 }
コード例 #25
0
ファイル: PoolOfPools.cs プロジェクト: mono26/Spooky
 // Usually occurs when the scene changes.
 void OnDestroy()
 {
     // Must do this because the manager is static and we don't want to keep old pools data.
     PoolsManager.UnSubscribePool(this);
 }
コード例 #26
0
ファイル: PoolSpawner.cs プロジェクト: zhuoweip/FrameScript
 private void Start()
 {
     PoolsManager.RegisterPool(pool);
     pool.Initialize();
     StartCoroutine(Spawn());
 }
コード例 #27
0
    /// <summary
    /// Start this instance.
    /// </summary>
    void Start()
    {
        CustomLogger.LogIt("--- Starting Logging ---");
        //Enable Background Running
        //Application.runInBackground = true;
        INIParser ini = new INIParser();

        // Open the save file. If the save file does not exist, INIParser automatically create
        // one
        ini.Open(Application.dataPath + "/MayaVerse.ini");
        if (ini.IsKeyExists("NetworkConfig", "ServerIP"))
        {
            ipAddress = ini.ReadValue("NetworkConfig", "ServerIP", "127.0.0.1");
            Debug.Log("ServerIP: " + ipAddress);
        }
        else
        {
            ini.WriteValue("NetworkConfig", "ServerIP", "127.0.0.1");
            Debug.Log("ServerIP: " + ipAddress);
        }
        if (ini.IsKeyExists("NetworkConfig", "ServerPort"))
        {
            portNumber = ini.ReadValue("NetworkConfig", "ServerPort", 4296);
            Debug.Log("ServerPort: " + portNumber.ToString());
        }
        else
        {
            ini.WriteValue("NetworkConfig", "ServerPort", 4296);
            Debug.Log("ServerPort: " + portNumber.ToString());
        }
        if (ini.IsKeyExists("AvatarConfig", "AvatarName"))
        {
            AvatarName = ini.ReadValue("AvatarConfig", "AvatarName", "Vytek75");
            Debug.Log("AvatarName: " + this.AvatarName);
        }
        else
        {
            ini.WriteValue("AvatarConfig", "AvatarName", "Vytek75");
            Debug.Log("AvatarName: " + this.AvatarName);
        }
        if (ini.IsKeyExists("AvatarConfig", "AvatarPassword"))
        {
            AvatarPassword = ini.ReadValue("AvatarConfig", "AvatarPassword", "test1234!");
            Debug.Log("AvatarPassword: "******"AvatarConfig", "AvatarPassword", "test1234!");
            Debug.Log("AvatarPassword: "******"Network idle.");
        StartClient(ipAddress);
        Debug.Log("Network Started.");
        //serverConn.SendBytes(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, SendOption.Reliable); //DEBUG
        SendMessageToServer((sbyte)CommandType.LOGIN);
        //Add PLAYER_JOIN MESSAGE (SENDTOOTHER) NOT HERE TIMER/THREAD PROBLEM
        //SendMessage(SendType.SENDTOOTHER, PacketId.PLAYER_JOIN, 0, this.UID, true, PlayerME.transform.position, PlayerME.transform.rotation);
        lastPosition = PlayerME.transform.position;
        lastRotation = PlayerME.transform.rotation;
        Debug.Log("Network Trasmitted.");
        //START POOL MANAGER FOR NETWORKOBJECTS
        Debug.Log("Pool Manager started.");
        poolObj = PoolsManager.Instance;
    }
コード例 #28
0
 public void DestroyObject()
 {
     transform.rotation = Quaternion.identity;
     PoolsManager.GetGameObjectsPool(cargoList[cargoEntityType].PoolName).Put(gameObject);
 }