質問編集履歴

2

メソッドを呼び出している箇所についての説明を記載しました。

2020/10/18 14:09

投稿

SeiSeis
SeiSeis

スコア12

test CHANGED
File without changes
test CHANGED
@@ -91,3 +91,59 @@
91
91
 
92
92
 
93
93
  ```
94
+
95
+
96
+
97
+
98
+
99
+ ```c#
100
+
101
+ //GetPlacedPArt()を呼び出している箇所
102
+
103
+ private void SetMarker(HintMarker marker)
104
+
105
+ {
106
+
107
+ target = marker.GetPlacedPart();
108
+
109
+ isSelecting = !ReferenceEquals(target, null);
110
+
111
+ }
112
+
113
+ ```
114
+
115
+
116
+
117
+ ```c#
118
+
119
+ //SetMarker()を呼び出している箇所
120
+
121
+ if (EventSystem.current.IsPointerOverGameObject(0) || EventSystem.current.IsPointerOverGameObject()) //UIをタッチしている場合は適用しない
122
+
123
+ return;
124
+
125
+
126
+
127
+ Ray rayBegan = Camera.main.ScreenPointToRay(TouchUtility.GetTouchPosition());
128
+
129
+ RaycastHit hit;
130
+
131
+ if (!Physics.Raycast(rayBegan, out hit))
132
+
133
+ return;
134
+
135
+
136
+
137
+ var marker = hit.transform.gameObject.GetComponent<HintMarker>();
138
+
139
+ if (marker != null)
140
+
141
+ {
142
+
143
+ SetMarker(marker);
144
+
145
+ }
146
+
147
+ ```
148
+
149
+ RayCastでヒントマーカーを持つオブジェクトを検知し、GetComponent()でHintMarkerを取得し、件のメソッドを呼び出しています。

1

スクリプトのソースコードを追加しました。

2020/10/18 14:08

投稿

SeiSeis
SeiSeis

スコア12

test CHANGED
File without changes
test CHANGED
@@ -13,3 +13,81 @@
13
13
 
14
14
 
15
15
  どなたかこういった現象の原因に心当たりがある方アドバイスいただきたいです。
16
+
17
+
18
+
19
+ ```c#
20
+
21
+ using System.Collections;
22
+
23
+ using System.Collections.Generic;
24
+
25
+ using UnityEngine;
26
+
27
+
28
+
29
+ public class HintMarker : MonoBehaviour
30
+
31
+ {
32
+
33
+ public PuzzleParts PlacedPart = null;
34
+
35
+
36
+
37
+ // Start is called before the first frame update
38
+
39
+ void Start()
40
+
41
+ {
42
+
43
+
44
+
45
+ }
46
+
47
+
48
+
49
+ // Update is called once per frame
50
+
51
+ void Update()
52
+
53
+ {
54
+
55
+
56
+
57
+ }
58
+
59
+
60
+
61
+ public PuzzleParts PickPartUp()
62
+
63
+ {
64
+
65
+ var part = PlacedPart;
66
+
67
+ PlacedPart = null;
68
+
69
+ return part;
70
+
71
+ }
72
+
73
+
74
+
75
+ public PuzzleParts GetPlacedPart()
76
+
77
+ {
78
+
79
+ if (ReferenceEquals(PlacedPart, null))
80
+
81
+ Debug.Log("何もパーツがセットされていません : " + PlacedPart, gameObject);
82
+
83
+
84
+
85
+ return PlacedPart;
86
+
87
+ }
88
+
89
+ }
90
+
91
+
92
+
93
+ ```