Rename Symbols Plugin
シンボル名をランダムに生成された名前に置き換えるプラグイン
RenameSymbols (Plana.Composition.RenameSymbols
) プラグインはシンボル (名前空間, クラス, プロパティ, メソッド, フィールド変数, ローカル変数, and Enum メンバー) をランダムに生成された名前へと置き換えます。
例
namespace AudioLink
{
public partial class AudioLink
{
public void SetMediaVolume(float volume)
{
audioMaterial.SetFloat("_MediaVolume", volume);
}
}
public enum MediaPlaying
{
None = 0,
Playing = 1,
Paused = 2,
Stopped = 3,
Loading = 4,
Streaming = 5,
Error = 6
}
}
namespace _0xc21b5618
{
public partial class _0x12771ecc
{
public void _0xc842a475(float _0x06b29be3)
{
_0xc3be3b48.SetFloat("_MediaVolume", _0x06b29be3);
}
}
public enum _0x524f5ceb
{
[global::UnityEngine.InspectorName("None")]
_0x228290b2 = 0,
[global::UnityEngine.InspectorName("Playing")]
_0x933ce6cc = 1,
[global::UnityEngine.InspectorName("Paused")]
_0x9088d417 = 2,
[global::UnityEngine.InspectorName("Stopped")]
_0x52c8b2af = 3,
[global::UnityEngine.InspectorName("Loading")]
_0xd021ab9d = 4,
[global::UnityEngine.InspectorName("Streaming")]
_0x27608f68 = 5,
[global::UnityEngine.InspectorName("Error")]
_0x06da0cb3 = 6
}
}
Options
Options:
--rename-namespaces rename namespaces [default: False]
--rename-classes rename classes [default: False]
--rename-properties rename properties [default: False]
--rename-fields rename fields [default: False]
--rename-methods rename methods without referencing by SendCustomEvent [default: False]
--with-send-custom-event rename all methods [default: False]
--rename-variables rename local variables [default: False]
--enum-attributes add UnityEngine.InspectorName to enum members [default: False]
--rename-symbols use rename-symbols [default: False]
UdonSharp Program Asset などでシリアライズされた値を維持する場合は、 /* plana:disable */
コメントを追加してください。
Enum の表示名を維持したい場合は、 --enum-attributes
オプションを追加することで維持できます。
Rename Namespaces
--rename-namespaces
を指定した場合、 namespace
宣言をリネームします。
NamespaceDeclarationSyntax のみに対応しており、FileScopedNamespaceDeclarationSyntax は無視します。
namespace AudioLink {}
namespace _0xc21b5618 {}
Rename Classes
Warning この機能を使用した場合、 Udon C# Program Asset と C# Script との参照が切れます。
Important この機能はまだ Unity 統合バージョンでは完全に対応していません。もし使用する場合、 Udon C# Program Asset と C# Script 間の参照を手動で設定する必要があります。
クラス名を変更します。 ClassDeclarationSyntax と EnumDeclarationSyntax に対応しています。
public class AudioLink {}
public enum MediaPlaying {}
public class _0x12771ecc {}
public enum _0x524f5ceb {}
Rename Properties
プロパティ名を変更します。 Backing Field の変更には対応していません。
public string[] List { get; }
public string[] _0x73a8b924 { get; }
Rename Fields
フィールド変数名を変更します。
public partial class AudioLink : MonoBehaviour
{
[Header("Basic EQ")]
[Range(0.0f, 2.0f)]
[Tooltip("Warning: this setting might be taken over by AudioLinkController")]
public float gain = 1f;
}
public partial class AudioLink : MonoBehaviour
{
[Header("Basic EQ")]
[Range(0.0f, 2.0f)]
[Tooltip("Warning: this setting might be taken over by AudioLinkController")]
public float _0x4144d8a1 = 1f;
}
Rename Methods
メソッド名を変更します。
public void SetMediaVolume(float volume)
{
audioMaterial.SetFloat("_MediaVolume", volume);
}
public void _0xc842a475(float volume)
{
audioMaterial.SetFloat("_MediaVolume", volume);
}
With Send Custom Event
Rename Variables
ローカル変数名を変更します。 ParameterSyntax#Identifier と VariableDeclaratorSyntax に対応しています。
public void SetMediaVolume(float volume)
{
audioMaterial.SetFloat("_MediaVolume", volume);
}
public void SetMediaVolume(float _0x06b29be3)
{
audioMaterial.SetFloat("_MediaVolume", _0x06b29be3);
}
Enum Attributes
Inspector 上での表示名を UnityEngine.InspectorNameAttribute
を追加することで維持します。
public enum MediaPlaying
{
None = 0,
}
public enum _0x524f5ceb
{
[global::UnityEngine.InspectorName("None")]
_0x228290b2 = 0,
}
Serializer Attributes
UnityEngine.Serialization.FormerlySerializedAsAttribute
を追加することで、変数名が変わった場合でも元の名前を元に値を参照します。
public class AudioLink
{
public int depth;
}
public class AudioLink
{
[global::UnityEngine.Serialization.FormerlySerializedAs("depth")]
public int _0x228290b2;
}
Algorithm
このプラグインはいくつかの命名形式に対応しています。デフォルトでは hexadecimal
が使用されます。
hexadecimal
- identifier names like_0x1234abcd
mangled
- short identifier names likea
,b
,aa
mangled-shuffle
- same asmangled
but with shuffled alphabet
Comments
コメントを使用することで、特定の箇所だけ難読化を制御することが可能です。
/* plana:disable */
このコメント (アノテーションコメント) は直後に出てくる構文にのみ適用されます。 例:
/* plana:disable */
public void ExampleMethod()
{
this._a.SomeMethod();
}
// to
public void ExampleMethod()
{
this._0x12345678._0x87654321();
}