コード例 #1
0
    private void Awake()
    {
        activeObjects.Clear();

        pooling = gameObject.GetComponentInParent <EnemyPooling>();

        currentSpawnpoint.y = transform.position.y;
        spawnState          = SPAWNSTATE.WAITING;
    }
コード例 #2
0
    void Start()
    {
        gameManager = GameManager.Instance;
        poolManager = FindObjectOfType <EnemyPooling>();

        spawnPosition = gameManager.GetEnemyUnitSpawnPosition();

        objAtLeastDelay = minusObjDelayPerCurrentStage * 0f;
    }
コード例 #3
0
ファイル: Monster.cs プロジェクト: Hingman1824/TeampleDiaHH
    IEnumerator Die()
    {
        if (enemyKind == MODE_KIND.Diablo)
        {
            // Enemy의를 죽이자

            //죽는 애니메이션 시작
            animn = 7;

            Instantiate(explosion, transform.position, Quaternion.identity);

            //4.5 초후 오브젝트 반환
            yield return(new WaitForSeconds(0.5f));

            this.gameObject.SetActive(false);
            Box.transform.position = new Vector3(transform.position.x, transform.position.y, transform.position.z); //몬스터가 죽은 자리에서 스폰

            StopAllCoroutines();                                                                                    //객체 반환전 모든 코루틴을 정지
        }
        else
        {
            // Enemy의를 죽이자

            //죽는 애니메이션 시작
            animn = 3;

            Instantiate(explosion, transform.position, Quaternion.identity);
            //Enemy에 추가된 모든 Collider를 비활성화(모든 충돌체는 Collider를 상속했음 따라서 다음과 같이 추출 가능)
            //foreach (Collider coll in gameObject.GetComponentsInChildren<Collider>())
            //{
            //    coll.enabled = false;
            //}

            //4.5 초후 오브젝트 반환
            yield return(new WaitForSeconds(0.5f));

            int aaa = Random.Range(1, 10);
            if (aaa > 5)
            {
                var Mons = ItemPooling.GetItem();                                                        //오브젝트풀링에서 아이템을 빌려온다.
                //var _Mons = ItemPooling.GetItem2();
                Mons.transform.position = new Vector3(transform.position.x, 0.5f, transform.position.z); //몬스터가 죽은 자리에서 스폰
                //_Mons.transform.position = new Vector3(transform.position.x, 0.8f, transform.position.z);
            }
            StopAllCoroutines();             //객체 반환전 모든 코루틴을 정지
            EnemyPooling.ReturnObject(this); //몬스터가 죽으면 자신을 반환
        }
        // 포톤 추가
        // 자신과 네트워크상의 모든 아바타를 삭제

        //PhotonNetwork.Destroy(gameObject);
    }
コード例 #4
0
    public static int SpawnSkeleton(GameObject spawnPos, int InitNum, float rand)
    {
        if (CheckObjectInCamera(spawnPos))                                                                                                                                      //스폰장소가 카메라화면에 잡히면
        {
            if (InitNum > 0 && maxSkeleton > 0)                                                                                                                                 //
            {
                var Mons = EnemyPooling.GetSkeleton();                                                                                                                          //오브젝트풀링에서 몬스터를 빌려온다.
                Mons.GetComponent <NavMeshAgent>().enabled = false;                                                                                                             //네비메쉬에이전트 끄고
                Mons.transform.position = new Vector3(spawnPos.transform.position.x + Random.Range(-rand, rand), 1, spawnPos.transform.position.z + Random.Range(-rand, rand)); //빌려온 몬스터의 위치를 랜덤배치
                Mons.GetComponent <NavMeshAgent>().enabled = true;                                                                                                              //재활성화

                InitNum--;
                maxSkeleton--;
            }
        }
        return(InitNum);
    }
コード例 #5
0
    public static int SpawnGargoyle(GameObject spawnPos, int InitNum, float rand)
    {
        if (CheckObjectInCamera(spawnPos))  //스폰장소가 카메라화면에 잡히면
        {
            if (InitNum > 0 && maxGargoyle > 0)
            {
                var Mons = EnemyPooling.GetGargoyle();                                                                                                                          //오브젝트풀링에서 가고일몬스터를 빌려온다.
                Mons.GetComponent <NavMeshAgent>().enabled = false;
                Mons.transform.position = new Vector3(spawnPos.transform.position.x + Random.Range(-rand, rand), 1, spawnPos.transform.position.z + Random.Range(-rand, rand)); //빌려온 몬스터의 위치를 랜덤배치
                Mons.GetComponent <NavMeshAgent>().enabled = true;

                InitNum--;
                maxGargoyle--;
            }
        }
        return(InitNum);
    }
コード例 #6
0
    void Start()
    {
        if (instance == null)
        {
            instance = this;
        }

        base.Initialize();

        if (spawnEnemyPoints == null || spawnEnemyPoints.Count == 0)
        {
            Debug.LogError("There are no spawn points available!");
        }

        spawnTime = firstSpawnTime;

        InvokeRepeating("Improve", timeToImprove, timeToImprove);
    }
コード例 #7
0
    void Start()
    {
        stageManager  = FindObjectOfType <StageManager>();
        poolManager   = FindObjectOfType <EnemyPooling>();
        fusionManager = FindObjectOfType <FusionManager>();

        firstHeart = heart;
        firstAp    = ap;
        firstDp    = dp;
        firstStopByObjectDistance = stopByObjectDistance;

        _unitOnMiniMap = Instantiate(unitOnMiniMap.gameObject, GameObject.Find("MapSlider").transform);

        UnitOnMiniMapScript unitOnMiniMapScript = _unitOnMiniMap.GetComponent <UnitOnMiniMapScript>();

        unitOnMiniMapScript.targetObject  = gameObject;
        unitOnMiniMapScript.targetUnitTrm = gameObject.transform;

        SpawnSet();
    }
コード例 #8
0
    private void Awake()
    {
        if (instance == null)
        {
            instance = this;
        }
        else
        {
            Destroy(gameObject);
            return;
        }

        Camera cam = Camera.main;

        camHeight = 2f * cam.orthographicSize;
        camWidth  = camHeight * cam.aspect;

        poolScript   = poolObject.GetComponent <EnemyPooling>();
        playerScript = playerObject.GetComponent <PlayerController>();
        menuScript   = menuObject.GetComponent <Menu>();
    }
コード例 #9
0
 private void Awake()
 {
     Instance = this; //오브젝트 풀링으로 몬스터들을 관리할 빈게임오브젝트에 이 스크립트를 추가
     Initialize(10);
 }
コード例 #10
0
    void Start()
    {
        if (instance == null)
        {
            instance = this;
        }

        base.Initialize();

        if (spawnEnemyPoints == null || spawnEnemyPoints.Count == 0)
        {
            Debug.LogError("There are no spawn points available!");
        }

        spawnTime = firstSpawnTime;

        InvokeRepeating("Improve", timeToImprove, timeToImprove);
    }
コード例 #11
0
 private void Start()
 {
     pool    = GetComponentInParent <EnemyPooling>();
     spawner = GameObject.FindGameObjectWithTag("Spawner").GetComponent <Spawner>();
     timer   = lifetime;
 }