重くなるかもしれませんが、
四方向に当たり判定を得るためのオブジェクトを配置し
それぞれの当たり判定を確認するというのはどうでしょうか
4方向の当たり判定を確認するコードファイル名がcol.cs
かつ親オブジェクトに適応されており、
子オブジェクト名をcol_1~4 の連番とした時
さらに親オブジェクト名がplayerである時
子オブジェクトコード
c#
1private col cols;
2private int select;
3private GameObject parent;
4
5void Start(){
6 select = ((int)gameObhect.name.Replace("col_","") -1);
7 parent = GameObject.Find("player");
8 cols = parent.GetCompornent<col>();
9}
10
11void OnTriggerEnter(Collider other) {
12 if (parent != other.gameObject){
13 cols[select] = true;
14}
15
16void OnTriggerExit(Collider other) {
17 if (parent != other.gameObject){
18 cols[select] = false;
19}
20
親オブジェクト
c#
1private bool[] cols = new bool[4];
2private bool col = false;
3
4void Update(){
5 var count = 0;
6 for(var i = 0; i< cols.Length; i++){
7 if(!cols[i]){
8 break;
9 } else {
10 count++;
11 }
12 }
13 if(count == cols.Length){
14 col = true;
15 Debug.Log("全部true");
16 } else {
17 col = false;
18 }
19}
動作テストしてないのでケアレスミスがあるかもしれませんが
こんな感じのコードで実現可能かと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/14 06:17
2017/04/14 12:41