Bouncinessを0.9くらいに設定しているとスロープ内で反射しまくります。
スロープの上にいるときはBouncinessを0にして反射させずにスルスルとボールを転がしたいのですよ。
反射させないオブジェクト用にNotReflecというタグを新しく作ります。
スロープオブジェクトのPlane.002にNotReflecタグを設定。
void OnCollisionEnter(Collision col) { //反射させない処理 if (col.gameObject.tag == "NotReflec") { this.GetComponent<SphereCollider>().material.bounciness = 0; return; } //反射させない処理 }
スクリプトの衝突判定処理内に上記を追加。
実行してみるとスロープの壁に反射せずにスルスルとボールが上がっていきます。やった^^
注意点としてはこの方法では反射させない障害物にぶつかっても
最初の1回は反映されずに反射してしまうようです。
2回目の衝突からは反映されて反射しなくなるみたい。
それと一度bouncinessを0にするとその後もずっと0のままなのでスロープを抜けるとまた0.9にしたい。
void OnCollisionEnter(Collision col) { this.GetComponent<SphereCollider>().material.bounciness = 0.9f; //反射させない処理 if (col.gameObject.tag == "NotReflec") { this.GetComponent<SphereCollider>().material.bounciness = 0; return; } //反射させない処理 }
最初の行で0.9fに設定しておいてNotReflecタグの時だけ0にするようにしました。