Android 用のゲームを作成しようとしていますが、衝突したくない高速オブジェクトに問題があります。
スフィア コライダーと弾むマテリアルを含むスフィアと、このパラメーターを含むリジッドボディがあります (Gravity=false、Interpolate=Interpolate、Collision Detection = Continuous Dynamic)。
また、Box Collider と Bouncy マテリアルを使用した 3 つの壁があります。
これはスフィアの私のコードです
function IncreaseBallVelocity() {
rigidbody.velocity *= 1.05;
}
function Awake () {
rigidbody.AddForce(4, 4, 0, ForceMode.Impulse);
InvokeRepeating("IncreaseBallVelocity", 2, 2);
}
プロジェクト設定で、「ペナルティフォースの最小貫通力」= 0.001、「ソルバーインターレーションカウント」= 50 を設定しました。
最初にプレイすると問題なく動作しますが(バウンドします)、速度が高くなると、スフィアは壁を通過するだけです。
誰でも私を助けることができますか?
ありがとう。
編集済み
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 を設定すると問題ないように見えます
- 私のパドルは Rigidbody なしの Box Collider で、壁は同じです
- 同じレイヤーにすべてあります (速度が通常の場合はすべて機能します) PhysicsManager の値はデフォルト (画像と同じ) ですが、"Solver Interation Co..." = 50 を除きます。
- いいえ、速度を変えると、他の壁を通過します
- 標準の立方体を使用していますが、画面やその他のオブジェクトに合わせて拡大/縮小しています。壁をさらに拡大すると跳ね返っても問題ありません
- いいえ。ビデオhttp://www.youtube.com/watch?v=edfd1HJmKPYからの単純なプロジェクトの単純な例です。
- 重力は使いません