简体   繁体   中英

Why do i get this errors in unity?

So i made a little game where i want to make a cube jump from a point to another by clicking on point's colliders with a specific tag named "RichPoint"... I have this code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMovement : MonoBehaviour {

    public float jumpMaxDistance;
    public float jumpSpeed;
    private float distance;

    private bool firstFrame = false;
    private Vector3 richPoint;
    public GameObject player;
    private Animation jump;
    private float pBTime;

    void Start () {
        richPoint = transform.position;
        jump = player.GetComponent<Animation> ();

    }
    // Update is called once per frame
    void Update (){
        //Moves the player to the next richPoint.
        if (firstFrame == true){
            if (transform.position != richPoint) {
                transform.position = Vector3.MoveTowards (transform.position, richPoint, Time.deltaTime * jumpSpeed);


            }//executes if the left click is pressed.
        }
        if (Input.GetMouseButtonDown (0)) {

            RaycastHit hit;

            //Get Ray from mouse position.
            Ray rayCast = Camera.main.ScreenPointToRay (Input.mousePosition);

            //Raycast and check if any object is hit.
            if (Physics.Raycast (rayCast, out hit, jumpMaxDistance)) 
                {
                //Raycast and check if any object is hit.
                if (hit.collider.CompareTag ("RichPoint"))
                {
                    richPoint = hit.collider.transform.position;

                    //This finds the distance between the player and richPoint.
                    distance = Vector3.Distance(transform.position,richPoint);
                    pBTime = distance / pBTime;

                    //This plays the Animation depending on tha distance between transform.position and richPoint.
                    jump ["PlayerJump"].time = pBTime;
                    jump.Play ();

                    firstFrame = true;
                }
            }
        }
    }
}

Now...if i run the game and try to click on colliders i get this errors... ------------------------------------------------------------------------ 在此处输入图片说明

Why? what am i doing wrong,what should i do to fix it?

It seems that pBTime is always zero. So pBTime = distance / pBTime; makes pBTime become float.Infinity . See this for more detial.

This float.Infinity will cause all kinds of error like what you have ran into.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM