示例#1
0
    void FixedUpdate()
    {
        //Escape
        if (Input.GetKey(KeyCode.Escape))
        {
            quitPanel.SetActive(true);
        }
        //Inventory
        Menu();
        //Stamina update
        stamina = Mathf.Clamp01(stamina + staminaRecovery * Time.deltaTime);
        //Access and change position of boxes (The stones).
        stone = FindClosestStone();
        gravityBoxController = stone.gravityBoxcontroller;
        gravityTest          = stone.triggered;
        collisiontest        = stone.collisionTest;
        boxPosition          = new Vector2(gravityBoxController.position.x, gravityBoxController.position.y);

        //To check if we are moving.
        if (moveDirection.x != 0.00000f)
        {
            lookRotation       = new Vector3(moveDirection.x, 0.0f, 0.0f);
            transform.rotation = Quaternion.LookRotation(lookRotation);
        }

        //Use gravity controller
        if (Input.GetKey(KeyCode.Space))
        {
            GravityControll();
        }

        //If not using gravity controller
        else
        {
            GroundMovement();
        }

        if (!moveBox)
        {
            //Apply Smooth movement then move.
            PID(ref currentMovement, ref moveDirection);
            controller.Move(currentMovement * currSpeed * Time.deltaTime);
        }

        //Animate when moving.
        anim.SetFloat("Speed", Mathf.Abs(moveDirection.x));
    }
示例#2
0
    // Update is called once per frame
    void Update()
    {
        stone       = getstone.FindClosestStone();
        sparkObject = stone.transform.GetChild(1).gameObject;
        gravityTest = stone.triggered;

        if (gravityTest)
        {
            sparkObject.SetActive(true);
            sparkPlayer.SetActive(false);
        }
        else if (!gravityTest)
        {
            sparkObject.SetActive(false);
            sparkPlayer.SetActive(true);
        }
    }
示例#3
0
    public ObjectGravityController FindClosestStone()
    {
        ObjectGravityController[] gos;
        gos = FindObjectsOfType <ObjectGravityController>();
        ObjectGravityController closest = null;
        float   distance = Mathf.Infinity;
        Vector3 position = transform.position;

        foreach (ObjectGravityController go in gos)
        {
            Vector3 diff        = go.transform.position - position;
            float   curDistance = diff.sqrMagnitude;
            if (curDistance < distance)
            {
                closest  = go;
                distance = curDistance;
            }
        }
        return(closest);
    }