Unity3D 编辑器功能之MonoBehaviour属性

using System;

  using unityEngine;

  public class Test : MonoBehaviour

  {

  #region 编辑Inspector视图

  /// <summary>

  /// 只能输入 0-1的值

  /// </summary>

  [Range(0f, 1f)]

  public float tRange = 1f;

  /// <summary>

  /// 输入时的提示

  /// </summary>

  [Tooltip(“Tooltip_test”)]

  public float tTooltip = 1f;

  /// <summary>

  /// 标头

  /// </summary>

  [Header(“Header_test”)]

  public float tHeader = 1f;

  /// <summary>

  /// 距离上一行50px

  /// </summary>

  [Space(50)]

  public float tSpace = 1f;

  /// <summary>

  /// 隐藏该属性(依然会被实例化)

  /// </summary>

  [HideInInspector]

  public float tHideInInspector = 1f;

  #endregion

  #region 编辑MonoBehaviour功能

  /// <summary>

  /// 在标题栏Component中添加(“Duan/AddComponentMenu_test”)层级。

  /// 点击将(Test)脚本绑定到当前选中的gameobject上。

  ///(Test)脚本名必须与文件名一致,(单独的Class文件)。

  /// </summary>

  //[AddComponentMenu(“Duan/AddComponentMenu_test”)]

  //public class Test : MonoBehaviour{}

  /// <summary>

  /// 在辑模式运行Update、FixedUpdate和OnGUI。

  /// </summary>

  //[ExecuteInEditMode]

  //public class Test : MonoBehaviour{}

  /// <summary>

  /// 强制要求该脚本的gameobject必须同时绑定了Rigidbody组件,如果没有则立即添加。

  /// </summary>

  //[RequireComponent(typeof(Rigidbody))]

  //public class Test : MonoBehaviour{}

  /// <summary>

  /// 给当前脚本添加右键(或小齿轮)选项

  /// 点击调用该方法。

  /// </summary>

  [ContextMenu(“ContextMenu Test”)]

  public void mContextMenu()

  {

  Debug.Log(“ContextMenu Test Log”);

  }

  /// <summary>

  /// 在标题栏中添加(“Duan/MenuItem”)层级。

  /// 点击调用该方法。

  /// 该方法必须是static的。

  /// </summary>

  [MenuItem(“Duan/MenuItem”)]

  public static void tMenuItem()

  {

  Debug.Log(“MenuItem Test Log”);

  }

  #endregion

  #region 编辑属性

  /// <summary>

  /// 标记一个变量或方法不会被序列化

  /// </summary>

  [NonSerialized]

  public float tNonSerialized = 1f;

  /// <summary>

  /// 该类可以被序列化 (序列化就是把内存中对象以一种可以保存的形式保存起来。 )

  /// </summary>

  [Serializable]

  public class Serializable{ }

  /// <summary>

  /// 强制序列化属性(Unity只序列化Public属性。序列化Private添加[SerializeField]。)

  /// </summary>

  [SerializeField]

  private bool tSerializeField = true;

  #endregion

  }
时间: 2024-10-17 04:43:53

Unity3D 编辑器功能之MonoBehaviour属性的相关文章

扩展Unity3D编辑器的脚本模板

??最近在学习Shader时感觉Shader语言参数众多.语法诡异,如果每次都从头开始写Shader一定是一件痛苦的事情.如果可以在本地定义好一组标准的Shader模板,这样当我们需要实现某些效果类似的Shader时,就可以在这个Shader模板的基础上进行修改.因为Shader文件是一个文本文件,所以我们可以非常容易地创建这样一个模板,在这个模板中我们可以进一步完善相关的参数注释,这样就不用每次写Shader的时候都需要查文档了,从这个角度出发,就进入了这篇文章的正题:扩展Unity3D编辑器

UNITY3D编辑器插件编写教程

如何让编辑器运行你的代码如何让编辑器运行你的代码  Unity3D 可以通过事件触发来执行你的编辑器代码,但是我们需要一些编译器参数来告知编译器何时需要触发该段代码. [MenuItem(XXX)]声明在一个函数上方,告知编译器给Unity3D编辑器添加一个菜单项,并且当点击该菜单项的时候调用该函数.触发函数里 可以编写任何合法的代码,可以是一个资源批处理程序,也可以弹出一个编辑器窗口.代码里可以访问到当前选中的内容(通过Selection类),并据此来 确定显示视图.与此类似,[Context

Unity3D编辑器扩展(四)——扩展自己的组件

前面已经写了三篇: Unity3D编辑器扩展(一)——定义自己的菜单按钮 Unity3D编辑器扩展(二)——定义自己的窗口 Unity3D编辑器扩展(三)——使用GUI绘制窗口 今天写第四篇,扩展自己的自定义组件. 通常我们使用继承自 Editor 的自定义编辑器类,来扩展自己的组件的检视面板和编辑器,并配合 CustomEditor 特性语法,附加该编辑器到一个自定义组件. 首先我们先定义一个组件 Player: 1 using UnityEngine; 2 3 public class Pl

unity3d屏幕截图功能

[java] view plaincopyprint? function OnGUI(){ if(GUI.Button(Rect(Screen.width*0.5-50,Screen.height*0.5-50,100,100),"screen")){ Application.CaptureScreenshot("Screenshot.png"); } } 这张Screenshot.png图片被存在了当前工程的子目录下了.之前在android上面一直不知道路径,后来

codeMirror实现Json编辑器功能

Code是一款代码编辑器,他可以支持多种编辑器功能,官网为http://codemirror.net/,本文主要讲解Json代码的编辑功能.下面是一些功能的代码及详细说明: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="styleshee

在Unity3d编辑器中加入菜单以及菜单项

在引用UZGUI插件时,u3d编辑器的菜单条发生了变化,新增了菜单和菜单项,于是乎自己也像尝试一下,看了EZGUI的About_EZ_GUI脚本文件后,结果大出我所料,原来SO EASY! 1 using UnityEngine; 2 using UnityEditor; 3 4 public class Example { 5 6 [MenuItem("new Menu/new/new new/new item")] 7 static void showDialog() 8 { 9

Unity3d:编辑器中运行正常,发布后的exe提示找不到文件

解决方案1:查看文件路径拼写方式,如果是用"+"拼接的,请改用System.IO.Path.Combine()方式拼接.经过测试,两种拼接方式打印出来的路径是一样的,但为什么 加号 的方式拼接unity不识别,原因未知.希望知道 原因的大神回帖.Unity3d:编辑器中运行正常,发布后的exe提示找不到文件,布布扣,bubuko.com

最全Pycharm教程(15)——Pycharm编辑器功能之代码自动生成机制

最全Pycharm教程(1)——定制外观 最全Pycharm教程(2)——代码风格 最全Pycharm教程(3)——代码的调试.运行 最全Pycharm教程(4)——有关Python解释器的相关配置 最全Pycharm教程(5)——Python快捷键相关设置 最全Pycharm教程(6)——将Pycharm作为Vim编辑器使用 最全Pycharm教程(7)——虚拟机VM的配置 最全Pycharm教程(8)——Django工程的创建和管理 最全Pycharm教程(9)——创建并运行一个基本的Pyt

unity3d c#调用控件属性

GUIText控件wenzi text 属性值 GameObject.Find("wenzi").guiText.text="修改内容"; 把你要获取的变量权限定义为public 类型 变量.以下方法任意一个都可以:一: public GameObject 另一个物体; //监视面板拖拽赋值 另一个物体.GetComponent<脚本>().变量 获得并更改.二: 将另一个物体命名为"XXX". GameObject.Find(&qu