【3Dゲームエンジン】Unity質問スレッド13 [転載禁止]©5ch.net
■ このスレッドは過去ログ倉庫に格納されています
0099名前は開発中のものです。
2014/11/05(水) 02:02:42.76ID:Xo+vLE1PこのAの範囲に入っているか判別する処理にOverlaAreaAllやRayCastを使用してみたのですが
----
格納されるはずのCollider2Dの配列にnullしか入っていません。nullを返されたのか、宣言したまま使われずにnullなのかはわかりませんが
Physics2Dがグローバル変数も持ってることから、個々のオブジェクトにアタッチ出来ないのではないかと見ています。
Physics2Dを使わずに範囲内のコライダーを特定する方法、またはいまアタッチしているコードでおかしいところがありましたらご指摘お願いします...
public Collider2D[] hits;
public Vector2 pointA;
public Vector2 pointB;
public int index;
public int lessIndex;
void Start(){
pointA = new Vector2 (gameObject.transform.position.x+5.25f,7f);
pointB = new Vector2 (gameObject.transform.position.x-5.25f,-7f);
Physics2D.raycastsHitTriggers = true;
}
void Update(){
Physics2D.OverlapAreaNonAlloc(pointA,pointB,hits);
index = hits.Length;
if (index <= 0) return;
else if(index > 0){
lessIndex = 0;
for(int i = 1; i< index; i++){
if(hits[lessIndex].collider.GetComponent<Script>().myposition() > hits[i].collider.GetComponent<Script>().myposition()){
lessIndex = i;
}
}
hits[lessIndex].collider.GetComponent<Note>().Dest();
}
}
■ このスレッドは過去ログ倉庫に格納されています