1. 文字列の連結はStringBuilderを使用するUnity記事: 目次
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
using System.Text; using UnityEngine; public class Example : MonoBehaviour { string userName = "ノッホソ"; int score = 65; string message; // Use this for initialization private void Start () { // 最適化前 message = userName + "さんのスコアは" + score + "です"; // 最適化後 StringBuilder sb = new StringBuilder(); sb.Append(userName); sb.Append("さんのスコアは"); sb.Append(score); sb.Append("です"); message = sb.ToString(); } } |
2. ループ内でのインスタンス化は避ける
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
using System.Text; using UnityEngine; public class Example : MonoBehaviour { int count; // Use this for initialization private void Start() { // 最適化前 while (count <= 5) { StringBuilder sb1 = new StringBuilder(); sb1.Append("Count: "); sb1.Append(count); Debug.Log(sb1.ToString()); count++; } // 最適化後 StringBuilder sb2 = new StringBuilder(); while (count <= 10) { sb2.Append("Count: "); sb2.Append(count); Debug.Log(sb2.ToString()); sb2.Length = 0; count++; } } } |
3. フレームレートを固定する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
using UnityEngine; /// <summary> /// /// Edit → ProjectSettings → Quality → Other → V Sync Count: Don'tSync /// /// ※ Every V Blank: 60FPS, Every Second V Blank: 30FPS /// /// </summary> public class FrameRateManager : MonoBehaviour { private void Awake() { // フレームレートを指定 Application.targetFrameRate = 50; } } |
4. Debug.Logをオフにする
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
using UnityEngine; /// <summary> /// /// GameObjectにアタッチする必要はない /// /// </summary> public class DisabledDebugLog : MonoBehaviour { // シーン読み込み前に実行 [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] private static void DebugLogSetting() { // Debug.Logを非表示にする #if UNITY_EDITOR Debug.unityLogger.logEnabled = true; #else Debug.unityLogger.logEnabled = false; #endif } } |