public static void Init(){
		if(instance!=null) return;
		
		GameObject obj=new GameObject();
		obj.name="ObjectPoolManager";
		instance=obj.AddComponent<ObjectPoolManager>();
	}
Пример #2
0
 public void Update()
 {
     if (delay.Check())
     {
         ObjectPoolManager.GetObjectPool(gameObject).PushItem(gameObject);
     }
     else
     {
         gameObject.transform.position += Vector3.up * speedY;
     }
 }
Пример #3
0
 void Awake()
 {
     if (mObjectPoolManagerInstance == null)
     {
         mObjectPoolManagerInstance = this;
     }
     else if (mObjectPoolManagerInstance != this)
     {
         Destroy(gameObject);
     }
 }
Пример #4
0
 private void Awake()
 {
     if (Instance != this && Instance != null)
     {
         Destroy(this.gameObject);
     }
     else
     {
         Instance = this;
     }
 }
Пример #5
0
    IEnumerator GenerateObstacles()
    {
        yield return(new WaitForSeconds(spawnDelay));

        if (isActive)
        {
            ObjectPoolManager.CreateInstance(obstaclePrefabs[Random.Range(0, obstaclePrefabs.Length)], transform.position);
            ResetSpawnDelay();
        }
        StartCoroutine(GenerateObstacles());
    }
Пример #6
0
    void Hit(int i)
    {
        //~ missile[i].localPosition=defaultPos[i];
        hit += 1;
        ObjectPoolManager.Spawn(hitEffect, missile[i].position, Quaternion.identity);

        if (hit == missile.Length)
        {
            StartCoroutine(DeactivateSelf());
        }
    }
Пример #7
0
 private void Awake()
 {
     if (instance == null)
     {
         instance = this;
     }
     else
     {
         Destroy(this.gameObject);
     }
 }
Пример #8
0
 IEnumerator VisibleCoroutine()
 {
     guideObject = ObjectPoolManager.GetObjectPool(guidePrefab).PopItem();
     while (isEnabled)
     {
         guideObject.transform.position = CameraUtil.GetMouseWorldPosition(Camera.main);
         yield return(null);
     }
     ObjectPoolManager.GetObjectPool(guideObject).PushItem(guideObject);
     yield return(null);
 }
Пример #9
0
        public static LoadedUnityItem Instantiate(Type type, string name, int size, string additonalDesc = null)
        {
            LoadedUnityItem loadedUnityItem = ObjectPoolManager.Acquire <LoadedUnityItem>();

            loadedUnityItem.objectType  = type;
            loadedUnityItem.objectName  = name;
            loadedUnityItem.hitCount    = 0;
            loadedUnityItem.objectBytes = size;
            loadedUnityItem.subDesc     = additonalDesc;
            return(loadedUnityItem);
        }
Пример #10
0
 private void Awake()
 {
     if (_instance != null && _instance != this)
     {
         Destroy(this);
     }
     else
     {
         _instance = this;
     }
 }
Пример #11
0
 public void Awake()
 {
     //Create singleton
     if (singleton == null)
     {
         singleton = this;
     }
     else
     {
         Destroy(this);
     }
 }
Пример #12
0
        public void Init(IEnumerable <IInputWrapper> inputs, IEnumerable <ScrollableMenuItem> items)
        {
            foreach (var item in items)
            {
                var view = ObjectPoolManager.Create <ScrollableMenuItemView>(GamePrefabs.Instance.ScrollableMenuItemViewPrefab, parent: layoutRectTransform_.gameObject);
                view.Init(item, onCallbackInvoked: Hide);
            }

            selectionView_ = ObjectPoolManager.CreateView <ElementSelectionView>(GamePrefabs.Instance.ElementSelectionViewPrefab);
            selectionView_.OnSelectableHover += HandleNewSelection;
            selectionView_.Init(inputs, layoutRectTransform_.gameObject);
        }
Пример #13
0
    private IEnumerator clickTimer;                                                         // 클릭 타이머 코루틴


    // 초기화
    private void Awake()
    {
        createdBlockList = new List <GameObject>();

        ResourceLoader.Load("Effects/Block");

        ObjectPoolManager.Create("BlockCreated", ResourceLoader.Get("BlockCreated"), 10, transform);
        ObjectPoolManager.Create("CountExcess", ResourceLoader.Get("CountExcess"), 20, transform);
        ObjectPoolManager.Create("SpaceNarrower", ResourceLoader.Get("SpaceNarrower"), 20, transform);

        clickTimer = ClickTimer();
    }
Пример #14
0
        public AudioSource GetSource(string template)
        {
            var prefab = GetTemplate(template);

            Assert.IsNotNull(prefab,
                             string.Format("<AudioSource> with name '{0}' not exist!", template));

            var go = ObjectPoolManager.AddChild(gameObject, prefab);

            go.SetActive(true);
            return(go.GetComponent <AudioSource>());
        }
Пример #15
0
 void Update()
 {
     if (!ps.IsAlive())
     {
         isDead = true;
     }
     if (isDead)
     {
         ps.Simulate(0.0f, true, true);
         ObjectPoolManager.Recycle(gameObject);
     }
 }
Пример #16
0
    public void Attack(GameObject _target)
    {
        SoundManager.Instance().Play("Arrow_Launch");

        GameObject go = ObjectPoolManager.Instance().SpawnObject("Missile", launchPos.position, Quaternion.identity);

        go.GetComponent <Bullet>().player = player;

        float fixedDamage = damage * attackCD;

        go.GetComponent <Bullet>().Launch(_target, fixedDamage);
    }
Пример #17
0
 // Use this for initialization
 void Start()
 {
     //オブジェクトプール
     pool_Manager = ObjectPoolManager.Instance;
     pool_Manager.Create_New_Pool(scales_Bullet, 10);
     pool_Manager.Create_New_Pool(green_Rice_Bullet, 40);
     pool_Manager.Create_New_Pool(red_Bullet, 2);
     //取得
     player      = GameObject.FindWithTag("PlayerTag");
     _shoot      = GetComponent <ShootFunction>();
     _bullet_Acc = GetComponent <BulletAccelerator>();
 }
Пример #18
0
        public static void Show(InputDevice inputDevice, IEnumerable <ScrollableMenuItem> items)
        {
            if (popup_ != null)
            {
                CleanupPopup();
            }

            popup_ = ObjectPoolManager.CreateView <ScrollableMenu>(GamePrefabs.Instance.ScrollableMenuPopupPrefab);
            popup_.Init(new IInputWrapper[] { new InputWrapperDevice(inputDevice) }, items);
            popup_.OnRecycled += HandlePopupRecycled;
            OnShown.Invoke();
        }
Пример #19
0
 private void Awake()
 {
     if (instance == null)
     {
         instance = this;
         DontDestroyOnLoad(gameObject);
     }
     else
     {
         Destroy(gameObject);
     }
 }
Пример #20
0
    private void Start()
    {
        if (_objectpoolManager == null)
        {
            _objectpoolManager = ObjectPoolManager.instance;
        }

        SoundManager.instance.PlaySound(SoundManager.AudioType.BGM, "BGM_InGame");

        waveCoroutine = MonsterWaveCoroutine();
        StartCoroutine(waveCoroutine);
    }
Пример #21
0
    [SerializeField] private Dictionary <string, Pool> pools; // all pools of objects
    //private Dictionary<string, Queue<GameObject>> poolDict;

    private void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }

        //if (instance != this)
        //{
        //    Destroy(this);
        //}
    }
Пример #22
0
    // public AudioClip DamageClip;

    private void Awake()
    {
        navMeshAgent      = GetComponent <NavMeshAgent>();
        animator          = GetComponent <Animator>();
        attackSystem      = GetComponent <AttackSystem>();
        objectPoolManager = GetComponent <ObjectPoolManager>();
        getHitComponent   = GetComponent <GetHitComponent>();
        particleManager   = GetComponent <ParticleManager>();
        capsuleCollider   = GetComponent <CapsuleCollider>();
        enemyInfo         = enemyData.enemyInfo;
        CreatAttackDisInfoCollection();
    }
    public static void Init()
    {
        if (instance != null)
        {
            return;
        }

        GameObject obj = new GameObject();

        obj.name = "ObjectPoolManager";
        instance = obj.AddComponent <ObjectPoolManager>();
    }
Пример #24
0
        //called from ActivateAbility, cast the ability, visual effect and actual effect goes here
        public void CastAbility(Ability ab, Vector3 pos, Unit unit = null)
        {
            if (ab.effectObj != null)
            {
                ObjectPoolManager.Spawn(ab.effectObj, pos, Quaternion.identity);
            }

            if (ab.useDefaultEffect)
            {
                StartCoroutine(ApplyAbilityEffect(ab, pos, unit));
            }
        }
Пример #25
0
        public void LoadFile()
        {
            ObjectPoolManager.DestroySingleton();
            LocalizationManager.DestroySingleton();

            JsonUtils.InitJsonResolver(StandardResolver.Default);

            ObjectPoolManager.CreateSingleton();
            LocalizationManager.CreateSingleton();
            try
            {
                LocalizationManager.Instance.InitSetting("zh-CN");

                // 正常文本
                var normalString = LocalizationManager.Instance.GetString("test_normal");
                Assert.AreEqual("普通文本", normalString);

                // 不存在的文本
                var defaultString = LocalizationManager.Instance.GetString("NotExistRecord");
                Assert.AreEqual("{L10N:NotExistRecord}", defaultString);

                // 术语
                var termString = LocalizationManager.Instance.GetString("test_with_term1");
                Assert.AreEqual("我是术语", termString);

                // 不存在的术语
                var defaultTermString = LocalizationManager.Instance.GetString("test_with_term2");
                Assert.AreEqual("我是{L10N:不存在的术语}", defaultTermString);

                // 转义测试
                var escapeString = LocalizationManager.Instance.GetString("test_escape");
                Assert.AreEqual("我是#术语#术语##", escapeString);

                // 递归测试
                var recursion1String = LocalizationManager.Instance.GetString("test_recursion");
                Assert.AreEqual("自递归测试自递归测试自递归测试自递归测试自递归测试自递归测试自递归测试自递归测试自递归测试自递归测试自递归测试#test_recursion#", recursion1String);
                var recursion2String = LocalizationManager.Instance.GetString("test_recursion1");
                Assert.AreEqual("递归测试1递归测试2递归测试1递归测试2递归测试1递归测试2递归测试1递归测试2递归测试1递归测试2递归测试1#test_recursion2#", recursion2String);

                // 参数测试
                var paramString1 = LocalizationManager.Instance.GetString("test_parameter", 123, 456);
                Assert.AreEqual("参数测试123,456", paramString1);
                var paramString2 = LocalizationManager.Instance.GetString("test_parameter", 123, 456, 789);
                Assert.AreEqual("参数测试123,456", paramString2);
                var paramString3 = LocalizationManager.Instance.GetString("test_parameter", 123);
                Assert.AreEqual("参数测试{0},{1}", paramString3);
            }
            finally
            {
                LocalizationManager.DestroySingleton();
                ObjectPoolManager.DestroySingleton();
            }
        }
Пример #26
0
        private void PauseWith(Player player)
        {
            MonoBehaviourWrapper.OnUpdate -= HandleUpdate;

            view_ = ObjectPoolManager.CreateView <InGamePauseView>(GamePrefabs.Instance.InGamePauseViewPrefab);
            view_.Init(player, Resume, skipCallback_, restartCallback_);

            foreach (BattlePlayer battlePlayer in UnityEngine.Object.FindObjectsOfType <BattlePlayer>())
            {
                battlePlayer.InputController.DisableInput(BattlePlayerInputController.PriorityKey.Paused);
            }
        }
Пример #27
0
    private void Start()
    {
        //创建对象池
        ObjectPoolManager m_objectPoolManager = FrameworkEntry.Instance.GetManager <ObjectPoolManager>();

        m_testPool = m_objectPoolManager.CreateObjectPool <TestObject>();

        //注册对象
        TestObject testObject = new TestObject("hello ObjectPool", "test1");

        m_testPool.Register(testObject, false);
    }
Пример #28
0
        public static bool Startup()
        {
            BulletPool_.Add(BulletType.Track, ObjectPoolManager.CreateGameObjectPool("TrackBullet", AssetManager.CreatePrefabSync(new AssetUri("Prefabs/Bullet/Bullet.prefab"))));
            BulletPool_.Add(BulletType.Laser, ObjectPoolManager.CreateGameObjectPool("LaserBullet", AssetManager.CreatePrefabSync(new AssetUri("Prefabs/Bullet/BulletLaser.prefab"))));
            BulletPool_.Add(BulletType.Bomb, ObjectPoolManager.CreateGameObjectPool("BombBullet", AssetManager.CreatePrefabSync(new AssetUri("Prefabs/Bullet/BulletBomb.prefab"))));
            BulletPool_.Add(BulletType.Back, ObjectPoolManager.CreateGameObjectPool("BackBullet", AssetManager.CreatePrefabSync(new AssetUri("Prefabs/Bullet/BulletBack.prefab"))));
            BulletPool_.Add(BulletType.Arrow, ObjectPoolManager.CreateGameObjectPool("ArrowBullet", AssetManager.CreatePrefabSync(new AssetUri("Prefabs/Bullet/BulletArrow.prefab"))));

            BulletList_.Clear();

            return(true);
        }
Пример #29
0
    public void Dead()
    {
        GameControl.GainResource(value);

        if (deadEffect != null)
        {
            ObjectPoolManager.Spawn(deadEffect, thisT.position, Quaternion.identity);
        }
        float duration = PlayDead();

        StartCoroutine(Unspawn(duration));
    }
Пример #30
0
    IEnumerator CreateFragmentsCoroutine()
    {
        Vector2 position = missileRigidbody.position;

        for (int i = 0; i < numFragments; i++)
        {
            GameObject     fragments     = ObjectPoolManager.GetObjectPool(fragmentsPrefab).PopItem();
            GeneralMissile scriptMissile = fragments.GetComponent <GeneralMissile>();
            scriptMissile.Init(position, new Vector2(Random.Range(-1f, 1f), Random.Range(-1f, 1f)));
            yield return(new WaitForSeconds(0.1f));
        }
    }
 private void MakeSingleton()
 {
     if (_instance != null)
     {
         DestroyImmediate(gameObject);
     }
     else
     {
         _instance = this;
         DontDestroyOnLoad(gameObject);
     }
 }
Пример #32
0
    void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }

        else if (instance != this)
        {
            Destroy(gameObject);
        }
    }
    public void OnEnable()
    {
        GameObject currentTargetObject = GameObject.Find(target.name);
        if (currentTargetObject != null)
            m_currentPoolManager = currentTargetObject.GetComponent<ObjectPoolManager>();

        m_objectCreateDelayTime = serializedObject.FindProperty("TimeDelayBetweenCreatingNewObjects");
        m_objectCFinishedDelayTime = serializedObject.FindProperty("TimeDelayToSendActionNotification");
        if (m_currentPoolManager != null)
        {
            m_objectPoolList = m_currentPoolManager.ObjectPoolList;
            m_objectCountList = m_currentPoolManager.ObjectCountList;
        }
    }
Пример #34
0
    void Start()
    {
        m_Instance = this;

        if (GameObject.FindObjectsOfType(this.GetType()).Length > 1)
        {
            Debug.LogError("Can't have more than one Object Pool Manager in a scene.");
        }

        for(int i = 0; i < ObjectPoolStartAmounts.Count; ++i)
        {
            m_ObjectPoolDictionary.Add(ObjectPoolNames[i], null);
            m_ObjectPoolDictionary[ObjectPoolNames[i]] = new GameObjectPool();

            for (int j = 0; j < ObjectsToPool[i].InnerList.Count; ++j)
            {
                m_ObjectPoolDictionary[ObjectPoolNames[i]].AddSource(ObjectsToPool[i].InnerList[j], ObjectPoolStartAmounts[i].InnerList[j]);
            }
        }
    }
Пример #35
0
    void Start()
    {
        if (isServer)
        {
            m_Instance = this;

            if (GameObject.FindGameObjectsWithTag(ConstParams.ObjectPoolManager).Length > 1)
            {
                Debug.LogError("Can't have more than one Object Pool Manager in a scene.");
            }

            for(int i = 0; i < ObjectPoolStartAmounts.Count; ++i)
            {
                m_ObjectPoolDictionary.Add(ObjectPoolNames[i], null);

                for (int j = 0; j < ObjectsToPool[i].InnerList.Count; ++j)
                {
                    m_ObjectPoolDictionary[ObjectPoolNames[i]] = new GameObjectPool(ObjectsToPool[i].InnerList[j], ObjectPoolStartAmounts[i].InnerList[j]);
                }
            }
        }
    }
Пример #36
0
	void OnApplicationQuit()
	{
		// release reference on exit
		instance = null;
	}
Пример #37
0
 void Awake()
 {
     if(instance!=null) return;
     instance=this;
 }
Пример #38
0
	static public void Init(){
		ClearAll();
		
		currentIDCount=0;
		
		GameObject obj=new GameObject();
		obj.name="ObjectPoolManager";
		
		opm=obj.AddComponent<ObjectPoolManager>();
		
		thisT=obj.transform;
	}
Пример #39
0
        public void Dispose()
        {
            if (_objTextureMap != null) {
                foreach (Texture2D tex in _objTextureMap.Values)
                    tex.Dispose();
            }

            if (_manager != null) {
                foreach (ObjectPool pool in _manager.Pools)
                    pool.Objects.CollectionChanged -= ObjectCollectionChanged;

                _manager.Pools.CollectionChanged -= ObjectPoolCollectionChanged;
            }

            _objTextureMap = null;
            _manager = null;
        }
Пример #40
0
        public ObjectTextureService(ObjectPoolManager manager, IGraphicsDeviceService deviceService)
        {
            _manager = manager;
            _deviceService = deviceService;

            Initialize();
        }