如果您Random.Range()用于生成值,是否有任何方法可以排除范围内的某些值(例如:选择1到20之间的数字,但不是6到8之间的数字)?
我的碰撞检测遇到了一个奇怪的问题.我正在使用Update方法移动播放器(我不想使用FixedUpdate,因为这会产生不希望的怪异动作).固定的时间步长设置为默认值0.02(我尝试使用时间设置播放,但这也不起作用).我将两个物体的刚体的碰撞检测设置为"连续动态".此外,我将目标帧速率设置为300,并且没有改变任何内容......
当帧速率较低或设备本身较慢时,碰撞检测并不总是有效.玩家可以很容易地穿过它应该碰撞的物体,尽管有时它不会碰撞.
请告诉我我可以做些什么来解决这个问题,因为我发布了一个游戏,许多用户正在报告这个(严重的)错误.感谢您的支持.
这是应该发生的事情:
这是实际发生的事情:
(正如你所看到的,立方体从墙上走到另一边)
当用户释放鼠标按钮时我移动播放器:
脚本1:
public Script2 Jumper;
public float TimeToJump;
public void Update()
{
if (Input.GetMouseButtonUp(0))
{
StartCoroutine (Delay (1f/50f)); //Don't mind the time.
}
}
IEnumerator Delay(float waitTime)
{
yield return new WaitForSeconds (waitTime);
if (Jumper != null)
{
Jumper.SetVelocityToJump (gameObject, TimeToJump);
}
}
Run Code Online (Sandbox Code Playgroud)
脚本2附加到播放器(立方体):
public class Script2 : MonoBehaviour {
GameObject target;
private float timeToJump;
public bool isJumping = false;
public void SetVelocityToJump(GameObject goToJumpTo, float timeToJump)
{
StartCoroutine(jumpAndFollow(goToJumpTo, timeToJump));
this.timeToJump = timeToJump;
this.target = …Run Code Online (Sandbox Code Playgroud)