###前提・実現したいこと
取得した全てのRigidbodyに同時にAddforceをかけたいです。
###発生している問題・エラーメッセージ
for文でforceを加えているため、順番に力が加わってしまい、うまく動きません。
###該当のソースコード
javascript
1#pragma strict 2static var blastForce = 100; 3static var blastRadius = 100; 4var implode = true; 5 6 7 8function FixedUpdate () { 9 var things : Collider[] = Physics.OverlapSphere(transform.position, blastRadius); 10 for (var i=0; i<things.length; i++){ 11 if (things[i].attachedRigidbody && things[i].attachedRigidbody != GetComponent.<Rigidbody>()){ 12 var offset : Vector3 = (things[i].transform.position); 13 if(0<=offset.x && offset.x<0.1){ 14 offset.x = 0.1; 15 }else if(-0.1<offset.x && offset.x<0){ 16 offset.x = -0.1; 17 } 18 19 if(0<=offset.z && offset.z<0.1){ 20 offset.z = 0.1; 21 }else if(-0.1<offset.z && offset.z<0){ 22 offset.z = -0.1; 23 } 24 things[i].GetComponent.<Rigidbody>().AddForce(blastForce/offset.x, 0, blastForce/offset.z); 25 } 26 } 27} 28
###補足情報(言語/FW/ツール等のバージョンなど)
原点との距離と反比例して力が大きくなっていくようにしています。あまりに距離が近い時は力が無限になるのを防ぐために距離を変えています。
回答1件
あなたの回答
tips
プレビュー