【发布时间】:2013-01-14 20:59:08
【问题描述】:
我尝试为 Android 创建游戏,但遇到高速对象问题,它们不想碰撞。
我有带有 Sphere Collider 和 Bouncy 材质的 Sphere,以及带有此参数的 RigidBody(Gravity=false,Interpolate=Interpolate,Collision Detection = Continuous Dynamic)
我还有 3 面带有 Box Collider 和 Bouncy 材质的墙。
这是我的 Sphere 代码
function IncreaseBallVelocity() {
rigidbody.velocity *= 1.05;
}
function Awake () {
rigidbody.AddForce(4, 4, 0, ForceMode.Impulse);
InvokeRepeating("IncreaseBallVelocity", 2, 2);
}
在项目设置中我设置:"Min Penetration For Penalty Force"=0.001, "Solver Interation Count"=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);
}
EDITED 添加了更多信息
- 固定时间步长 = 0.02 最大允许 Tir = 0.333
- 在编辑器播放器和 Android 上运行游戏没有区别
- 没有。当我设置为 0.01 时看起来不错
- 我的 Paddle 是没有刚体的 Box Collider,墙壁是一样的
- PhysicsManager 中的所有值都在同一层(当速度正常时,一切正常),PhysicsManager 中的值是默认值(与图像相同),除了“Solver Interation Co...”= 50
- 没有。当我改变速度时,它会通过另一面墙
- 我使用的是标准立方体,但我扩展/收缩它以适应我的屏幕和其他对象,当我扩展墙更多时它可以弹跳
- 没有。这是视频http://www.youtube.com/watch?v=edfd1HJmKPY中的简单项目简单示例
- 我不使用重力
【问题讨论】: