質問編集履歴

1

質問内容の変更

2018/06/25 09:08

投稿

gyugyu
gyugyu

スコア8

test CHANGED
File without changes
test CHANGED
@@ -1,38 +1,38 @@
1
+ スマートフォン用アプリをUnityで開発しています。iphone専用アプリとして申請したところリジェクトされてしまいました。今回プログラムは外注しているので調整なら自分でもやれるのではないかと思いカメラの調整などをやってみましたがうまくいきません。
2
+
1
- ### 前提・実現したいこと
3
+ アスペクト比9:16のゲームを2:3でもプレイできるようにしたいのです。
2
4
 
3
5
 
4
6
 
5
- スマトフォン用アプリをUnityで開発しています。iphone専用アプリとして申請したところリジェクトされてしまいました。今回プログラムは外注しているので調整なら自分でもやれるのではないかと思いカメラの調整などをやってみましたがうまくいきません。
7
+ ![イメジ説明](295526c7679fd90c75227ab1c7fbd770.jpeg)
6
8
 
7
- カメラのインスペクターを調整しましたが、反映されのでおそらくカメラスクリプトの設定なのだと思です
9
+ カメラのズをインスペクターを調整しましたが、bsCameraScriptで設定されカメラサイズが優先されているようで、ゲーム中は反映されない状態です。
8
-
9
- ちなみにゲームではカメラは中央にいるキャラクターが縦横に移動すると追随するように設定されています。(昔のドラクエの主人公が縦横に1マス動くようなイメージです)
10
10
 
11
11
 
12
12
 
13
- カメラスクリプトの該当していそうな部分を貼らせていただきますので、何卒よろしくお願いいたします。
13
+ 該当していると思われるスクリプトを貼らせていただきますので、どこを調整すればいいのか教えていただけますでしょうか。何卒よろしくお願いいたします。
14
14
 
15
15
 
16
16
 
17
- ![![イメージ説明](701ea52ec02d7b3171edf59c103a8365.jpeg)]
17
+ ```C#
18
18
 
19
19
 
20
20
 
21
- ### 発生している問題・エラーメッセージ
21
+ public class bsCameraScript : bsGameObjectScript {
22
22
 
23
23
 
24
24
 
25
- ジェクの理由としてはiphone専用アプリでもipad上でiphone互換モードで動かないといけない。あなたのアプリは640×960のモードだと画面上下が切れてしまう。とのことです。
25
+ // カメラ
26
26
 
27
+ private static List<bsCameraScript> CameraList = new List<bsCameraScript>();
27
28
 
29
+ /// <summary>
28
30
 
29
- ### 該当のソースコード
30
-
31
- /// 視野
31
+ /// カメラ数取得
32
32
 
33
33
  /// </summary>
34
34
 
35
- public int width
35
+ public static int CameraCount
36
36
 
37
37
  {
38
38
 
@@ -40,83 +40,35 @@
40
40
 
41
41
  {
42
42
 
43
- return (int)(GetComponent<Camera>().orthographicSize / ((float)bsWindow.CanvasHeight / 200.0f) * bsWindow.CanvasWidth);
43
+ return CameraList.Count;
44
44
 
45
45
  }
46
46
 
47
47
  }
48
48
 
49
-
50
-
51
49
  /// <summary>
52
50
 
53
- /// 視野
51
+ /// カメラのスクリプト取得
54
52
 
55
53
  /// </summary>
56
54
 
57
- public int height
55
+ public static bsCameraScript GetCameraScript(int index)
58
56
 
59
57
  {
60
58
 
61
- get
62
-
63
- {
64
-
65
- return (int)(GetComponent<Camera>().orthographicSize / ((float)bsWindow.CanvasHeight / 200.0f) * bsWindow.CanvasHeight);
59
+ return CameraList[index];
66
-
67
- }
68
60
 
69
61
  }
70
62
 
71
63
 
72
64
 
73
- public float Zoom
65
+
74
66
 
75
- {
76
-
77
- get
78
-
79
- {
80
-
81
- return (bsWindow.CanvasHeight / 200.0f) / GetComponent<Camera>().orthographicSize;
67
+ <中略(カメラのスクロール追随設定など)>
82
-
83
- }
84
-
85
- }
86
68
 
87
69
 
88
70
 
89
71
 
90
-
91
- /// <summary>
92
-
93
- /// カメラサイズ
94
-
95
- /// </summary>
96
-
97
- public void SetSize(int cw, int ch, bool isGUI = false)
98
-
99
- {
100
-
101
- if (isGUI)
102
-
103
- {
104
-
105
- // カメラサイズ設定
106
-
107
- GetComponent<Camera>().orthographicSize = ch / 200.0f;
108
-
109
- }
110
-
111
- else {
112
-
113
- // カメラサイズ設定
114
-
115
- GetComponent<Camera>().orthographicSize = ch / 230.0f;
116
-
117
- }
118
-
119
-
120
72
 
121
73
  #if UNITY_ANDROID || UNITY_IPHONE
122
74
 
@@ -184,171 +136,11 @@
184
136
 
185
137
 
186
138
 
187
- }
139
+ ```
188
-
189
-
190
-
191
- void OnDestroy()
192
-
193
- {
194
-
195
- CameraList.Remove(this);
196
-
197
- }
198
140
 
199
141
 
200
142
 
201
143
 
202
-
203
- protected override void Awake ()
204
-
205
- {
206
-
207
- base.Awake();
208
-
209
- CameraList.Add(this);
210
-
211
- }
212
-
213
-
214
-
215
- protected override void Start()
216
-
217
- {
218
-
219
-
220
-
221
- }
222
-
223
-
224
-
225
- protected override void Update()
226
-
227
- {
228
-
229
-
230
-
231
-
232
-
233
- }
234
-
235
-
236
-
237
- void LateUpdate()
238
-
239
- {
240
-
241
- if(Application.isPlaying == true && TargetObject != null)
242
-
243
- {
244
-
245
- position = new Vector3(
246
-
247
- (isScrollX)?(TargetObject.WorldPosition.x + TargetPositionOffset.x):x,
248
-
249
- (isScrollY)?(TargetObject.WorldPosition.y + TargetPositionOffset.y):y,
250
-
251
- z
252
-
253
- );
254
-
255
-
256
-
257
- // スクロール範囲
258
-
259
- if(ScrollMaxXFlag == true && x > ScrollMaxX)
260
-
261
- {
262
-
263
- x = ScrollMaxX;
264
-
265
- }
266
-
267
- else if(ScrollMinXFlag == true && x < ScrollMinX)
268
-
269
- {
270
-
271
- x = ScrollMinX;
272
-
273
- }
274
-
275
- if(ScrollMaxYFlag == true && y > ScrollMaxY)
276
-
277
- {
278
-
279
- y = ScrollMaxY;
280
-
281
- }
282
-
283
- else if(ScrollMinYFlag == true && y < ScrollMinY)
284
-
285
- {
286
-
287
- y = ScrollMinY;
288
-
289
- }
290
-
291
-
292
-
293
- }
294
-
295
- }
296
-
297
-
298
-
299
- #if UNITY_EDITOR
300
-
301
- void OnDrawGizmos()
302
-
303
- {
304
-
305
-
306
-
307
- Gizmos.color = new Color(1.0f, 0, 1.0f, 1.0f);
308
-
309
- if(Application.isPlaying)
310
-
311
- {
312
-
313
- Gizmos.DrawWireCube(
314
-
315
- new Vector3(x, -y, z)/100.0f,
316
-
317
- new Vector3(bsWindow.ScreenWidth, bsWindow.ScreenHeight, 1)/100.0f
318
-
319
- );
320
-
321
- }
322
-
323
- else
324
-
325
- {
326
-
327
- Gizmos.DrawWireCube(
328
-
329
- new Vector3(x, -y, z)/100.0f,
330
-
331
- new Vector3(bsWindow.RootScript.WindowWidth, bsWindow.RootScript.WindowHeight, 1)/100.0f
332
-
333
- );
334
-
335
- }
336
-
337
- }
338
-
339
- #endif
340
-
341
- }
342
-
343
-
344
-
345
-
346
-
347
- ### 試したこと
348
-
349
-
350
-
351
- Unity上でカメラのポジションやサイズなどを調整しましたがうまくいきません。おそらくカメラのスクリプトによって縦横比が設定されているようなのですが、上記スクリプトのどの部分で縦横比の設定をしているのかいまいちわかりません。
352
144
 
353
145
 
354
146