Unity ContextMenu特性】的更多相关文章

有时候我们需要在编辑器下,频繁的做一些操作,比如说在不同的位置创建物体,一个个的修改坐标显然有点繁琐 这时候ContextMenu就派上用处了 例:利用 LineRenderer 画圆,我们不可能一个个的去修改 Position 这时候就用到ContextMenu了 using System.Collections; using System.Collections.Generic; using UnityEngine; public class SetCircleData : MonoBeha…
经代码测试分析,unity粒子系统 Shiruken粒子系统的可编程性比较差.所有的Modules都无法通过代码控制. 可以用ParticleSystem.SetParticles设置粒子,但是设置进去的例子都无法运动,也无法参与碰撞. Legacy的粒子系统,可以用Emitter.Particles设置粒子,粒子可以运动,但是无法控制单个粒子的运动.只有ParticleAnimator可以操纵粒子的运动. Particle[] particles=new Particle[]{p,p2,p3}…
新建脚本: public class ContextTesting : MonoBehaviour { [ContextMenu("哈哈")] void DoSomething() { Debug.Log("Perform operation"); } } 挂到一个游戏对象上: 在脚本的右边有一个小齿轮: 点击小齿轮就会出现上下文菜单,菜单里面就会有"哈哈", 点击哈哈,就会运行脚本中被[ContextMenu("哈哈")]修…
1.Wind 小工具,一个绘制箭头Gizmos的脚本 2.TubeLight柱形光照 蛮NB的技术,实现动态柱状光照,但相机必须挂上PostProcessing 默认场景拖出来之后是这样的,然后给相机挂上PostProcessing或者直接从Adam里把相机拖过来 此时就可以看见效果了 还可以设置ShadowPlane,控制光照的扩散 比如这里就约束了底部扩散,你可以直接改生成出来的Shadow Plane坐标和旋转,来控制它. 3.Area Light区域光照 和TubeLight一样,相机需…
扩展编辑器实际上就是在unity菜单栏中添加一些按钮,可以一键执行一些重复性的工作. 一.添加按钮 1.简单使用MenuItem特性 using UnityEngine; using UnityEditor; public class Tools { [MenuItem("Tools/test")] static void Test() { Debug.Log("test"); } } 2.路径设置 在方法上添加MenuItem特性,在MenuItem的括号中传入路…
避开unity的坑(转摘) 以下总结一部分来自经验之谈,一部分来自其他人的分享.总的来讲,unity开发原型和效果.验证想法,确实是无比便利.可能一个月就把核心玩法做得差不多.强大的编辑器功能让我们也有很大的可扩展空间来协助我们开发工具.可是编辑器是把双刃剑.如果提前看清楚有什么坑在前面,或者其他人踩过什么坑.我想这会对项目风险的把控会有很大帮助. 避开unity的坑 1.制作抽象的prefab来做关卡编辑 尽可能制作抽象的prefab来做关卡编辑,该prefab应该足够抽象简单(只有一个Gam…
资料1: IOC:英文全称:Inversion of Control,中文名称:控制反转,它还有个名字叫依赖注入(Dependency Injection). 作用:将各层的对象以松耦合的方式组织在一起,解耦,各层对象的调用完全面向接口.当系统重构的时候,代码的改写量将大大减少. 理解依赖注入:     当一个类的实例需要另一个类的实例协助时,在传统的程序设计过程中,通常有调用者来创建被调用者的实例.然而采用依赖注入的方式,创建被调用者的工作不再 由调用者来完成,因此叫控制反转,创建被调用者的实…
摘要:为了帮助使用Unity引擎的开发人员制作更完美的游戏.我们精心挑选了十款相关开发插件和工具.它们是:2D Toolkit.NGUI.Playmaker.EasyTouch & EasyJoystick.UnIDE.Tile Based Map and Nav.FX Maker.Toon shader.Top-Down Assets Mobile和83 Explosion Sound Effects. 作为当前最主流的3D游戏引擎之中的一个,Unity拥有大量第三方插件和工具帮助开发人员提升…
通过 人打电话 来谈谈自己对IOC的理解 版本1.0 public class Person { public AndroidPhone Phone { get; set; } public void CallForSomebody() { Phone.Call(); } } public class AndroidPhone { public void Call() { Console.WriteLine($"{this.GetType().Name} is calling"); }…
1.2D Toolkit 如果过去你一直从事3D游戏开发,最近想转做2D游戏,最好尝试一下2D Toolkit.2D Toolkit是一款2D开发组件,它具有很强的灵活性和适应性,能够让开发者在Unity环境中进行2D开发. 2D Toolkit基本没有学习门槛,拥有可编写脚本的动画编辑器以及具有Unity平台特性的组件集合,能够对像素进行完美呈现.2D Toolkit能够完全支持Unity 4,它对于2.5D场景的开发和建立也十分有效. 2.NGUI NGUI是一款强大的UI系统框架.它能够完…
1 特性attribute,和注释有什么区别2 声明和使用attribute3 应用attribute4 AOP面向切面5 多种方式实现AOP ------------------------------Anker_张 (博客园) 文件下载    链接: http://pan.baidu.com/s/1o8kctGe 密码: q6yh 特性是一个继承或者间接继承Attribute的类 通常用attribute结尾,那么在使用的时候,可以去掉这个结尾 [AttributeUsage(Attribu…
[此文引用别人,作为随笔自己看.]今天写<WCF技术剖析(卷2)>关于<WCF扩展>一章,举了“如何通过WCF扩展实现与IoC框架(以Unity为例)集成”(<通过自定义ServiceHost实现对WCF的扩展[实例篇]>)的例子.为了展示Unity如何实现几种典型的注入方式(构造器注入.属性注入和方法注入),我写了一个简单的小程序.如果读者对Unity或者IoC没有太多概念,我觉得这个小程序对于你初步地认识它们具有一定的帮助意义.如果你对Unity或者IoC有深入的认…
使用EntLib\PIAB Unity 实现动态代理 using System; using Unity; using Unity.Interception; using Unity.Interception.Interceptors.InstanceInterceptors.InterfaceInterception; using Unity.Interception.PolicyInjection.Pipeline; using Unity.Interception.PolicyInject…
C#LightEvil之前提供了很多和Unity结合的例子,都是采用把脚本文件放置在StreamingAssets中的方法. 这样可以利用Unity的特性,放在这个目录中的CS文件会被编译器编译,我们就利用C#编译器来对我们的脚本进行验证. 同时StreamingAssets中的文件又是直接随项目发布的,所以可以直接以文件方式取出这些脚本文件编译执行. 这是一个很巧妙的方式,但是用在实际项目中会有一些问题: 一.可能会让程序员产生混淆,哪里是脚本,哪里是程序,傻傻分不清楚 二.主程序里会有一份用…
Unity3D 引擎的编辑器拥有很强的扩展性,用的好可以帮我们省很多事情.在这里记录下如何去扩展 Unity3D 的编辑器,定制属于我们自己的开发环境. 本篇主要讲解在 Unity3D 引擎的各个窗口添加我们自己的菜单按钮. 添加菜单按钮我们需要用到 MenuItem 特性: MenuItem 的三个重载: MenuItem(string itemName); MenuItem(string itemName, bool isValidateFunction); MenuItem(string…
简述 Unity supports different Rendering Paths. You should choose which one you use depending on your game content and target platform / hardware. Different rendering paths have different performance characteristics that mostly affect Lights and Shadows…
如今已经大获市场成功的<王者荣耀>一直是业内各方关注的对象,而我们也知道这款产品在成为国民级游戏之前,也遇到过一段鲜有人知的调优期.也就是在2015年8月18号正式不删档测试版本推出之后,被腾讯评级为不达六星之后的时间. 据了解,在8月之后的两个月间,<王者荣耀>技术团队对这个产品进行了非常深度的优化,并攻克了局内同步.网络要求,以及性能表现的三大难关,成功达到了腾讯六星产品的标准.比如延迟.卡顿等不同步问题的出现概率从过去的1%,降低到了0.01%,大幅度地改善了游戏体验. 今天…
作为当前最主流的3D游戏引擎之中的一个.Unity拥有大量第三方插件和工具帮助开发人员提升工作效率. 我们摘选了十款最受欢迎的工具推荐给大家.类别包括2D开发.UI设计.原型制作.着色.特效等,涉及了游戏开发最基本的十个方面. 1. 2D Toolkit 假设过去你一直从事3D游戏开发,近期想转做2D游戏,最好尝试一下2D Toolkit.2D Toolkit是一款2D开发组件,它具有非常强的灵活性和适应性,可以让开发人员在Unity环境中进行2D开发. 2D Toolkit 2D Toolki…
如今已经大获市场成功的<王者荣耀>一直是业内各方关注的对象,而我们也知道这款产品在成为国民级游戏之前,也遇到过一段鲜有人知的调优期.也就是在2015年8月18号正式不删档测试版本推出之后,被腾讯评级为不达六星之后的时间. 据了解,在8月之后的两个月间,<王者荣耀>技术团队对这个产品进行了非常深度的优化,并攻克了局内同步.网络要求,以及性能表现的三大难关,成功达到了腾讯六星产品的标准.比如延迟.卡顿等不同步问题的出现概率从过去的1%,降低到了0.01%,大幅度地改善了游戏体验. 今天…
一些无关紧要的废话: 作为一名双修程序员(自封的),喜欢那种使用Spring的注解形式进行依赖注入或者Unity的特性形式进行依赖注入,当然,形式大同小异,但结果都是一样的,通过属性进行依赖注入. ASP.NET Core中使用了自带的Dependency Injection作为了默认的IOC容器,当然有先天的优势,很多还是喜欢切换到Autofac作为IOC容器,Unity在.Net Core中还是有很大的优势的,但据我所知,Unity5已经由微软转交到基金会了,而且本身文档很少,翻译文档以及研…
2016/9/24补充: unity官方有一篇文章对菜单扩展讲的不错 https://unity3d.com/cn/learn/tutorials/topics/interface-essentials/unity-editor-extensions-menu-items ContextMenu 出现在组件的右键菜单,点击后可执行 ContextMenuItem 可以直接附加在字段上的右键菜单,参数1是菜单名,参数2是链接的函数名 DisallowMultipleComponent 没有参数,指…
原文:http://blogs.unity3d.com/2016/03/15/enhanced-visuals-better-performance-and-more-the-unity-5-4-public-beta-is-ready/ 有三个点我觉得很有意思: 1.Better multithreaded rendering The Unity 5.4 beta release takes our multithreaded rendering support to the next lev…
概要 在传统的C#项目中,用Conditional特性做条件编译时,需要在Visual Studio中项目的属性里添加上条件编译符号,用法参考这篇文章. 而在Unity项目中,条件编译符号需要在Unity Editor编辑器中添加. 为什么要用条件编译 Unity中最常见的使用条件编译的情况就是分平台编译不同的代码片段.由于Unity是跨平台的,不同平台有不同的特性,我们经常能见到 #if...#endif 来做条件编译的代码块. 另一种常见用法是,例如在编辑器下运行时输出日志,而在打包真机调试…
属性 (Attribute) 使用 Unity 的C#语言 ,利用属性(Attribute)来类定义和变量定义或区分其他的变量,您可以设置一种特殊行为.* 1 例如,您添加[SerializeField]属性变量,私有变量标识序列化. [SerializeField] int  计数; 序列化您'的值是存储到场景和预制体.因为值存储在meta元数据中,在Inspector检查器中设置的值. 你还可以强制指定的组件,对象要被附加组件,您将添加[RequireComponent] * 2 * 3 .…
using System; using UnityEngine; using UnityEditor; using UnityEngine.Serialization; using Random = UnityEngine.Random; [DisallowMultipleComponent]// 禁止同时给一个物体添加多个NewBehaviourScript脚本 [RequireComponent(typeof(Animator))]// 依赖Animator组件,在物体上绑定有NewBeha…
经过测试,DebuggerHidden只对输出的日志有影响.对编辑器的控制台输入没有影响 你可以通过这个特性避免日志log有一堆的堆栈信息 并且测试过发现Debug.LogError也不支持该特性,和Debug.Log一样没有堆栈跟踪 只有抛出异常才会有堆栈跟踪 log输出: Exception: !!! at A1.Start () [ Unity测试脚本: public class B1 : MonoBehaviour { [System.Diagnostics.DebuggerHidden…
http://manew.com/thread-98549-1-1.html 最新发布的beta版改进了编辑器和2D功能,图形性能更佳,加入新的视频播放器,并添加了对Facebook Gameroom和Google DayDream平台的支持. Unity 5.6 beta版本现已发布.包括Unity Personal个人版用户在内的所有Unity用户均可免费下载试用.我们希望您的项目将会从Unity 5.6 beta版的众多的功能和改进中获益.也期待您参与测试并提供反馈,帮助我们在未来的测试周…
[SerializeField] 在Inspector版面中显示非public属性,并且序列化:若写在public前面,等于没写. [Obsolete("调用提示信息")] [NonSerialized]在Inspector版面中隐藏public属性,并且序列化:如果写在非public属性前面,等于没写. [HideInInspector] 在Inspector版面中隐藏public属性,与上面相比,只是隐藏,没有序不序列化的功能. [AddComponentMenu("XX…
在自定义脚本中的方法前加入  [ContextMenu("Execute")]  标签,然后将脚本挂载到对象上,可以再编辑模式下执行标记的方法: 自定义脚本如下: using System.Collections; using System.Collections.Generic; using UnityEngine; public class LestContextMenu : MonoBehaviour { [ContextMenu("Execute")] vo…
[学习资料] <C#图解教程>(第24章):https://www.cnblogs.com/moonache/p/7687551.html 电子书下载:https://pan.baidu.com/s/1mhOmBG0 参考文章  C# 特性(Attribute)(建议看一看嗷):https://www.cnblogs.com/zhaoyl9/p/12027938.html [内容] 特性的用途 特性与注释的区别 内置特性 Obsolete(废弃特性) Conditional(条件编译特性) 调…