我尝试为 Android 创建游戏,但我遇到了高速物体的问题,它们不想碰撞。
我有带有 Sphere Collider 和 Bouncy 材质的 Sphere,以及带有此参数的 RigidBody(Gravity=false,Interpolate=Interpolate,Collision Detection = Continuous Dynamic)
我也有 3 面带有 Box Collider 和 Bouncy 材质的墙。
这是我的球体代码
function IncreaseBallVelocity() {
rigidbody.velocity *= 1.05;
}
function Awake () {
rigidbody.AddForce(4, 4, 0, ForceMode.Impulse);
InvokeRepeating("IncreaseBallVelocity", 2, 2);
}
在项目设置中,我设置:“惩罚力的最小穿透”=0.001,“求解器交互计数”=50
当我开始玩时,它工作正常(它会弹跳),但是当速度变高时,Sphere 只是通过墙壁。
谁能帮我?
谢谢。
已编辑
var hit : RaycastHit;
var mainGameScript : MainGame;
var particles_splash : GameObject;
function Awake () {
rigidbody.AddForce(4, 4, 0, ForceMode.Impulse);
InvokeRepeating("IncreaseBallVelocity", 2, 2);
}
function Update() {
if (rigidbody.SweepTest(transform.forward, hit, 0.5))
Debug.Log(hit.distance + "mts distance to obstacle");
if(transform.position.y < -3) {
mainGameScript.GameOver();
//Application.LoadLevel("Menu");
}
}
function IncreaseBallVelocity() {
rigidbody.velocity *= 1.05;
}
function OnCollisionEnter(collision : Collision) {
Instantiate(particles_splash, transform.position, transform.rotation);
}
编辑添加了更多信息
- 固定时间步长 = 0.02 最大允许 Tir = 0.333
- 在编辑器播放器和 Android 上运行游戏没有区别
- 不,当我设置为 0.01 时看起来不错
- 我的 Paddle 是没有刚体的 Box Collider,墙壁是一样的
- 所有在同一层(当速度正常时,一切正常)PhysicsManager 中的值是默认值(与图像相同)exept "Solver Interation Co..." = 50
- 不,当我改变速度时,它会通过另一面墙
- 我正在使用标准立方体,但我扩展/收缩它以适合我的屏幕和其他对象,当我扩展墙壁时,它可以弹跳
- 不,这是来自视频http://www.youtube.com/watch?v=edfd1HJmKPY的简单项目简单示例
- 我不使用重力