// Update is called once per frame
    void Update()
    {
        float   horizontalInput = Input.GetAxisRaw("Horizontal");
        float   verticalInput   = Input.GetAxisRaw("Vertical");
        Vector3 inputMovement   = new Vector3(horizontalInput, 0, verticalInput);
        bool    moving          = inputMovement != Vector3.zero;

        if (moving)
        {
            inputMovement.Normalize();
        }
        movement += (inputMovement - movement) / 3;
        if (movement.sqrMagnitude < float.Epsilon)
        {
            movement = Vector3.zero;
        }
        if (moving)
        {
            targetAngle = Quaternion.LookRotation(inputMovement) * transform.rotation;
            modelAngle  = Quaternion.Lerp(model.transform.rotation, targetAngle, 0.2f);
        }
        model.transform.rotation = modelAngle;

        if (colliding.getColliding() && movement != Vector3.zero)
        {
            transform.Translate(Vector3.up * rb.velocity.y * Time.deltaTime);
        }
        rb.velocity += Vector3.up * -gravity * Time.deltaTime;
        // transform.Translate(Vector3.up * velocityY * Time.deltaTime);
        // velocityY += -40 * Time.deltaTime;
        // if(colliding.getColliding()) {
        // velocityY = 0;
        // rb.velocity = Vector3.zero;
        // }
    }
示例#2
0
 private bool Grounded()
 {
     return(groundCollider.getColliding());
 }