Inspector上でvoid関数を指定する
using UnityEngine; using UnityEngine.Events; // 必要 public class Test : MonoBehaviour { // void関数を指定 public UnityEvent testEvent; void Start() { testEvent.Invoke(); } }
画面サイズ、スクリーンモードの切り替え
プレイヤーが設定画面からゲームウィンドウの画面サイズ、スクリーンモードを切り替えれる機能を実装したので、メモ代わりに投下。
Screen.SetResolution関数を使う
第一、第二引数に画面の解像度、第三引数にスクリーンモード(Bool型、もしくはFullScreenMode)、第四引数にHzを指定できます。
例えば、画面解像度を1920x1080、フルスクリーンなら
Screen.SetResolution(1920, 1080, true);
画面解像度を1280x720、ウィンドウモードなら
Screen.SetResolution(1280, 720, false);
リフレッシュレートを120hzに変更したい場合は、第四引数にそのままHzの数値を入れてあげればOKです。
Screen.SetResolution(1920, 1080, true, 120);
FullScreenMode
前述のとおり、第三引数のウィンドウモードはbool型以外にも、FullScreenModeで指定も可能です。
例えば、画面解像度を1920x1080、フルスクリーンなら
Screen.SetResolution(1920, 1080, FullScreenMode.ExclusiveFullScreen);
画面解像度を1280x720、ウィンドウモードなら
Screen.SetResolution(1280, 720, FullScreenMode.Windowed);
また、枠なしのフルスクリーンウィンドウ(FullScreenMode.FullScreenWindow)や、FullScreenMode.MaximizedWindowというモードも指定できるそうです。
注意点
Editor上で動かしても機能しません。ビルドしてデバッグする必要があります。
詳しくは調べてませんが、SetResolutionで設定した解像度やウィンドウモードは次回以降の起動でも引き継がれるそうで、別途PlayerPrefsやEasySave、もしくは独自で実装したセーブデータを用いなくてもよさそうです。