Unity3D的SerializeField 序列化域名】的更多相关文章

SerializeField Inherits from Attribute Force Unity to serialize a private field. 强制Unity去序列化一个私有域. You will almost never need this. When Unity serializes your scripts, it will only serialize public fields. If in addition to that you also want Unity t…
Unity3D中序列化字段常使用[SerializeField],序列化类常采用[System.Serializable],非序列化采用[System.NonSerialized]. 序列化类使用时发现一些区别.测试如下: (1) 将脚本第一次拖拽到场景中后,运行程序.发现,对类进行序列化后,id,name会保持在代码中写的字段值. 如果我们退出运行,对检视面板的值进行修改,再运行,如下图所示.那么会始终运行检视面板中修改的值! 如果我们退出运行,对代码中的值进行修改,再运行,如下图所示.那么发…
圣典中对于Unity3D的序列化介绍很容易和C#的序列化介绍搞混,做个笔记,方便以后查找. 很多资料算是拾人牙慧. 一.Serializable 序列化 Inherits from Attribute The Serializable attribute lets you embed a class with sub properties in the inspector. Serializable(序列化)属性让你植入一个类用替代内容在Inspector(检视面板) You can use t…
Project(工程.项目):工程是把游戏开发当前所需要的资源归类管理用的. Console控制台:日志.报错.调试,右上角,消息过滤 Assets:资源,存储游戏中一切用到的资源 Library:临时库文件 ProjectSettings:项目设置.项目控制 Temp:临时文件夹 UnityPackageManager:资源包 工程迁移: Assets.ProjectSettings.UnityPackageManager,这三个文件夹必须拷贝走 如果报错,先删掉Library和Temp,再重…
unity常用的是C#语言.而C#语言有Attribute属性.特别强大.所以unity开发的时候.可以在变量加Attribute属性来达到开发人员想要的效果 RequireComponent:约束组件 [RequireComponent(typeof(Rigidbody))]  当附加该组件的时候.会强制自动添加组件typeof(Rigidbody) RequireComponent约束的组件.是不能删除的.除非先删除当前脚本 [RequireComponent(typeof(Rigidbod…
Attributes属性属于U3D的RunTimeClass,所以加上以下的命名空间是必须的了.其它倒没什么需要注意的.本文将所有运行属性过一遍罢了. using UnityEngine; using System.Collections;   1.AddComponentMenu 添加组件菜单 这函数只是起方便用,原本的脚本(组建)都会在"Component/Script"菜单下,在类之前声明一下这个,它便可以出现在"Componet"菜单下的任何位置.说明指的是…
http://blog.sina.com.cn/s/blog_5b6cb9500101857b.html Attributes属性属于U3D的RunTimeClass,所以加上下面的命名空间是必须的了. 其他倒没什么须要注意的. 本文将全部执行属性过一遍罢了. using UnityEngine; using System.Collections; 1.AddComponentMenu 加入组件菜单 这函数仅仅是起方便用,原本的脚本(组建)都会在"Component/Script"菜单…
这里我们首先就简易的制作一个非常简单的3D按钮![ 图中就一个cube 加个3DText,然后我们就编写代码 [RequireComponent(typeof(CompoundButton))]//特效用语    public class CompoundButtonSounds : ProfileButtonBase<ButtonSoundProfile>//泛型类需求T必须符合 where T 的要求    {        //这里说明下 定义的ButtonSoundProfile就一个…
Attributes属性属于U3D的RunTimeClass,所以加上以下的命名空间是必须的了.其它倒没什么需要注意的.本文将所有运行属性过一遍罢了. using UnityEngine; using System.Collections;   1.AddComponentMenu 添加组件菜单 这函数只是起方便用,原本的脚本(组建)都会在“Component/Script”菜单下,在类之前声明一下这个,它便可以出现在"Componet"菜单下的任何位置.说明指的是要重启U3D才能显示…
附加: float字段检视面板修改:[Range(1,10)] 对属性进行分组:[Header("xxx")] 工具栏中调用方法,类文件需在Editor文件夹中:[MenuIte("")]. [MenuItem("PathTool/Set Parent %q")] static void SetParent() { dosomething: }   转载于: 葱烧烙饼的博客 http://blog.sina.com.cn/aaron888888…
首先我们看看效果,以下是源文件的内容: 然后对应的面板: 要注意的地方其实就这里: 可以看出,public默认就可以在面板中进行修改,相应的设为private的isCreateSoldier却不会出现在面板中,而同样是private,但是有[SerializeField]的变量就可以在面板中修改. 总之大概知道上卖弄的用法就是了,具体解释引用自别人的结论: 参考 Unity3D中[SerializeField]特性的使用…
Unity3d中的属性(Attributes) Attributes属性属于U3D的RunTimeClass,所以加上以下的命名空间是必须的了. using UnityEngine; using System.Collections; 0.Property Attributes变量属性(放在方括号内变量申明前)(常用) 1/ Range(min,max) 如: [SerializeField, Range(0, 5)] int count; 如: [SerializeField, Range(0…
2016/9/24补充: unity官方有一篇文章对菜单扩展讲的不错 https://unity3d.com/cn/learn/tutorials/topics/interface-essentials/unity-editor-extensions-menu-items ContextMenu 出现在组件的右键菜单,点击后可执行 ContextMenuItem 可以直接附加在字段上的右键菜单,参数1是菜单名,参数2是链接的函数名 DisallowMultipleComponent 没有参数,指…
[SerializeField] 在Inspector版面中显示非public属性,并且序列化:若写在public前面,等于没写. [Obsolete("调用提示信息")] [NonSerialized]在Inspector版面中隐藏public属性,并且序列化:如果写在非public属性前面,等于没写. [HideInInspector] 在Inspector版面中隐藏public属性,与上面相比,只是隐藏,没有序不序列化的功能. [AddComponentMenu("XX…
Protobuf-net判断字段是否有值Unity3d使用Protobuf-net序列化数据与服务器通信,但是发现默认情况下,Protobuf-net生成的cs文件中没有接口判断可选参数是否有值.需有添加 -p:detectMissing 参数才能生成判断接口.在C++中生成 has_*() 接口,在C#中是 *Specified() 接口.例如 rpc.proto:message RpcRequest {    optional uint32 id = 1;  // One-way reque…
前言 在之前的文章 如何优化网站性能,提高页面加载速度 中,我们简单介绍了网站性能优化的重要性以及几种网站性能优化的方法(没有看过的可以狂戳 链接 移步过去看一下),那么今天我们深入讨论如何进一步优化网站性能. 一.拆分初始化负载 拆分初始化负载——听名字觉得高大上,其实不然,土一点将讲就是将页面加载时需要的一堆JavaScript文件,分成两部分:渲染页面所必需的(页面出来,没他不行)和剩下的.页面初始化时,只加载必须的,其余的等会加载. 其实在现实生产环境中,对于大部分网站:页面加载完毕(w…
[CanEditMultipleObjects]//可多对象编辑 public class Collider2DEditor:Editor {} [SerializeField]//序列化私有属性 private Emitter _emitter;…
编译器属性 属性 介绍 用例 AddComponentMenu 在Component菜单中添加新的菜单项 [AddComponentMenu("Duan/Script/TestScript")] ContextMenu 在当前脚本的组件中添加右键菜单内容   ExecuteInEditMode 让当前脚本可以在运行模式中实时更新修改   HideInInspector 是变量在检测时不被显示,但是会被实例化 [HideInInspector]public int a; NonSeria…
using System; using UnityEngine; using UnityEditor; using UnityEngine.Serialization; using Random = UnityEngine.Random; [DisallowMultipleComponent]// 禁止同时给一个物体添加多个NewBehaviourScript脚本 [RequireComponent(typeof(Animator))]// 依赖Animator组件,在物体上绑定有NewBeha…
[ExecutelnEditMode]     在EditMode下也可以执行脚本,Unity默认情况下,脚本只有运行时被执行,加上此属性后,不运行程序也能执行.与PlayMode不同的是函数不会不停的执行. [InitializeOnLoad]      在启动Unity的时候运行编辑器脚本. [Menultem(“  ”)]      在工具栏增加新的一列菜单. [ContextMenu(“  ”)]      添加命令给上下文菜单. [HideInInSpector]      隐藏Ins…
##1.层级显示 ###使用素材为免费或自制 本文章只用于学习和记录 在Unity2D游戏中可能出现以下情况 贴图的前后关系不正确 可以通过控制图片的层级来解决 本示例中杰西卡和树木都是搭载了图片的空物体,背景为Tilemap 新建脚本PositionSortRenderer public clas…
非public变量需要加[SerializeField]才能序列化 例如: MonoBehaviour中: [SerializeField] private float m_xxx; 在相应的CustomEditor脚本中: SerializedProperty m_xxx= serializedObject.FindProperty ("m_xxx"); m_xxx.floatValue=1.0f;//*** 否则的话***句会报空引用错误.…
Unity5.3 的一项新功能就是Json的序列化,支持嵌套使用,可以把json字符串转成对象,把对象转成json字符串. using UnityEngine; using UnityEditor; using System.Collections; using System; public class NewBehaviourScript : MonoBehaviour { void Start () { MyObject myObject = new MyObject(); myObject…
using UnityEngine; using System.Collections; using System.Xml; using System.Xml.Serialization; using System.IO; using System.Text; public class Reward { public Task task; public Attribute attribute; public Reward () {} public struct Task { [XmlAttrib…
Script Serialization http://docs.unity3d.com/Manual/script-Serialization.html 自定义序列化及例子: http://docs.unity3d.com/ScriptReference/ISerializationCallbackReceiver.OnBeforeSerialize.html 以下是上面2篇的摘要: 脚本的字段需要满足什么条件才能被序列化?(必须同时满足) 1. public 类型,或者有 [Serializ…
查找了 Script Serialization http://docs.unity3d.com/Manual/script-Serialization.html 自定义序列化及例子: http://docs.unity3d.com/ScriptReference/ISerializationCallbackReceiver.OnBeforeSerialize.html 和Unity 圣典 在这博友 的基础上 再总结下Unity 的序列化 序列化的作用是: 可以显示变量(类,结构等)在inspe…
最近在学习unity编辑器,so,记录总结一下. 以下介绍了一些简单的unity3d检视面板部分的使用技巧. using UnityEngine; using System.Collections; //让你在将这个脚本拖到一个GameObject上的时候,自动添加Camera,Light,Cloth组件 [RequireComponent(typeof(Camera), typeof(Light), typeof(Cloth))] public class MyClass : MonoBeha…
不是什么技术文章,纯粹是我个人学习是遇到一些觉得需要注意的要点,当成笔记. 1.关于调试,在Android下无法断点,Debug也无法查看,查看日志方法可以启动adb的log功能,或者自己写个GUI控件直接在屏幕上显示Info 2.所有自定义的编辑器扩展插件脚本必须放在Editor文件夹里,不然会导致编译程序时出错,放到Editor文件下,编译成游戏时才会忽略这些脚本 3.打包资源时,假设是在移动设备上使用,打包方式务必选择成:BuildTarget.AndroidBuildPipeline.B…
unity3d 脚本参考-技术文档 核心提示:一.脚本概览这是一个关于Unity内部脚本如何工作的简单概览.Unity内部的脚本,是通过附加自定义脚本对象到游戏物体组成的.在脚本对象内部不同志的函数被特定的事件调用.最常用的列在下面:Update:这个函数在渲染一帧之前被调用,这里是大部分游戏行为代码被执行的地方,除了物理代码.FixedUpd 一. 脚本概览这是一个关于Unity内部脚本如何工作的简单概览.Unity内部的脚本,是通过附加自定义脚本对象到游戏物体组成的.在脚本对象内部不同志的函…
Serialize功能 Unity3D 中提供了非常方便的功能可以帮助用户将 成员变量 在Inspector中显示,并且定义Serialize关系. 简单的说,在没有自定义Inspector的情况下所有显示在Inspector 中的属性都同时具有Serialize功能. 换句话说,就是你在Inspector看到什么,保存游戏的时候,这些值就会被保存成二进制文件. 本文说说可被Serialize的变量的定义方法 1. public 变量 在没有加入任何Attribute的前提下,public变量是…