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

回答編集履歴

2

追記

2020/06/08 02:06

投稿

Y0241-N
Y0241-N

スコア1066

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

1

誤字

2020/06/08 02:06

投稿

Y0241-N
Y0241-N

スコア1066

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