Ejemplo n.º 1
0
        /// <summary>
        /// 歯車メニューにボタンを追加
        /// </summary>
        /// <param name="name">ボタンオブジェクト名。null可</param>
        /// <param name="plugin">ボタンを追加するプラグイン。アイコンへのマウスオーバー時に名前とバージョンが表示される</param>
        /// <param name="pngData">アイコン画像。null可(システムアイコン使用)。32x32ピクセルのPNGファイル</param>
        /// <param name="action">コールバック。null可(コールバック削除)。アイコンクリック時に呼び出されるコールバック</param>
        /// <returns>生成されたボタンのGameObject</returns>
        /// <example>
        /// ボタン追加例
        /// <code>
        /// public class MyPlugin : UnityInjector.PluginBase {
        ///     void Awake() {
        ///         GearMenu.Buttons.Add(GetType().Name, this, null, GearMenuCallback);
        ///     }
        ///     void GearMenuCallback(GameObject goButton) {
        ///         Debug.LogWarning("GearMenuCallback呼び出し");
        ///     }
        /// }
        /// </code>
        /// </example>
        public static GameObject Add(string name, UnityInjector.PluginBase plugin, byte[] pngData, Action <GameObject> action)
        {
            var    pluginNameAttr    = Attribute.GetCustomAttribute(plugin.GetType(), typeof(PluginNameAttribute)) as PluginNameAttribute;
            var    pluginVersionAttr = Attribute.GetCustomAttribute(plugin.GetType(), typeof(PluginVersionAttribute)) as PluginVersionAttribute;
            string pluginName        = (pluginNameAttr == null) ? plugin.Name : pluginNameAttr.Name;
            string pluginVersion     = (pluginVersionAttr == null) ? string.Empty : pluginVersionAttr.Version;
            string label             = string.Format("{0} {1}", pluginName, pluginVersion);

            return(Add(name, label, pngData, action));
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 歯車メニューにボタンを追加
 /// </summary>
 /// <param name="plugin">ボタンを追加するプラグイン。アイコンへのマウスオーバー時に名前とバージョンが表示される</param>
 /// <param name="pngData">アイコン画像。null可(システムアイコン使用)。32x32ピクセルのPNGファイル</param>
 /// <param name="action">コールバック。null可(コールバック削除)。アイコンクリック時に呼び出されるコールバック</param>
 /// <returns>生成されたボタンのGameObject</returns>
 /// <example>
 /// ボタン追加例
 /// <code>
 /// public class MyPlugin : UnityInjector.PluginBase {
 ///     void Awake() {
 ///         GearMenu.Buttons.Add(this, null, GearMenuCallback);
 ///     }
 ///     void GearMenuCallback(GameObject goButton) {
 ///         Debug.LogWarning("GearMenuCallback呼び出し");
 ///     }
 /// }
 /// </code>
 /// </example>
 public static GameObject Add(UnityInjector.PluginBase plugin, byte[] pngData, Action <GameObject> action)
 {
     return(Add(null, plugin, pngData, action));
 }