🏷️ Attribute一覧
デバッグメニューを構築するための主要な属性(Attributes)です。
名前空間
using Logify;
🔘 [LogiButton]
メソッドを実行するための基本属性です。引数の有無により自動的にUIが切り替わります。
1. ボタンのみ(引数なし)
| 引数 | 説明 |
|---|---|
| 第1引数 | ラベル名 |
| 第2引数 | ボタン内のテキスト |
[LogiButton("Test Button", "Execute")]
void Test() { /* 処理 */ }
2. インプットあり(引数あり)
引数を持つメソッドに付与すると、値を入力して実行できるUIが生成されます。
string, int, float, bool, Enum に対応しています。
| 引数 | 説明 |
|---|---|
| 第1引数 | ラベル名 |
| 第2引数 | ボタン内のテキスト |
| 第3引数 | フィールドの初期値 |
- Numeric / String
- Boolean
- Enum

[LogiButton("Test Integer", 10)]
void Test(int integer) { }

[LogiButton("Test Boolean", "Set", true)]
void Test(bool boolean) { }

[LogiButton("Test Enum", "Select")]
void Test(TestEnum type) { }
📥 [LogiInput]
値を直接入力・変更するための属性です。
string, int, float, bool, Enum に対応しています。
| 引数 | 説明 |
|---|---|
| 第1引数 | ラベル名 |
| 第2引数 | フィールドの初期値 |
- Numeric / String
- Boolean
- Enum

[LogiInput("Test Integer", 100)]
void Test(int integer) { }

[LogiInput("Test input Boolean", true)]
void TestInput(bool boolean) { }

[LogiInput("Test input Enum")]
void TestInput(TestEnum type) { }
🎚️ [LogiRange] / [LogiRangeButton]
数値を範囲指定(スライダー)で調整します。
int, float に対応しています。
- Standard Range
- Range with Button

| 引数 | 説明 |
|---|---|
| 第1引数 | ラベル名 |
| 第2引数 | 最小値 |
| 第3引数 | 最大値 |
| 第4引数 | フィールドの初期値 |
[LogiRange("Test Range integer", 0, 100, 10)]
void TestRangeButton(int integer) { }

| 引数 | 説明 |
|---|---|
| 第1引数 | ラベル名 |
| 第2引数 | ボタン内のテキスト |
| 第3引数 | 最小値 |
| 第4引数 | 最大値 |
| 第5引数 | フィールドの初期値 |
[LogiRangeButton("Test Range integer", "Run", 0, 100, 10)]
void TestRangeButton(int integer) { }
🖼️ [LogiPreview]
画像を確認できます。
Sprite、 Texture2D に対応します。
[LogiPreview("Test Sprite")]
Sprite GetPlayerIcon() => _playerIcon;
📝 Information Display
デバッグ情報を「表示」することに特化した属性です。
[LogiLabel]
シンプルなテキスト表示。
[LogiLabel]
string GetStatus() => "Test Label";
[LogiStatus]
ラベル付きのステータス表示。コピーボタンの表示オプションを選択可能です。
[LogiStatus("Test Status", true)]
string GetBuildSign() => $"Integer set to: {_integer}";
[LogiTextArea]
長文の確認や入力に適しています。
[LogiTextArea("Test Text Area")]
void UpdateLog(string text) { }
⚠️ Managed Stripping に関する注意点
Unityのビルド設定で Managed Stripping Level が Medium または High に設定されている場合、コード上で直接参照されていないメソッドやフィールドは、Unityによってビルドから削除(ストリップ)される可能性があります。
Logify-Unity はリフレクションを使用して Attribute を検知するため、ストリッピングの対象になるとデバッグメニューに表示されません。この問題が発生した場合、Attribute を付与したメンバに [Preserve] 属性を併記してください。
using UnityEngine.Scripting; // Preserve属性に必要
using Logify;
public class PlayerDebug : MonoBehaviour
{
[LogiButton("Level Up")]
[Preserve] // ストリッピング対策
void LevelUp()
{
// ...
}
}
一括対策
個別に [Preserve] を付けるのが手間な場合は、link.xml ファイルを作成し、特定のクラスや名前空間をまとめてストリッピングの対象外に設定することをお勧めします。
link.xmlの設定例を表示
<linker>
<assembly fullname="Logify" preserve="all"/>
<assembly fullname="YourGame.Scripts">
<namespace fullname="YourGame.Debug" preserve="all"/>
<type fullname="YourGame.Managers.PlayerManager" preserve="nothing">
<method signature="System.Void LevelUp()"/>
<method signature="System.Void AddItem(System.Int32,System.String)"/>
</type>
</assembly>
<assembly fullname="UnityEngine.CoreModule" preserve="all"/>
</linker>