回答編集履歴

2

追記

2020/06/08 02:06

投稿

Y0241-N
Y0241-N

スコア1066

test CHANGED
@@ -1 +1,83 @@
1
1
  右クリックでメニューを開いたタイミングにフラグを追加し、オブジェクト選択の方でメニュー開のフラグが立っている際は処理が通らないようにしてはどうでしょうか?
2
+
3
+
4
+
5
+ 以下追記 06/08
6
+
7
+ ひとまずmainMenu.csに対して以下を追記。内容としては先述したメニューを開いているかどうかのフラグを追加、メニュー開時にフラグをTrueにする処理を追記します。
8
+
9
+ ```cs
10
+
11
+ public class mainMenu : MonoBehaviour
12
+
13
+ {
14
+
15
+ public bool CheckMenuStatus;
16
+
17
+ void Start()
18
+
19
+ {
20
+
21
+ CheckMenuStatus = false;
22
+
23
+ }
24
+
25
+ void ShowAtMousePosition()
26
+
27
+ {
28
+
29
+ CheckMenuStatus = true;
30
+
31
+ }
32
+
33
+ }
34
+
35
+ ```
36
+
37
+
38
+
39
+ あと、恐らく同じmainMenu.cs内にメニューを閉じる処理があると思うので、そちらのメソッド内に`CheckMenuStatus = false;`と追記してください。これでメニューが開いたときはTrue、開いていない時はFalseの状態となります。
40
+
41
+
42
+
43
+ この上でオブジェクトドラッグのスクリプト内に「CheckMenuStatusがTrueでない時のみオブジェクト操作可能」とします。なので、
44
+
45
+
46
+
47
+ ```cs
48
+
49
+ public mainMenu MenuCS; //mainMenu.csを取得するための変数
50
+
51
+
52
+
53
+ if(MenuCS.CheckMenuStatus != true)//CheckMenuStatusがTrueでない時のみ以下の処理を実行する
54
+
55
+ {
56
+
57
+ Vector3 objectPointInScreen
58
+
59
+ = Camera.main.WorldToScreenPoint(this.transform.position);
60
+
61
+
62
+
63
+ Vector3 mousePointInScreen
64
+
65
+ = new Vector3(Input.mousePosition.x,
66
+
67
+ Input.mousePosition.y,
68
+
69
+ objectPointInScreen.z);
70
+
71
+
72
+
73
+ Vector3 mousePointInWorld = Camera.main.ScreenToWorldPoint(mousePointInScreen);
74
+
75
+ mousePointInWorld.z = this.transform.position.z;
76
+
77
+ this.transform.position = mousePointInWorld;
78
+
79
+ }
80
+
81
+ ```
82
+
83
+ とすれば恐らくメニューが開いている時にオブジェクトとメニューが重なっていても、オブジェクトは選択できないようになっているはずです。

1

誤字

2020/06/08 02:06

投稿

Y0241-N
Y0241-N

スコア1066

test CHANGED
@@ -1 +1 @@
1
- 右クリックでメニューを開いたタイミングフラグを追加し、オブジェクト選択の方でメニュー開のフラグが立っている際は処理が通らないようにしてはどうでしょうか?
1
+ 右クリックでメニューを開いたタイミングフラグを追加し、オブジェクト選択の方でメニュー開のフラグが立っている際は処理が通らないようにしてはどうでしょうか?