質問編集履歴

2

スクリプトの追記

2019/05/20 03:42

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -32,6 +32,150 @@
32
32
 
33
33
 
34
34
 
35
+ 問題のオブジェクトについているスクリプト
36
+
37
+ ```C# 
38
+
39
+ using System.Collections;
40
+
41
+ using System.Collections.Generic;
42
+
43
+ using UnityEngine;
44
+
45
+ using UnityEngine.SceneManagement;
46
+
47
+
48
+
49
+ public class Controller : MonoBehaviour
50
+
51
+ {
52
+
53
+ [SerializeField] private float minY = -85.0f;
54
+
55
+ [SerializeField] private float maxY = 85.0f;
56
+
57
+ [SerializeField] private float speedX = 10.0f;
58
+
59
+ [SerializeField] private float speedY = 10.0f;
60
+
61
+ [SerializeField] private float rotationX = 0.0f;
62
+
63
+ [SerializeField] private float rotationY = 0.0f;
64
+
65
+ [SerializeField] private float movespeed = 1300.0f;
66
+
67
+ [SerializeField] private float uppower = 1300.0f;
68
+
69
+ [SerializeField] private bool xInversion, yInversion;
70
+
71
+ public Rigidbody rb;
72
+
73
+
74
+
75
+ void Start()
76
+
77
+ {
78
+
79
+
80
+
81
+ rotationX = transform.localEulerAngles.y;
82
+
83
+ if (rotationX > 180f)
84
+
85
+ rotationX -= 360f;
86
+
87
+ rotationY = transform.localEulerAngles.x;
88
+
89
+ if (rotationY > 180f)
90
+
91
+ rotationY -= 360f;
92
+
93
+
94
+
95
+ rb = GetComponent<Rigidbody>();
96
+
97
+
98
+
99
+ string name = SceneManager.GetActiveScene().name;
100
+
101
+
102
+
103
+ if (name == "MainGame")
104
+
105
+ {
106
+
107
+ Cursor.lockState = CursorLockMode.Locked; //カーソルをロック
108
+
109
+ Cursor.visible = false; //カーソルを非表示
110
+
111
+ }
112
+
113
+ }
114
+
115
+
116
+
117
+ void Update()
118
+
119
+ {
120
+
121
+
122
+
123
+ rotationX += Input.GetAxis("Mouse X") * speedX;
124
+
125
+ rotationY -= Input.GetAxis("Mouse Y") * speedY;
126
+
127
+ rotationY = Mathf.Clamp(rotationY, minY, maxY);
128
+
129
+ transform.localEulerAngles = new Vector3(rotationY, rotationX, 0f);
130
+
131
+
132
+
133
+ if (Input.GetKey(KeyCode.Escape)) //Menuの表示
134
+
135
+ SceneManager.LoadScene("Menu");
136
+
137
+
138
+
139
+ }
140
+
141
+ void FixedUpdate()
142
+
143
+ {
144
+
145
+ if (Input.GetKey(KeyCode.W))
146
+
147
+ rb.AddForce(transform.forward * movespeed);
148
+
149
+ if (Input.GetKey(KeyCode.A))
150
+
151
+ rb.AddForce(-transform.right * movespeed);
152
+
153
+ if (Input.GetKey(KeyCode.S))
154
+
155
+ rb.AddForce(-transform.forward * movespeed);
156
+
157
+ if (Input.GetKey(KeyCode.D))
158
+
159
+ rb.AddForce(transform.right * movespeed);
160
+
161
+ if (Input.GetKey(KeyCode.Space))
162
+
163
+ rb.AddForce(transform.up * uppower);
164
+
165
+ if (Input.GetKey(KeyCode.LeftShift))
166
+
167
+ rb.AddForce(-transform.up * uppower);
168
+
169
+ }
170
+
171
+ }
172
+
173
+
174
+
175
+ ```
176
+
177
+
178
+
35
179
  ##エラー
36
180
 
37
181
  エラーは何も起きていません

1

文章の追記

2019/05/20 03:42

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- 他のシーンのスクリプトが適用されてしまう
1
+ 新しく作成したシーンに他のシーンで作ったはずのスクリプトが適用されてしまう
test CHANGED
@@ -1 +1,37 @@
1
1
  Unityで新しいシーンを作成したところ、他のシーンのオブジェクトにアタッチしたはずのスクリプトがなぜが反映されてしまいます。最初はオブジェクトも反映されていたので、マルチシーンエディティングによるものなのかなと思ったのですが、ゲーム起動後も、やはり他のシーンで作ったスクリプトは適用されていました。(ロックカーソルなど)どうすれば適用できないようにできるのでしょうか?
2
+
3
+
4
+
5
+ 追記
6
+
7
+ ##現在のヒエラルキーの様子
8
+
9
+ ![](5051cd896f2454f59fd3c1db3db8f2b2.png)
10
+
11
+ ##流れ
12
+
13
+ 最初に「MainGame」というシーンを作成
14
+
15
+ 視点操作できるTPSゲームをプログラム
16
+
17
+
18
+
19
+ タイトル画面を作りたいと思い、新たに「Menu」というシーンを作成
20
+
21
+ Menuは簡単なGUIなのでスクリプトは何も入れていない
22
+
23
+
24
+
25
+ しかし、ゲームを開始したところ「MainGame」にある「MouseControll」というオブジェクトにアタッチしたはずのスクリプトが
26
+
27
+ 「Menu」のシーンに反映されていた(ここでは最初の質問にも申し上げました、カーソルロックやカーソルの非表示などで判断いたしました。カーソルのプログラムも「MouseControll」にアタッチしたスクリプトに書きました。)
28
+
29
+
30
+
31
+ 「Menu」を開いている最中は、「MainGame」のシーンはアンロードされていました。
32
+
33
+
34
+
35
+ ##エラー
36
+
37
+ エラーは何も起きていません