Maison base de données tutoriel mysql Unity 注释小技巧

Unity 注释小技巧

Jun 07, 2016 pm 02:59 PM
unity Juste 字段 技巧 注释 添加 特效

你只需要在字段上添加特效即可 [Header( " 注释 " )][Space( 20 )] public Vector3 test1; ===================================================================================== 自己抽时间写了一个中文显示小脚本.下次问问老大能不能加到项目中去 usin

Unity 注释小技巧

你只需要在字段上添加特效即可


[Header(<span>"</span><span>注释</span><span>"</span><span>)]
[Space(</span><span>20</span><span>)]
</span><span>public</span> Vector3 test1;
Copier après la connexion

 

=====================================================================================

Unity 注释小技巧自己抽时间写了一个中文显示小脚本.下次问问老大能不能加到项目中去

Unity 注释小技巧

 

<span>using</span><span> UnityEngine;
</span><span>using</span><span> System.Collections;
</span><span>using</span><span> UnityEditor;
</span><span>using</span><span> System;
</span><span>using</span><span> System.Reflection;
</span><span>using</span><span> System.Collections.Generic;

[CustomEditor(</span><span>typeof</span><span>(MyCompoment))]
</span><span>public</span> <span>class</span><span> MyCompomentEditor : Editor{
    </span><span>public</span> MyCompomentEditor():<span>base</span><span>()
    {
        </span><span>//</span><span>Debug.Log("我初始化了");</span>
<span>    }


    </span><span>private</span> <span>static</span> <span>bool</span> isDevelop = <span>true</span><span>;

    </span><span>public</span> <span>override</span> <span>void</span><span> OnInspectorGUI()
    {
        </span><span>if</span><span> (isDevelop)
        {
            MyCompoment edit </span>=<span> (MyCompoment)target;
            Type t </span>=<span> edit.GetType();
            </span><span>string</span> label = <span>string</span><span>.Empty;
            FieldInfo[] fieldInfs </span>=<span> t.GetFields();
            System.Object[] atrrs </span>= <span>null</span><span>;
            </span><span>for</span> (<span>int</span> i = <span>0</span>; i )
            {
                atrrs = fieldInfs[i].GetCustomAttributes(<span>false</span><span>);
                </span><span>for</span> (<span>int</span> k = <span>0</span>; k false).Length; k++<span>)
                {
                    </span><span>if</span> (atrrs[k] <span>is</span><span> LabelAttribute)
                    {

                        label </span>=<span> ((LabelAttribute)atrrs[k]).Label;
                        </span><span>switch</span><span> (fieldInfs[i].FieldType.Name)
                        {
                            </span><span>case</span> <span>"</span><span>String</span><span>"</span><span>:
                                fieldInfs[i].SetValue(edit, EditorGUILayout.TextField(label, fieldInfs[i].GetValue(edit).ToString()));
                                </span><span>break</span><span>;
                            </span><span>case</span> <span>"</span><span>Float</span><span>"</span><span>:
                                fieldInfs[i].SetValue(edit, EditorGUILayout.FloatField(label, (</span><span>float</span><span>)fieldInfs[i].GetValue(edit)));
                                </span><span>break</span><span>;
                            </span><span>//</span><span>case "Double":
                            </span><span>//</span><span>    fieldInfs[i].SetValue(edit, EditorGUILayout.Doube(label, (double)fieldInfs[i].GetValue(edit)));
                            </span><span>//</span><span>    break;</span>
                            <span>case</span> <span>"</span><span>Int</span><span>"</span><span>:
                                fieldInfs[i].SetValue(edit, EditorGUILayout.IntField(label, (</span><span>int</span><span>)fieldInfs[i].GetValue(edit)));
                                </span><span>break</span><span>;
                            </span><span>case</span> <span>"</span><span>Int32</span><span>"</span><span>:
                                fieldInfs[i].SetValue(edit, EditorGUILayout.IntField(label, (</span><span>int</span><span>)fieldInfs[i].GetValue(edit)));
                                </span><span>break</span><span>;
                            </span><span>case</span> <span>"</span><span>Color</span><span>"</span><span>:
                                fieldInfs[i].SetValue(edit, EditorGUILayout.ColorField(label, (UnityEngine.Color)fieldInfs[i].GetValue(edit)));
                                </span><span>break</span><span>;
                            </span><span>case</span> <span>"</span><span>GameObject</span><span>"</span><span>:
                                fieldInfs[i].SetValue(edit, EditorGUILayout.ObjectField(label, (UnityEngine.Object)fieldInfs[i].GetValue(edit), </span><span>typeof</span><span>(GameObject)));
                                </span><span>break</span><span>;
                            </span><span>case</span> <span>"</span><span>Component</span><span>"</span><span>:
                                Debug.Log(</span><span>"</span><span>运行过Component</span><span>"</span><span>);
                                fieldInfs[i].SetValue(edit, EditorGUILayout.ObjectField(label, (UnityEngine.Object)fieldInfs[i].GetValue(edit), </span><span>typeof</span><span>(Component)));
                                </span><span>break</span><span>;
                            </span><span>case</span> <span>"</span><span>Vector2</span><span>"</span><span>:
                                fieldInfs[i].SetValue(edit, EditorGUILayout.Vector2Field(label, (Vector2)fieldInfs[i].GetValue(edit)));
                                </span><span>break</span><span>;
                            </span><span>case</span> <span>"</span><span>Vector3</span><span>"</span><span>:
                                fieldInfs[i].SetValue(edit, EditorGUILayout.Vector3Field(label, (Vector3)fieldInfs[i].GetValue(edit)));
                                </span><span>break</span><span>;
                            </span><span>case</span> <span>"</span><span>Vector4</span><span>"</span><span>:
                                fieldInfs[i].SetValue(edit, EditorGUILayout.Vector4Field(label, (Vector4)fieldInfs[i].GetValue(edit)));
                                </span><span>break</span><span>;
                            </span><span>//</span><span>case "Test":
                            </span><span>//</span><span>    Debug.Log("运行过Component");
                            </span><span>//</span><span>    fieldInfs[i].SetValue(edit, EditorGUILayout.ObjectField(label, (UnityEngine.Object)fieldInfs[i].GetValue(edit), typeof(Component)));
                            </span><span>//</span><span>    break;</span>
                            <span>default</span><span>:

                                </span><span>//</span><span>Debug.Log("fieldInfs[i].Name   " + fieldInfs[i].FieldType.BaseType.Name);</span>
                                <span>if</span> (fieldInfs[i].FieldType.BaseType.Name == <span>"</span><span>MonoBehaviour</span><span>"</span><span>)
                                {
                                    fieldInfs[i].SetValue(edit, EditorGUILayout.ObjectField(label, (UnityEngine.Object)fieldInfs[i].GetValue(edit), fieldInfs[i].FieldType));

                                }
                                
                                </span><span>break</span><span>;
                        }
                    }
                }
            }

        }
        </span><span>else</span><span>
        {
            </span><span>base</span><span>.OnInspectorGUI();
        } 
    }


    </span><span>#region</span> 暂时没有用到的代码


    <span>/*</span><span>
    /// <summary>
    /// 缓存实例的属性,下次就不需要使用循环了
    /// </summary>
    public Dictionary<string string> dir;

    public void GetProrptes() 
    {
        if (isDevelop)
        {
            MyCompoment edit = (MyCompoment)target;
            Type t = edit.GetType();
            string label = string.Empty;

            FieldInfo[] fieldInfos = t.GetFields();
            System.Object[] atrrs = null;
            GUIContent contextUI = null;

            for (int i = 0; i <span>*/</span>
    <span>#endregion</span><span>
}</span></string></span>
Copier après la connexion

MyCompoment:

<span>using</span><span> UnityEngine;
</span><span>using</span><span> System.Collections;

[SerializeField]
</span><span>public</span> <span>class</span><span> MyCompoment : MonoBehaviour {

    [LabelAttribute(Label </span>= <span>"</span><span>名字</span><span>"</span><span>)]
    </span><span>public</span> <span>string</span> MyName = <span>"</span><span>123</span><span>"</span><span>;

    [LabelAttribute(Label </span>= <span>"</span><span>float数字</span><span>"</span><span>)]
    </span><span>public</span> <span>float</span> float1 = <span>100</span><span>;

    [LabelAttribute(Label </span>= <span>"</span><span>double数字</span><span>"</span><span>)]
    </span><span>public</span> <span>double</span> double1 = <span>100</span><span>;

    [LabelAttribute(Label </span>= <span>"</span><span>int数字</span><span>"</span><span>)]
    </span><span>public</span> <span>int</span> int1 = <span>100</span><span>;

    [LabelAttribute(Label </span>= <span>"</span><span>颜色</span><span>"</span><span>)]
    </span><span>public</span> Color color1 =<span> Color.red;

    [LabelAttribute(Label </span>= <span>"</span><span>游戏物体</span><span>"</span><span>)]
    </span><span>public</span><span> GameObject GameObject1;

    [LabelAttribute(Label </span>= <span>"</span><span>组件</span><span>"</span><span>)]
    </span><span>public</span><span> StartPanel Component1;

    [LabelAttribute(Label </span>= <span>"</span><span>2D</span><span>"</span><span>)]
    </span><span>public</span><span> Vector2 Vector2;

    [LabelAttribute(Label </span>= <span>"</span><span>3D</span><span>"</span><span>)]
    </span><span>public</span><span> Vector3 Vector3;

    [LabelAttribute(Label </span>= <span>"</span><span>4D</span><span>"</span><span>)]
    </span><span>public</span><span> Vector4 Vector4;

}</span>
Copier après la connexion

LabelAttribute特性:

<span>using</span><span> UnityEngine;
</span><span>using</span><span> System.Collections;
</span><span>using</span><span> System;

</span><span>public</span> <span>class</span><span> LabelAttribute : Attribute {
    </span><span>public</span> <span>string</span><span> Label;

}</span>
Copier après la connexion

 

源代码:  http://yunpan.cn/cJhp4tThyGauJ  访问密码 5789

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment ajouter un téléviseur à Mijia Comment ajouter un téléviseur à Mijia Mar 25, 2024 pm 05:00 PM

De nombreux utilisateurs privilégient de plus en plus l'écosystème électronique d'interconnexion de la maison intelligente Xiaomi dans la vie moderne. Après vous être connecté à l'application Mijia, vous pouvez facilement contrôler les appareils connectés avec votre téléphone mobile. Cependant, de nombreux utilisateurs ne savent toujours pas comment ajouter Mijia à. leur application Homes., ce guide didacticiel vous présentera les méthodes et étapes de connexion spécifiques, dans l'espoir d'aider tous ceux qui en ont besoin. 1. Après avoir téléchargé l'application Mijia, créez ou connectez-vous au compte Xiaomi. 2. Méthode d'ajout : Une fois le nouvel appareil allumé, rapprochez le téléphone de l'appareil et allumez le téléviseur Xiaomi. Dans des circonstances normales, une invite de connexion apparaîtra. Sélectionnez « OK » pour entrer dans le processus de connexion de l'appareil. Si aucune invite ne s'affiche, vous pouvez également ajouter l'appareil manuellement. La méthode est la suivante : après avoir accédé à l'application Smart Home, cliquez sur le premier bouton en bas à gauche.

Partage de conseils Win11 : une astuce pour éviter de vous connecter avec un compte Microsoft Partage de conseils Win11 : une astuce pour éviter de vous connecter avec un compte Microsoft Mar 27, 2024 pm 02:57 PM

Partage de conseils Win11 : une astuce pour éviter la connexion au compte Microsoft Windows 11 est le dernier système d'exploitation lancé par Microsoft, avec un nouveau style de conception et de nombreuses fonctions pratiques. Cependant, pour certains utilisateurs, devoir se connecter à leur compte Microsoft à chaque démarrage du système peut être un peu ennuyeux. Si vous en faites partie, autant essayer les conseils suivants, qui vous permettront d'éviter de vous connecter avec un compte Microsoft et d'accéder directement à l'interface de bureau. Tout d’abord, nous devons créer un compte local dans le système pour nous connecter au lieu d’un compte Microsoft. L'avantage de faire cela est

Quelles sont les astuces pour les novices pour créer des formulaires ? Quelles sont les astuces pour les novices pour créer des formulaires ? Mar 21, 2024 am 09:11 AM

Nous créons et éditons souvent des tableaux dans Excel, mais en tant que novice qui vient d'entrer en contact avec le logiciel, comment utiliser Excel pour créer des tableaux n'est pas aussi simple que pour nous. Ci-dessous, nous réaliserons quelques exercices sur certaines étapes de création de tables que les novices, c'est-à-dire les débutants, doivent maîtriser. Nous espérons que cela sera utile à ceux qui en ont besoin. Un exemple de formulaire pour les débutants est présenté ci-dessous : voyons comment le remplir ! 1. Il existe deux méthodes pour créer un nouveau document Excel. Vous pouvez cliquer avec le bouton droit de la souris sur un emplacement vide du fichier [Bureau] - [Nouveau] - [xls]. Vous pouvez également [Démarrer]-[Tous les programmes]-[Microsoft Office]-[Microsoft Excel 20**] 2. Double-cliquez sur notre nouvel ex

Un incontournable pour les vétérans : Conseils et précautions pour * et & en langage C Un incontournable pour les vétérans : Conseils et précautions pour * et & en langage C Apr 04, 2024 am 08:21 AM

En langage C, il représente un pointeur qui stocke l'adresse d'autres variables ; & représente l'opérateur d'adresse, qui renvoie l'adresse mémoire d'une variable. Les conseils pour l'utilisation des pointeurs incluent la définition des pointeurs, le déréférencement des pointeurs et la garantie que les pointeurs pointent vers des adresses valides. Les conseils pour l'utilisation des opérateurs d'adresse incluent l'obtention d'adresses variables et le retour de l'adresse du premier élément du tableau lors de l'obtention de l'adresse d'un élément du tableau ; . Un exemple pratique démontrant l'utilisation d'opérateurs de pointeur et d'adresse pour inverser une chaîne.

Guide de démarrage de VSCode : une lecture incontournable pour les débutants afin de maîtriser rapidement les compétences d'utilisation ! Guide de démarrage de VSCode : une lecture incontournable pour les débutants afin de maîtriser rapidement les compétences d'utilisation ! Mar 26, 2024 am 08:21 AM

VSCode (Visual Studio Code) est un éditeur de code open source développé par Microsoft. Il possède des fonctions puissantes et une prise en charge riche des plug-ins, ce qui en fait l'un des outils préférés des développeurs. Cet article fournira un guide d'introduction aux débutants pour les aider à maîtriser rapidement les compétences d'utilisation de VSCode. Dans cet article, nous présenterons comment installer VSCode, les opérations d'édition de base, les touches de raccourci, l'installation du plug-in, etc., et fournirons aux lecteurs des exemples de code spécifiques. 1. Installez d'abord VSCode, nous avons besoin

Comment ajouter un nouveau script dans Tampermonkey-Comment supprimer un script dans Tampermonkey Comment ajouter un nouveau script dans Tampermonkey-Comment supprimer un script dans Tampermonkey Mar 18, 2024 pm 12:10 PM

L'extension Tampermonkey Chrome est un plug-in de gestion de scripts utilisateur qui améliore l'efficacité des utilisateurs et l'expérience de navigation via des scripts. Alors, comment Tampermonkey ajoute-t-il de nouveaux scripts ? Comment supprimer le script ? Laissez l'éditeur vous donner la réponse ci-dessous ! Comment ajouter un nouveau script à Tampermonkey : 1. Prenez GreasyFork comme exemple. Ouvrez la page Web de GreasyFork et entrez le script que vous souhaitez suivre. L'éditeur choisit ici le téléchargement hors ligne en un clic. 2. Sélectionnez un script. Après être entré dans la page du script, vous pouvez voir le bouton pour installer ce script. 3. Cliquez pour installer ce script pour accéder à l'interface d'installation. Cliquez simplement ici pour installer. 4. Nous pouvons voir l'installé en un clic dans le script d'installation.

Outlook bloqué lors de l'ajout d'un compte [Corrigé] Outlook bloqué lors de l'ajout d'un compte [Corrigé] Mar 23, 2024 pm 12:21 PM

Lorsque vous rencontrez des problèmes pour ajouter des comptes dans Outlook, vous pouvez essayer les solutions suivantes pour les résoudre. Cela peut généralement être dû à une connexion réseau défectueuse, à des profils utilisateur corrompus ou à d'autres problèmes temporaires. Grâce aux méthodes fournies dans cet article, vous pouvez facilement résoudre ces problèmes et vous assurer que votre Outlook peut fonctionner normalement. Outlook bloqué lors de l'ajout d'un compte Si votre Outlook est bloqué lors de l'ajout d'un compte, utilisez les correctifs mentionnés ci-dessous : Déconnectez et reconnectez Internet Désactivez temporairement le logiciel antivirus Créez un nouveau profil Outlook Essayez d'ajouter un compte en mode sans échec Désactivez IPv6 Exécutez la réparation de l'assistant de support et de récupération Microsoft Application Office Outlook Ajouter un compte requis

Astuces Win11 révélées : Comment contourner la connexion au compte Microsoft Astuces Win11 révélées : Comment contourner la connexion au compte Microsoft Mar 27, 2024 pm 07:57 PM

Des astuces Win11 révélées : Comment contourner la connexion au compte Microsoft Récemment, Microsoft a lancé un nouveau système d'exploitation Windows11, qui a attiré une large attention. Par rapport aux versions précédentes, Windows 11 a apporté de nombreux nouveaux ajustements en termes de conception d'interface et d'améliorations fonctionnelles, mais il a également suscité une certaine controverse. Le point le plus frappant est qu'il oblige les utilisateurs à se connecter au système avec un compte Microsoft. . Certains utilisateurs sont peut-être plus habitués à se connecter avec un compte local et ne souhaitent pas lier leurs informations personnelles à un compte Microsoft.

See all articles