Exemple #1
0
        public void SpawnEnemy(MobileTypes mobileType)
        {
            if (DaggerfallUnity.FindDaggerfallUnity(out dfUnity))
            {
                Logger.GetInstance().log("Creating a Daggerfall enemy GameObject.\n", this);

                tmpEnemy = GameObjectHelper.CreateDaggerfallEnemyGameObject(mobileType, this.transform, MobileReactions.Hostile);
                if (!tmpEnemy)
                {
                    return;
                }

                GameObject mainCamera = GameObject.FindGameObjectWithTag("MainCamera");
                GameObject player     = GameObject.FindGameObjectWithTag("Player");
                //Ray ray = new Ray(mainCamera.transform.position, Quaternion.Euler(45, 0, 0) * mainCamera.transform.forward);
                Ray          ray = new Ray(mainCamera.transform.position, mainCamera.transform.forward);
                RaycastHit[] hits;
                hits = Physics.RaycastAll(ray, 100.0f);
                if (hits != null && hits.Length > 0)
                {
                    tmpEnemy.transform.position = hits[0].point;
                    tmpEnemy.transform.Translate(new Vector3(0, tmpEnemy.GetComponent <CharacterController>().height / 2 + 1f));
                    //tmpEnemy.transform.Translate(0, 10f, 0);
                }
                else
                {
                    tmpEnemy.transform.position = player.transform.position;
                }

                Logger.GetInstance().log("Created a Daggerfall enemy GameObject.\n", this);
            }
        }