Unity 開発で遭遇する問題と解決策のまとめ

ゲームを開発していると必ず問題が発生するのですが、その解決策を記録せずに解決してしまったので、間隔が長く、後で再び問題に遭遇すると、また穴をくぐることになる…ということです。解決策はここで直接確認できます。

この記事は随時更新されますので、落とし穴に遭遇した場合は一度更新してください。

うぐい関連:

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 はどのようにしてフルスクリーンに適応しますか?
プレーヤー設定ウィンドウの「解像度とプレゼンテーション」タブを使用して、さまざまな表示デバイスに適応するようにゲームの画面解像度を設定します。ゲーム ウィンドウ モードを設定し、必要に応じてウィンドウのサイズと位置を調整します。一般的な設定パラメータ:
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/QO_GQ/article/details/130063610