示例#1
0
    private void OnCollisionEnter(Collision other)
    {
        if (other.gameObject.CompareTag("Enemy"))
        {
            Debug.Log("Bot Bullet touched enemy ");
            EnemyController ectrl = other.gameObject.GetComponent <EnemyController>();
            ectrl.Destroy();
        }
        else if (other.gameObject.CompareTag("Player"))
        {
            Debug.Log("Bot Bullet touched Player ");
            PlayerBotController pBCtrl = other.gameObject.GetComponent <PlayerBotController>();

            if (pBCtrl)
            {
                pBCtrl.Destroy(id);
            }
            else
            {
                PlayerController pc = other.gameObject.GetComponent <PlayerController>();
                if (pc)
                {
                    pc.Destroy(id);
                }
                else
                {
                    Debug.Log("Bullet Bot Controller : Invalid Player tag type was touched");
                }
            }
        }

        Destroy();
    }
        public IEnumerator TestShipCreation()
        {
            yield return(SceneManager.LoadSceneAsync("TestScene", LoadSceneMode.Single));

            SceneManager.SetActiveScene(SceneManager.GetSceneByName("TestScene"));

            // Test for player death
            yield return(new WaitUntil(() => Time.frameCount > 1));

            GameObject player = GameObject.Find("Player(Clone)");

            Assert.AreNotEqual(player, null);
            PlayerSave playerSave = player.GetComponentInChildren <PlayerSave>();

            Assert.AreNotEqual(playerSave, null);
            Guid    playerId       = playerSave.Id;
            Vector3 playerPosition = player.transform.position;

            yield return(new WaitUntil(() => player == null));

            int frameCount = Time.frameCount;

            // Wait some time for the game to reboot
            yield return(new WaitUntil(() => Time.frameCount > frameCount + 5));

            // Check if the player ghost was properly created
            Assert.Greater(Pool.Instance.PlayerBotList.Count, 0);
            GameObject          playerBot           = Pool.Instance.PlayerBotList[0];
            PlayerBotController playerBotController = playerBot.GetComponent <PlayerBotController>();

            Assert.AreEqual(playerId, playerBotController.Id);
            Assert.AreEqual(playerPosition, playerBot.transform.position);

            yield return(SceneManager.UnloadSceneAsync("TestScene"));
        }
示例#3
0
    private void OnCollisionEnter(Collision other)
    {
        if (other.gameObject.CompareTag("Enemy"))
        {
            Debug.Log("Bot Bullet touched enemy ");
            EnemyController ectrl = other.gameObject.GetComponent <EnemyController>();
            ectrl.Destroy();

            GameObject parentObject = GameObjectStateManager.Instance.getParent(id);
            if (parentObject)
            {
                Ship controler = parentObject.GetComponent <Ship>();
                if (controler && !controler.IsPlayer)
                {
                    controler.addRewardOnKill();
                }
            }
        }
        else if (other.gameObject.CompareTag("Player"))
        {
            Debug.Log("Bot Bullet touched Player ");
            PlayerBotController pBCtrl = other.gameObject.GetComponent <PlayerBotController>();

            if (pBCtrl)
            {
                pBCtrl.Destroy(id);
            }
            else
            {
                Ship pc = other.gameObject.GetComponent <Ship>();
                if (pc)
                {
                    pc.Destroy(id);
                }
                else
                {
                    Debug.Log("BulletController : Invalid Player tag type was touched");
                }
            }
        }

        Destroy();
    }