예제 #1
0
 public bool SpawnIdContain(SpawnID spawnid)
 {
     if (spawnid == null)
     {
         Debug.Log(spawnid);
         return(false);
     }
     return(m_object_list.ContainsKey(spawnid.identification));
 }
예제 #2
0
        public void RecoverySpawn(SpawnID spawnid)
        {
            if (!SpawnIdContain(spawnid))
            {
                Debug.LogWarning("Not RegisterSpawn GameObject");
                return;
            }

            int index = m_object_list[spawnid.identification].Count;

            spawnid.gameObject.transform.position = new Vector3(index, 0f, 0f);
            m_object_list[spawnid.identification].Enqueue(spawnid.gameObject);

            if (spawnid.gameObject.activeInHierarchy)
            {
                spawnid.transform.SetParent(m_object_grounp[spawnid.identification].transform);
            }
        }
예제 #3
0
        /// <summary>
        /// 注册生产对象
        /// </summary>
        /// <param name="obj"></param>
        public void RegisterSpawn(SpawnID spawnid)
        {
            spawnid.identification = spawnid.GetHashCode();

            if (!m_object_list.ContainsKey(spawnid.identification))
            {
                Queue <GameObject> spawn_queue = new Queue <GameObject>();

                m_object_list.Add(spawnid.identification, spawn_queue);
            }
            if (!m_object_grounp.ContainsKey(spawnid.identification))
            {
                GameObject go = new GameObject(spawnid.identification.ToString());
                go.transform.SetParent(transform);
                go.transform.localPosition = Vector3.down * m_object_grounp.Count;
                m_object_grounp.Add(spawnid.identification, go);
            }

            if (!m_ISpawnID_list.ContainsKey(spawnid.identification))
            {
                m_ISpawnID_list.Add(spawnid.identification, spawnid.Type);
            }
        }
예제 #4
0
    public override void gameObjectSetActiveOn()
    {
        base.gameObjectSetActiveOn();

        int iRand = Random.Range(0, 4);

        SpriteRenderer _spriteRenderer = null;

        if (anim as CSpriteAnimation != null)
        {
            _spriteRenderer = (anim as CSpriteAnimation).getSpriteRenderer;

            _spriteRenderer.sprite = _iceSprite[iRand] ?? null;
        }

        _fspeed = Random.Range(_fMinspeed, _fMaxspeed);

        if (transform.position.x <= getTarget().gameObject.transform.position.x)
        {
            byDirNum = 0;
        }
        else if (transform.position.x >= getTarget().gameObject.transform.position.x)
        {
            byDirNum = 1;
        }

        switch (byDirNum)
        {
        case 0:
            eSpawnID = SpawnID.Left;
            break;

        case 1:
            eSpawnID = SpawnID.Right;
            break;
        }
    }
예제 #5
0
        /// <summary>
        /// 返回产生的游戏对象(活动状态False)
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public GameObject OnSpawn(SpawnID spawnid)
        {
            if (!m_object_list.ContainsKey(spawnid.identification))
            {
                Debug.LogWarning("Not RegisterSpawn GameObject");
                return(null);
            }

            int        index = m_object_list[spawnid.identification].Count;
            GameObject newobj;

            if (index > 0)
            {
                newobj = m_object_list[spawnid.identification].Dequeue();
            }
            else
            {
                newobj = Instantiate(spawnid.gameObject);
                newobj.GetComponent <SpawnID>().identification = spawnid.identification;
            }
            newobj.SetActive(false);

            return(newobj);
        }
예제 #6
0
        public T GetType <T>(SpawnID spawnid)
        {
            var final = m_ISpawnID_list[spawnid.identification];

            return((T)final);
        }
예제 #7
0
 public void WaitRecovery(SpawnID spawnid)
 {
     spawnid.transform.SetParent(wait_recovery.transform);
 }
예제 #8
0
 public int SpawnListCount(SpawnID spawnid)
 {
     return(m_object_list[spawnid.identification].Count);
 }