Unity3D — — Inspector面板编辑】的更多相关文章

转载官方文档,暂未深入研究 PropertyDrawer…
简单说一下属性和字段的区别:字段就是成员变量,而属性确实提供给外部访问内部成员变量的接口.之所以会有属性的出现,就是为了避免外部对类的成员的直接访问,通俗的说就是OOP中的封装思想. using UnityEngine; using System.Collections; public class DemoTest : MonoBehaviour { private int _score; public int Score { get { return _score; } set { ) { v…
今天开始协助主程一起制作新框架.主程让我写关于新版UI框架注册UI预制体用的快捷编辑器. 现学现写,总算完成了. 可以直接把选中的预制体添加到UIController的数组中,期间涉及到改变大小.所以使用了List进行临时转换 其他调整角标越界问题和一些编辑器基础知识就不需要提了,重点记一下在Inspector面板中若编辑内容场景检测不到变化,需要手动做一些无用操作再Ctrl+S才能保存的问题.在百度上查到很多人给的是这个方法: 试验证明在本项目中并没有效果,后来查Google进到Unity官方…
环境:Win10 读取text内容后unity报错:Input string was not in the correct format 同时在Inspector面板中无法预览Text文本内容 随后发现只有文本中有中文才会出现这种情况 解决方法就是将Text另存为UTF-8编码格式…
使用反射功能在Unity运行状态通过Inspector面板修改字段和调用方法 效果展示 一个很简单的组件脚本 运行状态在Inspector面板可以随便修改字段和调用方法 方法调用日志 设计由来 最近在学习反射 结合游戏开发过程遇到比较难受的事情 应用场景 游戏特别庞大.电脑特别垃圾.重新运行一次Unity需要等待几十秒的情况下 你需要修改一个组件字段或者调用一个方法展示一个动画等等 这个时候你肯定渴望可以直接修改字段或者直接调用某个方法 反射就可以实现 修改实例对象所有的字段包括私有字段 调用实…
Serialize功能Unity3D 中提供了非常方便的功能可以帮助用户将 成员变量 在Inspector中显示,并且定义Serialize关系. 简单的说,在没有自定义Inspector的情况下所有显示在Inspector 中的属性都同时具有Serialize功能. 换句话说,就是你在Inspector看到什么,保存游戏的时候,这些值就会被保存成二进制文件. 本文说说可被Serialize的变量的定义方法 1. public 变量在没有加入任何Attribute的前提下,public变量是默认…
今天在优化红点组件,笔者打算将红点id由10进制改为16进制处理,就打算将红点id字段由uint类型改成string类型,用于填写16进制的字符(因为在Inspector面板里,uint/int类型字段不能直接填写16进制表示的数字),且希望限制该字段的输入限制,仅限于填写0-9A-Fa-f等16进制字符串,但unity并没有提供任何PropertyAttribute类来限制字符输入,达到类似于as3 text组件的restrict效果.因此笔者自定义了一个RestrictAttribute类,…
自定义Inspector面板的步骤: Unity内创建自定义的Inspector需要在Asset的任意文件夹下创建一个名字是Editor的文件夹,随后这个文件夹内的cs文件就会被放在vstu生成的Editor程序集里. 自定义Inspector需要创建一个继承自UnityEditor.Editor的类,并且提供一个[CustomEditor(typeof(Behavior))]类特性标记,其中Behaviour就是要自定义观察器的目标组件类型. 然后在Editor派生类里实现OnInspecto…
比如编辑模式下对场景或者特定文件夹有一些操作可以在这个面板里来完成.. 代码如下. using UnityEngine; using System.Collections; using UnityEditor; [CustomEditor(typeof(UnityEditor.DefaultAsset))] public class CustomInspector : Editor { public override void OnInspectorGUI () { string path =…
比如编辑模式下对场景或者特定文件夹有一些操作可以在这个面板里来完成. 代码如下: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; [CustomEditor(typeof(UnityEditor.DefaultAsset))] //[CustomEditor(typeof(UnityEditor.SceneAsset))] public class…
虽然mono是支持unicode的.可以在枚举里写中文,但是我还是觉得写英文好一些.可是在编辑器上策划是希望看到的是中文的,还有就是枚举的展示排序功能,策划在编辑的时候为了方便希望把常用的枚举排上前面. 把如下代码放到你的工程里就可以直接用了.       C#   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42…
1. C#脚本如下: using UnityEngine; using System.Collections; public class MyTest : MonoBehaviour { ; ; [System.Serializable] public class TestOne { ; ; } //在此处实例化之后,才会在Inspector中显示TestOne中的变量 public TestOne tOne; [System.Serializable] public class Equipme…
Element 译为“元素”,Element 面板可以让我们动态查看和编辑DOM节点和CSS样式表,并且立即生效,避免了频繁切换浏览器和编辑器的麻烦. 我们可以使用Element面板来查看源代码,它不但可以很好的格式化DOM节点,清晰的展现HTML文档,还可以查看JavaScript创建的DOM节点和iframe中的DOM节点,比在当前网页中右击鼠标选择“查看网页源代码”强大很多. 总之,Element面板可以让我们很透彻的了解DOM和CSS的底层结构. 我们将以下面的HTML代码为例来详细了解…
在扩展Unity的时候,往往会用到一些属性,这里将常用的列一下. 1.属性只读: #if UNITY_EDITOR using UnityEditor; #endif using UnityEngine; public class ReadOnlyAttribute : PropertyAttribute { } #if UNITY_EDITOR [CustomPropertyDrawer(typeof(ReadOnlyAttribute))] public class ReadOnlyDraw…
本文基于 https://github.com/chiuan/TTUIFramework https://github.com/jarjin/LuaFramework_UGUI 进行的二次开发,Thanks! 需求: 1.需要一个UI面板管理器,逻辑写在lua里面,方便热更新. 2.管理器控制面板的打开(show),隐藏(Hide),销毁(Destroy),刷新(Rest). 3.要有类似网页浏览器那样,点击后退(<---),会显示上一个页面.用到数据结构:栈(Stack),先进后出.打开顺序是…
你知道 Inspector 的调试(debug)模式吗? 当debug模式打开后, Inspector将会把游戏物体所有的属性都显示出来,包括公有(public)和私有(private)变量. 例如,下图中显示的是一个游戏物体在普通(nomal)模式下的 Inspector: using UnityEngine; public class InspectorDebugModePlayer : MonoBehaviour { private float lastDeadTime = 0.3f; p…
不推荐用AnimationUtility.SetEditorCurve问题很多,推荐AnimationCurve.AddKey.通过AnimationUtility.GetAllCurves可以获得编辑器状态的动画属性. GameObject m_IsActive Transform m_LocalPosition.x m_LocalPosition.y m_LocalPosition.z m_LocalScale.x m_LocalScale.y m_LocalScale.z m_LocalR…
写个脚本,把它挂在一个游戏对象上: using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test_01 : MonoBehaviour { void Start() { } void Awake() { } void Update() { } void OnDisable() { } void Reset() { } } 此时,脚本前面是有激活对勾的,如图: 把脚本…
默认情况下Public是暴露给Unity,protect/private是不暴露给Unity的,但有时候想让外部引用,又不想暴露给Unity,怎么办? 对Unity隐藏,使用[HideInInspector] using UnityEngine; using System.Collections; public class NewBehaviourScript:MonoBehaviour{ [HideInINspector]//起作用 public int bb = 2; } 对Unity暴露,…
  ScriptableObject非常适合小数量的游戏数值. 使用ScriptableObject的时候需要注意,生成ScriptableObject数据文件需要自己写Editor代码实现. 大概的工作流程是:写一个ScriptableObject(继承ScriptableObject的类,相当于数据模板) → 使用自己写的Editor代码生成一个实现该模板的数据文件 → Inspector面板中编辑数据. 给出我的Editor代码: using UnityEngine; using Syst…
查找了 Script Serialization http://docs.unity3d.com/Manual/script-Serialization.html 自定义序列化及例子: http://docs.unity3d.com/ScriptReference/ISerializationCallbackReceiver.OnBeforeSerialize.html 和Unity 圣典 在这博友 的基础上 再总结下Unity 的序列化 序列化的作用是: 可以显示变量(类,结构等)在inspe…
一.定制进度条 这篇文章主要学习如何在Unity的Inspector中使用ProgressBar 普通属性面板预览 通常我们的属性面板如下 定制属性面板预览 而通过扩展成ProcessBar后 二.内容简介 Inspector面板可以用来对Component和Asset进行快速编辑. 如果您的Unity中没有看到Inspector面板,可以通过快捷键方式 Ctrl+3 打开. 这篇文章我们将对一个类制作一个自定义的Inspector面板. 三.默认的Inspector样式 MyActor.cs…
Unity中的Inspector面板可以显示的属性包括以下两类:(1)C#以及Unity提供的基础类型:(2)自定义类型,并使用[System.Serializable]关键字序列化,比如: [System.Serializable] public class TestClass { public Vector3 vec = Vector3.zero; public Color clr = Color.green; } 也可以使用[System.NonSerialized]标记不需要显示的属性,…
最近在学习unity编辑器,so,记录总结一下. 以下介绍了一些简单的unity3d检视面板部分的使用技巧. using UnityEngine; using System.Collections; //让你在将这个脚本拖到一个GameObject上的时候,自动添加Camera,Light,Cloth组件 [RequireComponent(typeof(Camera), typeof(Light), typeof(Cloth))] public class MyClass : MonoBeha…
内存 使用Profiler可以查看某个资源的内存占用情况,但是必须启动游戏,并且待查看的资源已经载入游戏中.我希望的是不启动游戏,也能看到它的内存好做统计. 硬盘 由于unity中的资源压缩格式记录在meta中所以,在文件夹中看到的资源大小是不正确的.打开unity需要选择一个资源,比如Texture.然后在右侧Inspector面板最下面可以看见它真实的硬盘占用.这个数据我也希望那个可以脚本取到,这样我好做统计工具. 在Project视图中先选择一个Texture  然后点击menuitem…
1.概览 uFrame是提供给Unity3D开发者使用的一个框架插件,它本身模仿了MVVM这种架构模式(事实上并不包含Model部分,且多出了Controller部分).因为用于Unity3D,所以它向开发者提供了一套基于Editor的可视化编辑工具,可以用来管理代码结构等.本文为uFrame1.6版本在项目中实践的记录,主要包括一些uFrame中的基本概念以及应用的流程. 2.新建uFrame工程 本小节主要内容包括: 在uFrame新建工程 在uFrame的可视化编辑器中打开工程仓库 在uF…
Unity3D shader简介 可以肯定的说Unity3D使得很多开发者开发游戏更容易.毫无疑问,shader(着色器)编码,仍有很长的路要走.shader是一个专门运行在GPU的程序,经常被神秘包围,它最终绘制3D模型的三角形.如果你想给游戏一个特殊的显示,学习如何编写shader是必要的.Unity3D使用shader做后期处理,对2D游戏也是必不可少的.这个系列的文章将逐步介绍shader编程,并面向几乎没有任何shader知识的开发者. 简介 下图大致表示了在Unity3D渲染流程中发…
http://gamerboom.com/archives/36432 作者:Richard Fine Unity3D的方便之处在于,它很容易地扩展编辑器套件.每款游戏都对加工有着不同的需求,可以快速地以完全集成的方法来构建这些内容并极大地提升开发速度. 目前有大量复杂的软件包提供以基本Unity功能套件为基础的复杂工具,从视觉脚本编辑器到编辑器内导航网格生成.但是,有关如何自行构建此类事物的程序说明却很少.我将在下文列举某些在自己的工作中总结的编辑器定制相关信息. Unity-Window(f…
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/40723789 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 邮箱: happylifemxy@163.com 作为一个系统介绍Unity3D中Shader编写的系列文章的开篇,本文的第一部分为系列文章的前言,然后第二部分介绍了这个系列文章中我们会使用的游戏场景创建方式,最后一部分讲解了如…
该系列笔记基于Unity3D 5.x的版本学习,部分API使用和4.x不一致. 目前在Unity3D中,除了新的UGUI部分控件外,所有的物体(GameObject)都必带有Transform组件,而Transform组件主要是控制物体在3D空间中的位置.旋转以及缩放. 学习和掌握物体的变换是Unity3D开发者必备的基础知识. 基础变换 最基础的变换就是通过脚本直接对物体的位置旋转缩放等进行变换. 匀速移动 我们下面实现一个匀速移动物体的效果,我们在场景中添加一个Cube物体,把下面的脚本绑定…