2

C# を使用して Unity3d でゲームを開発するのを手伝っています。私たちは iPad 向けに開発しており、Unity の Apple プラグインを使用しています。私たちのゲームは、デバイス (iPad) の回転を使用するゲームプレイを特徴とする 2-D プラットフォーム ゲームです。キャラクターの動きには物理演算を使用しています。

ゲームは主にLandscape Rightでプレイされます。Screen.orientation = ScreenOrientation.LandscapeRightなどを使用して、デバイスの向きを簡単にLandscapeLeft変更LandscapeRightできPortraitますPortraitUpsideDown

Unity3d 内でシーンを実行しているときに、ランドスケープからポートレートに回転すると、キャラクターは世界 (彼女が立っているもの) を回転させるため落下しますが、彼女は同じ向き (物理学は同じまま) のままであり、落下の原因となります。これは、私たちが望む望ましい動作です。ただし、Xcode にビルドして iPad シミュレーター (バージョン 5.1) でゲームを実行し、世界が回転するようにデバイスを回転させると、ゲームが同じ向き (横向き) のままでデバイスが回転するだけです。iPad は縦向きですが、ゲームは横向きのままです。ScreenOrientation 以外にデバイス内で設定する必要がある変数はありますか? ゲームの状態をデバイスの向きと一致させるにはどうすればよいでしょうか?

簡単にまとめると、ゲームのデフォルトをランドスケープにしたいと考えています。縦向きに回転するとき、カメラとプレイヤーが一定のままで世界が回転するようにします。物理学はキャラクターの意味と結びついており、世界が回転すると、彼女は地面に立っていないため落下します. 現在、iPad を回転させると、デバイスの向きは変わりますが、ゲームの向きは変わりません。世界をローテーションでシフトさせたいのですが、キャラクターは一定のままです。Unity3d では動作しますが、Xcode iPad シミュレーターを使用すると正しく動作しません。どうやってこれを行うのですか?

ありがとうございました!

ケネス

4

1 に答える 1

0

非常に紛らわしい質問です。向きの確認は簡単で簡単です。

何よりもまず、XCode シミュレーターを忘れてください。XCode で直接ビルドしていて、Unity などを使用していない場合でも、最悪です。たぶん、これだけであなたの問題はすでに解決しています。iPad を入手してテストします。

また、回転に伴う物理的変化の動作を処理するためのスクリプトが必要です。あなたがこれを理解しているかどうかはわかりませんでしたが、そうでない場合、これはそれほど些細なことではないかもしれません. あなたがそれを手に入れたように見えますが。

ScreenOrientation最後に、最も紛らわしいのはとについて話すときですScreen.Orientation。そこに間違いがあるかもしれません。を使用Screen.orientation = ScreenOrientation.LandscapeRightすると、実際の画面の向きが強制的に変更されます (読み取り専用ではありません)。これは、テスト目的でのみ行う必要があります。それに関連するすべてのコードをプリコンパイラの「タグ」内#if UNITY_EDITORに含めることもできます。#endifデバイスの場合はScreenOrientation == ScreenOrientation.LandscapeRight、 onifまたはswitch句のいずれか、比較演算子、二重等号 ( ==) のみを使用する必要があります。

そこでうまくいかない可能性のある他のことは考えられません。

于 2012-10-03T12:56:44.263 に答える