Unity3d 密钥检测isn’;在统一中改变重力时,t总是起作用
我在做一个游戏时有一些奇怪的行为。其主要思想是,用户将沿着一条路径行进,并可以按下空格键以反转重力并避开障碍物。我遇到的问题是,当我按下空格键时,大部分时间重力都会反转,但有时它不会正常工作 我在Update方法中进行了关键点检测,并在FixedUpdate方法中更改了重力。我不确定从技术上讲这是不是一个物理计算,所以我把它放在了里面 这是我的密码:Unity3d 密钥检测isn’;在统一中改变重力时,t总是起作用,unity3d,Unity3d,我在做一个游戏时有一些奇怪的行为。其主要思想是,用户将沿着一条路径行进,并可以按下空格键以反转重力并避开障碍物。我遇到的问题是,当我按下空格键时,大部分时间重力都会反转,但有时它不会正常工作 我在Update方法中进行了关键点检测,并在FixedUpdate方法中更改了重力。我不确定从技术上讲这是不是一个物理计算,所以我把它放在了里面 这是我的密码: public class BallMove : MonoBehaviour{ bool jump = false; float grav = -9
public class BallMove : MonoBehaviour{
bool jump = false;
float grav = -9.81f;
bool changeGravity = false;
void Start()
{
rb = GetComponent<Rigidbody>();
Physics.gravity = new Vector3(0, grav, 0);
}
private void Update()
{
if (Input.GetKeyDown("space"))
changeGravity = true;
}
void FixedUpdate()
{
if ( Input.GetKeyDown("space") && changeGravity )
{
changeGravity = false;
grav *= -1;
Physics.gravity = new Vector3(0, grav, 0);
}
}
public class BallMove:monobhavior{
布尔跳跃=假;
浮球重力=-9.81f;
bool-change-gravity=false;
void Start()
{
rb=GetComponent();
Physics.gravity=新矢量3(0,grav,0);
}
私有void更新()
{
if(Input.GetKeyDown(“空格”))
改变重力=真;
}
void FixedUpdate()
{
if(Input.GetKeyDown(“空格”)和changeGravity)
{
改变重力=错误;
grav*=-1;
Physics.gravity=新矢量3(0,grav,0);
}
}
}医生说
您需要从Update函数调用此函数,因为每个帧的状态都会重置
因此,在FixedUpdate
void FixedUpdate()
{
if (changeGravity)
{
changeGravity = false;
grav *= -1;
Physics.gravity = new Vector3(0, grav, 0);
}
}
警察说
您需要从Update函数调用此函数,因为每个帧的状态都会重置
因此,在FixedUpdate
void FixedUpdate()
{
if (changeGravity)
{
changeGravity = false;
grav *= -1;
Physics.gravity = new Vector3(0, grav, 0);
}
}