節電鯖民の遊び場

12-その他トラブルシューティング

最終更新:

mcforum

- view
メンバー限定 登録/ログイン

目次


表示系の異常

カメラのSize変更時、またはウインドウサイズ変更時に消えるスプライトがある

  • とりあえず、カメラの Clipping Planes を Near:-10000 Far:10000 に拡張して対処した。
    • おそらく本当は Z 座標値とカメラ:スプライトの前後関係あたりが原因な気がしている

葵ちゃんの位置がたまに茜ちゃんの前に来たり後ろに来たりする

  • 新しく葵ちゃんを作成するときに、茜ちゃんの位置を設定しているのが原因
    • 一旦 Transform に取り出して、z 座標を常に 0 に設定するようにして回避
      • AoiController
+ 詳細を開く
  1. ~省略~
  2. public class AoiController : MonoBehaviour, ICounterReceiver
  3. {
  4. ~省略~
  5. public void spawnAoi() {
  6. // prefab からインスタンスを生成
  7. Vector3 pos = posTarget.transform.position;
  8. pos.z = 0;
  9. GameObject aoi = Instantiate(prefab, pos, Quaternion.identity);
  10. ~省略~
  11. }
  12.  


処理速度の問題

ロード直後が重い

  • 物理演算の際に、大量に一気に増えたオブジェクト同士が干渉しあって計算量が増大している
    • 出現地点をある程度分散したらマシになるかもしれないと思い、x 座標を若干ずらすコードを追加
    • コライダーの有効化を遅延させて有効にすることで緩和(根本解決ではない)
      • あまり遅延が大きいと壁の判定を貫通していく。
      • ウインドウサイズ等壁との距離によっても壁到達までの時間が変わるため、カメラSizeが上がったら長めの遅延となるよう適当な計算式を入れている。
  • 他にもインスタンスを予め生成しておき、画面外にプールしておく方法があるとのこと
  • AoiController
+ 詳細を開く
  1. ~省略~
  2. public class AoiController : MonoBehaviour, ICounterReceiver
  3. {
  4. ~省略~
  5. public void spawnAoi() {
  6. // prefab からインスタンスを生成
  7. Vector3 pos = posTarget.transform.position;
  8. pos.z = 0;
  9. pos.x += (UnityEngine.Random.value - 0.5f); // 若干出現地点を左右に分散させる
  10. GameObject aoi = Instantiate(prefab, pos, Quaternion.identity);
  11. ~省略~
  12. // 生み出した葵ちゃんに力を与える
  13. aoiBody.AddForce(direction * prefabSpeed, ForceMode2D.Force);
  14. aoiBody.AddTorque(torque * prefabTorque, ForceMode2D.Force);
  15.  
  16. // 生成時の負荷軽減のため、接触判定を0.2秒間保留する。
  17. CapsuleCollider2D collider = aoi.GetComponent<CapsuleCollider2D>();
  18. collider.enabled = false;
  19. StartCoroutine(DelayCoroutineSeconds(0.1f * (gameCntl.GetCount() * 0.01f), () => {
  20. collider.enabled = true;
  21. }));
  22. }
  23. private IEnumerator DelayCoroutineSeconds(float interval, Action action)
  24. {
  25. yield return new WaitForSeconds(interval);
  26. action?.Invoke();
  27. }
  28. ~省略~
  29. }
  30.  

目安箱バナー