コード例 #1
0
    // Update is called once per frame
    void Update()
    {
        //вниз
        if (Input.GetKey(KeyCode.S))
        {
            if (!raycastManager.Detection(acterManager.Direction(), 0.6f, Color.white))
            {
                acterManager.MoveBack();
            }
        }

        //Верх
        if (Input.GetKey(KeyCode.W))
        {
            if (!raycastManager.Detection(acterManager.Direction(), 0.6f, Color.white))
            {
                acterManager.MoveForward();
            }
        }

        //Вправо
        if (Input.GetKey(KeyCode.A))
        {
            if (!raycastManager.Detection(acterManager.Direction(), 0.6f, Color.white))
            {
                acterManager.MoveLeft();
            }
        }

        //Влево
        if (Input.GetKey(KeyCode.D))
        {
            if (!raycastManager.Detection(acterManager.Direction(), 0.6f, Color.white))
            {
                acterManager.MoveRight();
            }
        }

        //Пока впереди нет преграды двигатся по направлению
        if (raycastManager.Detection(acterManager.Direction(), 0.6f, Color.blue))
        {
            if (raycastManager.Name == "Block")
            {
                acterManager.MoveStop();
            }
        }

        //Остановится
        if (Input.GetKey(KeyCode.Space))
        {
            acterManager.MoveStop();
        }
    }
コード例 #2
0
ファイル: Ghost.cs プロジェクト: NikolayKorobov/pman
    void Update()
    {
        switch (state)
        {
        case StateList.right:
            if (!raycastManager.Detection(new Vector3(0, 0, 1), 0.6f, Color.red))
            {
                acterManager.MoveRight();
            }
            break;

        case StateList.forward:
            if (!raycastManager.Detection(new Vector3(-1, 0, 0), 0.6f, Color.red))
            {
                acterManager.MoveForward();
            }
            break;

        case StateList.left:
            if (!raycastManager.Detection(new Vector3(0, 0, -1), 0.6f, Color.red))
            {
                acterManager.MoveLeft();
            }
            break;

        case StateList.back:
            if (!raycastManager.Detection(new Vector3(1, 0, 0), 0.6f, Color.red))
            {
                acterManager.MoveBack();
            }
            break;

        case StateList.inactivity:
            acterManager.MoveStop();
            break;
        }

        //Пока впереди нет преграды двигатся по направлению
        if (raycastManager.Detection(acterManager.Direction(), 0.6f, Color.blue))
        {
            if (raycastManager.Name == "Block")
            {
                acterManager.MoveStop();
            }
        }

        /*//Убить пакмана при сближений
         * if (pacman != null && raycastManager.Detection(pacman.transform.position, 0.6f, Color.blue))
         * {
         *      Destroy(pacman);
         * }*/
    }