ゲームを開発していると必ず問題が発生するのですが、その解決策を記録せずに解決してしまったので、間隔が長く、後で再び問題に遭遇すると、また穴をくぐることになる…ということです。解決策はここで直接確認できます。
この記事は随時更新されますので、落とし穴に遭遇した場合は一度更新してください。
うぐい関連:
1. UUI アンカー ポイント ピボットとアンカー ボックス アンカーが動的に変更された後、localPosition を動的に設定する際の問題により、実際の座標が設定された座標と異なることになります。
RectTransformのanchoredPositionを使用して座標を設定し、sizeDeltaを使用してサイズを設定するだけです。
RectTransform rect = img.gameObject.GetComponent<RectTransform>();
rect.anchorMin = new Vector2(0, 0);
rect.anchorMax = new Vector2(0, 0);
rect.pivot = new Vector2(0, 0.5f);
rect.anchoredPosition = new Vector3(0, 64.5f);
rect.sizeDelta = new Vector2(80, 80);
2. UUI コンポーネント Toggle Group によって制御される Toggle の場合、2 つの Ison=true が選択されます。
この問題を発見しました。このコードでは、トグルの SetActive の Ison 状態を false に設定できます。ただし、トグル グループで制御されている複数のトグルの中に、トグルの SetActive が false 状態のトグルがある場合、トグル グループはこのトグルを制御できません。
for を使用してトグルをループし、Ison が true であるトグルを探すと、Ison が true である複数のトグルが見つかる可能性があります。トラバースするときにフィルタリング
を追加する必要がありますToggle.gameObject.activeSelf == false
。そうしないと、ロジック エラーが発生します。
エディタ開発関連
1. ゲームオブジェクトを削除するときに使用する必要があります
GameObject.DestroyImmediate(gameobject, true)
メソッドはコンポーネントを削除するために使用できます。パラメータ 1: ゲームオブジェクトコンポーネントオブジェクト、パラメータ 2: リソースの破壊を許可するかどうか。
使用できません: GameObject.Destroy(gameobject)
、エディター モードではリソースを削除できません
2. オブジェクトをインスタンス化します: インスタンス化
エディター モードでインスタンス化されたオブジェクトは保存できないため、追加する必要があります:EditorUtility.SetDirty(obj)
メソッド
GameObject obj = GameObject.Instantiate(levelPrefab, levelNode.transform);
EditorUtility.SetDirty(obj);
Unityコンポーネント関連
ライト :
ライト シャドウ タイプを設定します: (追記: this.gameObject.GetComponent().shadowType== にはパラメーターがありません)
this.gameObject.GetComponent<Light>().shadows = LightShadows.Soft;
その他:
1. 一部の携帯電話では、上部の縁が黒い場合があります。
電話機は全画面電話機である可能性があり、AndroidManifest.xml に追加する必要があります。
<meta-data android:name="android.max_aspect" android:value="2.2"/>
参考: Unity Android はどのようにしてフルスクリーンに適応しますか?
プレーヤー設定ウィンドウの「解像度とプレゼンテーション」タブを使用して、さまざまな表示デバイスに適応するようにゲームの画面解像度を設定します。ゲーム ウィンドウ モードを設定し、必要に応じてウィンドウのサイズと位置を調整します。一般的な設定パラメータ: