独自のGUIを作成する必要なく、ユーザーがプラグインをどのように動作させるかを簡単に構成できるようにする簡単な方法。ユーザーは、キーボードショートカットでさえ、公開する設定を変更できます。
Configuration Managerは、ホットキーを押すことでゲーム内にアクセスできます(デフォルトではF1)。設定名の上にホバリングして、説明がある場合は説明します。
このプラグインには、Bepinex 5(バージョン5.4.20以降、モノのみ)とBepinex 6(夜間のビルド664以降、IL2CPPのみ)の2つのバージョンがあります。
注:.xmlファイルは、リリースに含まれるZIPは、プラグインの開発者に役立ちます。プラグインでconfigurationmanager.dllを参照すると、IDEにタイプとメソッドの説明が提供されます。ユーザーはそれを無視できます。
Arial.ttf
フォントが欠落している可能性があります(Unity UIデフォルトフォントは、一部のゲームでは異なる場合があります)。これは、誤ったワインでLinuxでゲームを実行するときに発生する可能性があります。UnityEngine.IMGUIModule.dll
除外していない一部のゲームでのみ機能します(一部のゲームのサポートは、行方不明のメンバーを復元するパッチャーで追加できます)。 ConfigurationManagerは、プラグインのConfig
からすべての設定を自動的に表示します。すべてのメタデータ(説明、値の範囲など)は、ConfigurationManagerによってユーザーに設定を表示するために使用されます。
ほとんどの場合、ConfigurationManager.dllを参照したり、設定で特別なことをする必要はありません。できるだけ多くのメタデータを追加するようにしてください(設定ファイルを直接使用しても、すべてのユーザーが役立ちます)。常に説明セクションとキー名、説明、許容可能な値リストまたは範囲(該当する場合は)を追加してください。
設定を作成するときにAcceptableValueRange
を指定します。範囲が0F -1Fまたは0-100の場合、スライダーは%として表示されます(これは以下でオーバーライドできます)。
CaptureWidth = Config . Bind ( " Section " , " Key " , 1 , new ConfigDescription ( " Description " , new AcceptableValueRange < int > ( 0 , 100 ) ) ) ;
設定を作成するときは、 AcceptableValueList
を指定します。 Enumを使用する場合、許容可能な値を指定する必要はありません。すべての列挙値が表示されます。いくつかの値を非表示にする場合は、属性を使用する必要があります。
注: System.ComponentModel.DescriptionAttribute
をEnumのアイテムに追加して、表示した名前をオーバーライドできます。例えば:
public enum MyEnum
{
// Entry1 will be shown in the combo box as Entry1
Entry1 ,
[ Description ( " Entry2 will be shown in the combo box as this string " ) ]
Entry2
}
キーボードショートカットのタイプの設定を追加します。この設定の値を使用して、更新方法内の入力(iSDownを使用することをお勧めします)を確認します。
KeyboardShortCutクラスは、シフト、コントロール、およびALTを修飾子キーをサポートします。それらは適切に処理され、K+Shift+制御などの一般的な問題を防ぎ、K+Shiftが持たない場合にトリガーします。
private ConfigEntry < KeyboardShortcut > ShowCounter { get ; set ; }
public Constructor ( )
{
ShowCounter = Config . Bind ( " Hotkeys " , " Show FPS counter " , new KeyboardShortcut ( KeyCode . U , KeyCode . LeftShift ) ) ;
}
private void Update ( )
{
if ( ShowCounter . Value . IsDown ( ) )
{
// Handle the key press
}
}
設定のタグとして特別なクラスのインスタンスを渡すことにより、設定がConfiguration Managerウィンドウ内に表示される方法を変更できます。特別なクラスコードはここからダウンロードできます。 .csファイルをダウンロードして、プロジェクトにドラッグするだけです。
設定のオーバーライド順序と、設定の1つをAdvancedとしてマークする例は次のとおりです。
// Override IsAdvanced and Order
Config . Bind ( " X " , " 1 " , 1 , new ConfigDescription ( " " , null , new ConfigurationManagerAttributes { IsAdvanced = true , Order = 3 } ) ) ;
// Override only Order, IsAdvanced stays as the default value assigned by ConfigManager
Config . Bind ( " X " , " 2 " , 2 , new ConfigDescription ( " " , null , new ConfigurationManagerAttributes { Order = 1 } ) ) ;
Config . Bind ( " X " , " 3 " , 3 , new ConfigDescription ( " " , null , new ConfigurationManagerAttributes { Order = 2 } ) ) ;
ConfigurationManagerによってサポートされていない設定タイプを使用している場合は、引き出しアクションを追加できます。アクションはOngui内で実行されます。Guilayoutを使用して、以下の例に示すように設定を描画します。
個々の設定にカスタム設定ドロワーを使用するには、属性クラスのCustomDrawer
フィールドを使用します。属性クラスの詳細については、上記を参照してください。
void Start ( )
{
// Add the drawer as a tag to this setting.
Config . Bind ( " Section " , " Key " , " Some value "
new ConfigDescription ( " Desc " , null , new ConfigurationManagerAttributes { CustomDrawer = MyDrawer } ) ;
}
static void MyDrawer ( BepInEx . Configuration . ConfigEntryBase entry )
{
// Make sure to use GUILayout.ExpandWidth(true) to use all available space
GUILayout . Label ( entry . BoxedValue , GUILayout . ExpandWidth ( true ) ) ;
}
設定タイプのすべての設定の引き出しを指定できます。 ConfigurationManager.RegisterCustomSettingDrawer(Type, Action<SettingEntryBase>)
を使用してこれを行います。
警告:これには、プロジェクトでconfigurationmanager.dllを参照する必要があり、すべてのユーザーがインストールされていると確信していない限り、お勧めしません。通常、上記の方法を使用して、代わりに各設定にカスタムドロワーを個別に追加する方が良いことです。
void Start ( )
{
ConfigurationManager . RegisterCustomSettingDrawer ( typeof ( MyType ) , CustomDrawer ) ;
}
static void CustomDrawer ( SettingEntryBase entry )
{
GUILayout . Label ( ( MyType ) entry . Get ( ) , GUILayout . ExpandWidth ( true ) ) ;
}