示例#1
0
        private void PlaceStairs(Map mapGenerate)
        {
            var firstPoss = mapGenerate.fullBoard.Where(x => x is Floor).Take(2);

            var ds = new Downstair(mapGenerate.Game, firstPoss.First().PositionCell);
            var us = new Upstair(mapGenerate.Game, firstPoss.Last().PositionCell);

            mapGenerate.fullBoard.RemoveAll <Cell>(firstPoss.Contains);
            mapGenerate.fullBoard.Add(ds);
            mapGenerate.fullBoard.Add(us);
        }
示例#2
0
文件: Enemy.cs 项目: won613/Scripts
    // Update is called once per frame
    void Update()
    {
        player     = GameObject.FindObjectOfType <PlayerController>();
        barricade1 = GameObject.Find("barricade1").GetComponent <Barricade>();
        barricade2 = GameObject.Find("barricade2").GetComponent <Barricade>();
        barricade3 = GameObject.Find("barricade3").GetComponent <Barricade>();
        barricade4 = GameObject.Find("barricade4").GetComponent <Barricade>();
        upstair    = GameObject.Find("upstair").GetComponent <Upstair>();
        downstair  = GameObject.Find("downstair").GetComponent <Downstair>();

        if (player.transform.position.y > transform.position.y + 2f)
        {
            playerIsUpperThanEnemy = 1;
        }
        else if (player.transform.position.y + 2f < transform.position.y)
        {
            playerIsUpperThanEnemy = 2;
        }
        else
        {
            playerIsUpperThanEnemy = 0;
        }

        if (breaking == false)
        {
            if (playerIsUpperThanEnemy == 0 && player.transform.position.x > transform.position.x)
            {
                myRigidbody.velocity = new Vector3(activeMoveSpeed, myRigidbody.velocity.y, 0f);
                transform.localScale = new Vector3(1f, 1f, 1f);
                if (enemy == 2)
                {
                    actzombie_range();
                }
            }

            else if (playerIsUpperThanEnemy == 0 && player.transform.position.x < transform.position.x)
            {
                myRigidbody.velocity = new Vector3(-activeMoveSpeed, myRigidbody.velocity.y, 0f);
                transform.localScale = new Vector3(-1f, 1f, 1f);
                if (enemy == 2)
                {
                    actzombie_range();
                }
            }

            else if (playerIsUpperThanEnemy == 1 && upstair.transform.position.x > transform.position.x)
            {
                myRigidbody.velocity = new Vector3(activeMoveSpeed, myRigidbody.velocity.y, 0f);
                transform.localScale = new Vector3(1f, 1f, 1f);
                if (enemy == 2)
                {
                    actzombie_range();
                }
            }

            else if (playerIsUpperThanEnemy == 1 && upstair.transform.position.x < transform.position.x)
            {
                myRigidbody.velocity = new Vector3(-activeMoveSpeed, myRigidbody.velocity.y, 0f);
                transform.localScale = new Vector3(-1f, 1f, 1f);
                if (enemy == 2)
                {
                    actzombie_range();
                }
            }

            else if (playerIsUpperThanEnemy == 2 && downstair.transform.position.x > transform.position.x)
            {
                myRigidbody.velocity = new Vector3(activeMoveSpeed, myRigidbody.velocity.y, 0f);
                transform.localScale = new Vector3(1f, 1f, 1f);
                if (enemy == 2)
                {
                    actzombie_range();
                }
            }

            else if (playerIsUpperThanEnemy == 2 && downstair.transform.position.x < transform.position.x)
            {
                myRigidbody.velocity = new Vector3(-activeMoveSpeed, myRigidbody.velocity.y, 0f);
                transform.localScale = new Vector3(-1f, 1f, 1f);
                if (enemy == 2)
                {
                    actzombie_range();
                }
            }
        }


        if (hp <= 0)
        {
            //myAnim.SetBool("die", true);
            Destroy(gameObject);
        }

        if (this.myAnim.GetCurrentAnimatorStateInfo(0).IsName("Zombie_die"))
        {
            Destroy(gameObject);
        }

        hitTimer += Time.deltaTime;

        if (hitTimer > 0.01f)
        {
            canHit = true;
        }
    }