質問編集履歴
3
コードの変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -178,13 +178,7 @@
|
|
178
178
|
|
179
179
|
}
|
180
180
|
|
181
|
-
|
181
|
+
|
182
|
-
|
183
|
-
{
|
184
|
-
|
185
|
-
scoreText.text = "Score : " + score.ToString();
|
186
|
-
|
187
|
-
}
|
188
182
|
|
189
183
|
void setcountText()
|
190
184
|
|
2
コードを変えました
test
CHANGED
File without changes
|
test
CHANGED
@@ -120,7 +120,7 @@
|
|
120
120
|
|
121
121
|
{
|
122
122
|
|
123
|
-
temperature =
|
123
|
+
temperature = threshold;
|
124
124
|
|
125
125
|
peak += 20;
|
126
126
|
|
@@ -128,7 +128,7 @@
|
|
128
128
|
|
129
129
|
|
130
130
|
|
131
|
-
if ((temperature >
|
131
|
+
if ((temperature > threshold)&&(start == 2)) //閾値を超えた時の処理
|
132
132
|
|
133
133
|
{
|
134
134
|
|
@@ -160,4 +160,40 @@
|
|
160
160
|
|
161
161
|
}
|
162
162
|
|
163
|
+
|
164
|
+
|
165
|
+
private void OnTriggerEnter(Collider other)
|
166
|
+
|
167
|
+
{
|
168
|
+
|
169
|
+
if (other.gameObject.CompareTag("start"))
|
170
|
+
|
171
|
+
{
|
172
|
+
|
173
|
+
start += 1;
|
174
|
+
|
175
|
+
setcountText();
|
176
|
+
|
177
|
+
}
|
178
|
+
|
179
|
+
}
|
180
|
+
|
181
|
+
void SetCountText()
|
182
|
+
|
183
|
+
{
|
184
|
+
|
185
|
+
scoreText.text = "Score : " + score.ToString();
|
186
|
+
|
187
|
+
}
|
188
|
+
|
189
|
+
void setcountText()
|
190
|
+
|
191
|
+
{
|
192
|
+
|
193
|
+
startText.text = "start : " + start.ToString();
|
194
|
+
|
195
|
+
}
|
196
|
+
|
197
|
+
}
|
198
|
+
|
163
199
|
```
|
1
前回は具体的に閾値などについて理解しておらず意味不明の質問をしていた
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
### 行いたい事
|
2
2
|
|
3
|
-
温度センサーを用いて温度を測定しており、Arduinoとunityをシリアル通信させています。そこで、Arduinoで処理したデータ
|
3
|
+
温度センサーを用いて温度を測定しており、Arduinoとunityをシリアル通信させています。そこで、Arduinoで処理したデータを閾値とする時どのようにすればいいか分からないです。
|
4
4
|
|
5
5
|
### 現在行えている事
|
6
6
|
|
@@ -8,13 +8,13 @@
|
|
8
8
|
|
9
9
|
### お聞きしたい事
|
10
10
|
|
11
|
-
unity側にて
|
11
|
+
unity側にてArduinoから得たデータを閾値として用いる方法を教えて頂きたいです。
|
12
|
+
|
13
|
+
### コードの説明
|
14
|
+
|
15
|
+
閾値を0としておきstartを通過したときのArduinoからの出力を閾値としたいです。startのすぐ後にもう1つstartを用意して(ユーザの視点からはみえないようにする)startを通った時の値を閾値としたいです。実際に実行してみたところ、start1とstart2を入力の値が400ぐらいで通り抜けたので値を470ぐらいまであげたのにも関わらず閾値を超えた時の処理が行われなかったので悩んでおります。
|
12
16
|
|
13
17
|
|
14
|
-
|
15
|
-
###検出したい箇所の参考画像
|
16
|
-
|
17
|
-
![イメージ説明](aa9054f29300980f7bb377ab9e7428a5.jpeg)
|
18
18
|
|
19
19
|
###unity側でのコード
|
20
20
|
|
@@ -34,15 +34,21 @@
|
|
34
34
|
|
35
35
|
|
36
36
|
|
37
|
-
public float threshold =
|
37
|
+
public float threshold = 0f; //閾値
|
38
38
|
|
39
39
|
|
40
40
|
|
41
|
-
public Vector3 velocity = new Vector3(0f, 0f, 0
|
41
|
+
public Vector3 velocity = new Vector3(0f, 0f, 1.0f);
|
42
42
|
|
43
|
+
public Text sensorText;
|
43
44
|
|
45
|
+
public Text startText;
|
44
46
|
|
47
|
+
private bool levelDown = false;
|
45
48
|
|
49
|
+
private int start;
|
50
|
+
|
51
|
+
public static float starT { get; internal set; }
|
46
52
|
|
47
53
|
|
48
54
|
|
@@ -55,6 +61,10 @@
|
|
55
61
|
|
56
62
|
|
57
63
|
serialHandler.OnDataReceived += OnDataReceived;
|
64
|
+
|
65
|
+
start = 0;
|
66
|
+
|
67
|
+
setcountText();
|
58
68
|
|
59
69
|
|
60
70
|
|
@@ -88,6 +98,8 @@
|
|
88
98
|
|
89
99
|
if (data.Length < 2) return;
|
90
100
|
|
101
|
+
sensorText.text = "ondo:" + message;
|
102
|
+
|
91
103
|
|
92
104
|
|
93
105
|
|
@@ -100,52 +112,52 @@
|
|
100
112
|
|
101
113
|
{
|
102
114
|
|
103
|
-
|
104
|
-
|
105
115
|
var temperature = float.Parse(data[0]);
|
106
116
|
|
107
117
|
|
108
118
|
|
109
|
-
if
|
119
|
+
if(start == 1) //入力した値を閾値としたい
|
110
|
-
|
111
|
-
|
112
120
|
|
113
121
|
{
|
114
122
|
|
123
|
+
temperature = peak;
|
115
124
|
|
116
|
-
|
117
|
-
|
125
|
+
peak += 20;
|
118
|
-
|
119
|
-
|
120
126
|
|
121
127
|
}
|
122
128
|
|
123
129
|
|
124
130
|
|
131
|
+
if ((temperature > peak)&&(start == 2)) //閾値を超えた時の処理
|
132
|
+
|
133
|
+
{
|
134
|
+
|
135
|
+
transform.localPosition += (levelDown) ? new Vector3(0.0f, 10.0f, 0.0f) * Time.deltaTime : velocity * Time.deltaTime;
|
136
|
+
|
137
|
+
levelDown = false;
|
138
|
+
|
139
|
+
}
|
140
|
+
|
141
|
+
else
|
142
|
+
|
143
|
+
{
|
144
|
+
|
145
|
+
transform.localPosition += velocity * Time.deltaTime;
|
146
|
+
|
147
|
+
levelDown = true;
|
148
|
+
|
149
|
+
}
|
150
|
+
|
125
151
|
}
|
126
|
-
|
127
|
-
|
128
152
|
|
129
153
|
catch (System.Exception e)
|
130
154
|
|
131
|
-
|
132
|
-
|
133
155
|
{
|
134
|
-
|
135
|
-
|
136
156
|
|
137
157
|
Debug.LogWarning(e.Message);
|
138
158
|
|
139
|
-
|
140
|
-
|
141
159
|
}
|
142
|
-
|
143
|
-
|
144
160
|
|
145
161
|
}
|
146
162
|
|
147
|
-
|
148
|
-
|
149
|
-
}
|
150
|
-
|
151
163
|
```
|