質問するログイン新規登録

質問編集履歴

3

シーンについて補足

2017/12/18 13:56

投稿

toricotori
toricotori

スコア14

title CHANGED
File without changes
body CHANGED
@@ -154,4 +154,9 @@
154
154
        }
155
155
  }
156
156
  }
157
- ```
157
+ ```
158
+
159
+ <<12/18追記>>
160
+ 下二つのスクリプト、keyWorkとCharaColWorkは他シーンでも使用しており、そのシーンでは
161
+ 特に問題はありません。
162
+ 上二つのappeearWorkとtrapTriggerを適用させているシーンのみ問題が発生しています。

2

charaColWorkの不足分を補足

2017/12/18 13:56

投稿

toricotori
toricotori

スコア14

title CHANGED
File without changes
body CHANGED
@@ -131,7 +131,14 @@
131
131
  public class charaColWork : MonoBehaviour
132
132
  {
133
133
  public int count = 3;
134
+   public GameObject trigger; //鍵を集めきったら現れるトリガー
134
135
 
136
+ void Start()
137
+ {
138
+ trigger.SetActive(false);
139
+ }
140
+
141
+
135
142
  void OnCollisionEnter(Collision col)
136
143
  {
137
144
  //鍵に接触したとき
@@ -141,6 +148,10 @@
141
148
  {
142
149
  count--;
143
150
  }
151
+       if(count == 0)
152
+       {
153
+       trigger.SetActive(true);
154
+       }
144
155
  }
145
156
  }
146
157
  ```

1

スクリプトの追加と補足

2017/12/18 13:51

投稿

toricotori
toricotori

スコア14

title CHANGED
File without changes
body CHANGED
@@ -2,6 +2,8 @@
2
2
  現状、一個でも鍵に触れると一気にカウントが0になってしまいます。
3
3
 
4
4
  鍵は最初は消えていて、あるトリガー内に入ると現れるようになっていますが、そのためのスクリプトに何か問題があるようです。
5
+
6
+ 鍵の出現スクリプト
5
7
  ```C#
6
8
  public class appearWork : MonoBehaviour
7
9
  {
@@ -30,7 +32,41 @@
30
32
  }
31
33
  }
32
34
  ```
35
+ トリガーのスクリプト(12/18追記)
36
+ ```C#
37
+ using System.Collections;
38
+ using System.Collections.Generic;
39
+ using UnityEngine;
40
+
41
+ public class trapTrigger : MonoBehaviour {
42
+
43
+ public static bool trapFlag;
44
+
45
+ void Start ()
46
+ {
47
+ trapFlag = false;
48
+ }
49
+
50
+ void OnTriggerEnter(Collider col)
51
+ {
52
+ if (col.gameObject.tag == "chara")
53
+ {
54
+ trapFlag = true;
55
+ }
56
+ }
57
+ }
58
+
59
+ ```
60
+ colがかかわる部分
61
+ ```
62
+ if (col != null)
63
+ col.enabled = false;
64
+ ```
65
+ ```
66
+ if (col != null)
67
+ col.enabled = true;
68
+ ```
33
- colがかかわる部分をコメントアウトすると正常にカウントが減っていくので、書き方に問題があると思われますが、
69
+ をコメントアウトすると正常にカウントが減っていくので、colの部分の書き方に問題があると思われますが、
34
70
  解決方法が思い当たらず困っています。ご教授いただけますと幸いです。
35
71
  (if (col != null)があるのは、コライダーがないオブジェクトにもスクリプトを適用する予定だからです。この条件をなくしても、カウントのおかしな減り方に変わりはありません)
36
72
 
@@ -87,4 +123,24 @@
87
123
  }
88
124
 
89
125
  ```
90
- OnCollisionEnter内にDebug.Logでカウント数を表示するようにしたところ、最初のカウントが3の場合、210000000000...と表示されました。
126
+ OnCollisionEnter内にDebug.Logでカウント数を表示するようにしたところ、最初のカウントが3の場合、210000000000...と表示されました。
127
+
128
+ <<12/18追記>>
129
+ カウント数に関するスクリプトです。
130
+ ```C#
131
+ public class charaColWork : MonoBehaviour
132
+ {
133
+ public int count = 3;
134
+
135
+ void OnCollisionEnter(Collision col)
136
+ {
137
+ //鍵に接触したとき
138
+ if (col.gameObject.tag == "key")
139
+ {
140
+ if (count > 0)
141
+ {
142
+ count--;
143
+ }
144
+ }
145
+ }
146
+ ```