为什么我会统一出现此错误?
Why do i get this errors in unity?
所以我做了一个小游戏,我想通过点击带有名为 "RichPoint" 的特定标签的点的碰撞器来使立方体从一个点跳到另一个点......我有这个代码:
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;
}
}
}
}
}
现在...如果我 运行 游戏并尝试点击对撞机,我会收到此错误...
---------------------------------------------- ----------------------
为什么?我做错了什么,我应该怎么做才能解决?
似乎 pBTime
总是零。所以 pBTime = distance / pBTime;
让 pBTime
变成 float.Infinity
。有关详细信息,请参阅 this。
这 float.Infinity
会导致各种错误,就像您 运行 遇到的那样。
所以我做了一个小游戏,我想通过点击带有名为 "RichPoint" 的特定标签的点的碰撞器来使立方体从一个点跳到另一个点......我有这个代码:
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;
}
}
}
}
}
现在...如果我 运行 游戏并尝试点击对撞机,我会收到此错误...
---------------------------------------------- ----------------------
为什么?我做错了什么,我应该怎么做才能解决?
似乎 pBTime
总是零。所以 pBTime = distance / pBTime;
让 pBTime
变成 float.Infinity
。有关详细信息,请参阅 this。
这 float.Infinity
会导致各种错误,就像您 运行 遇到的那样。