Unity 的一些特性】的更多相关文章

using System; using UnityEngine; using UnityEditor; using UnityEngine.Serialization; using Random = UnityEngine.Random; [DisallowMultipleComponent]// 禁止同时给一个物体添加多个NewBehaviourScript脚本 [RequireComponent(typeof(Animator))]// 依赖Animator组件,在物体上绑定有NewBeha…
我们已经开发了在移动终端中,异步网络图片被装入多,在unity其中尽管AssetBundle存在,通常第一个好游戏的资源,然后加载到现场,但也有很多地方可以使用异步网络加载图像以及其缓存机制. 我也写了两个版本的数字前ios异步加载网络helper类,所以今天依照相同的思路.也想做一个好用的helper类给大家使用以及简单的说下实现原理. 首先我们载入一张网络图片.要做的事情分步来讲为: 0.開始之前设置一张固定的图片作为占位图(placeholder),表示我们的图片还没载入好.来填充当前图片…
这篇文章译自 Christopher LaPollo 先生的 Unity 4.3 2D 教程的第一部分 Unity 4.3 2D Tutorial: Getting Started 感谢这套优秀教程的作者@Chris!译者水平有限,翻译不准确的地方请参考原文,文中所有Unity的关键字都没有翻译. 如果你尝试用更早版本的Unity来制作2D游戏,那当然没问题,但你也知道必须先解决一些问题. 可能你通过给quad应用纹理,使用脚本调整纹理参数来实现一些动画.由于它们在3D环境,如果添加物理效果,你…
C#中,某些类型会定义隐式类型转换和操作符重载.Unity中,有些对象也定义了隐式类型转换和操作符重载.典型情况有:UnityEngine.Object.UnityEngine.Object的销毁是调用 Destory.被调用过Destory的对象,并不是真的变成null了,但是再对它操作会导致异常. Unity重载了UnityEngine.Object "==","!="操作符,和 implicit 转换. public static bool operator…
这篇作为上一篇的补充介绍,主要讲Unity里面的投影矩阵的问题: 上篇的链接写给VR手游开发小白的教程:(三)UnityVR插件CardboardSDKForUnity解析(二) 关于Unity中的Camera,圣典里面对每一项属性都做了简要的介绍,没看过的小伙伴传送门在下面 http://www.ceeger.com/Components/class-Camera.html 一.裁剪面 先从这个专业的词汇开始,以下是圣典对裁剪面的介绍: The Near and Far Clip Plane…
04月212014年   [王楠的回答(37票)]: 为什么入门简单,看一下官网的文档和视频教程就知道了,看完几段视频和例子就能让初学者做出能玩的东西,其他同类商业引擎都做不到.物体+组件的结构,所见即所得的编辑方式,都把初学者的门槛降到了最低. 再说说难精通的体现.其实任何可以拿来做高大上酷炫屌游戏的商业引擎都是难精通的,这个由引擎的功能深度和泛用性决定.一个集成了无数商业中间件的引擎,包括动画系统.GUI.光照系统.寻路.物理等各个部分,任何一部分单独拿出来都需要用户用心掌握.从这个角度来说…
面试第一次知识总结: 一.Unity基本操作 1.unity提供哪几种光源? 点光源.平行光.聚光灯.区域光. 2.物体发生碰撞的必要条件什么? 两个物体必须有碰撞体Collider组件,一个物体上必须有刚体组件Rigidbody. 3.碰撞体和触发器区别与联系 触发器是碰撞体上的一个属性,如果不勾选触发器,两个物体是不可以别击穿:有了触发器后是可以被击穿的. 检测碰撞体方法:OnCollisionEnter/Stay/Exit()                检测触发器方法:OnTrigge…
在上一篇,我们完成了一个定时功能,并且接触了 Action 和委托.lambda 表达式这些概念. 到目前为止,我们的库作为知识收录这个功能来说,已经非常好用了,由于使用了 partial 关键字,所以重复的代码少了很多.而作为一个可复用的工具库来说,勉强能够应付. 通过 partial 关键字,理论上可以对已有了类,进行无限地增加示例.而我们的示例的类型呢,主要是写可独立使用的方法和 MenuItem 示例.什么叫独立使用的方法?到目前为止我们写的所有静态方法都是可以独立使用的,这些方法并不需…
购买地址:https://item.taobao.com/item.htm?id=520205558575 您可以在新标签页打开此图,以查看原始图片. Magicodes.WeiChat为湖南心莱信息科技有限公司Magicodes系列产品之一,已获得软件著作权证书. V4.1 (2016.11.30) 本次更新内容比较大,请谨慎更新(尤其是权限部分代码,可能会影响您已扩展的业务逻辑,请根据自身业务考虑是否使用) 重写自定义菜单处理 重写左侧导航加载逻辑 更新包Magicodes.Echarts.…
[Managing asset dependencies] 一个Asset会依赖其它Asset.可以把一个Asset所依赖的Asset也打包进自己的AssetBundle.可是多个Asset可能依赖同一个/多个Asset.If a separate copy of a shared dependency is included in each bundle that has objects using it, then redundant instances of the assets will…
https://mp.weixin.qq.com/s/KvAyXpDhqWROtTX1Ol3a4Q 5月10-12日,Unite Shanghai 2019即将在上海国际会议中心正式开幕.本次大会共设有Keynote主题演讲,四大技术专场,Unity教育峰会,Training Day开发者训练日,近40个丰富精彩的互动展位,以及一系列丰富的周边活动. 大会信息 时间:5月10日 – 12日 地点:上海国际会议中心 官网:http://unite2019.csdn.net/ Unite技术通票8折…
优化图形性能 良好的性能对大部分游戏的成功具有决定作用.下面是一些简单的指导,用来最大限度地提高游戏的图形渲染. 图形需要哪些开销 游戏的图形部分主要开销来自电脑的两个系统: GPU 或 CPU.优化的第一条原则是找到性能出现问题的地方;因为 GPU 和 CPU 的优化策略不尽相同(甚至可能截然不同 — 因此,通常在优化 CPU 的时候会给 GPU 带来更多工作,反之亦然). 主要瓶颈以及检查瓶颈的方式: GPU 通常受供给比率或内存带宽的限制. 以更低的显示分辨率运行游戏是否更快? 如果是,您…
目录 ML-Agents(四)GridWorld Visual Observations Masking Discrete Actions 环境与训练参数 场景基本结构 代码分析 环境初始化代码 Agent脚本 初始化与重置 动作遮罩 Agent动作反馈 FixedUpdate() 手动操作代码 关于GridSetting 关于其他 训练模型 泛化参数配置 开始训练 总结 ML-Agents(四)GridWorld GridWorld这个例子比较有意思,它还是运用了Reinforcement L…
原文: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 来做条件编译的代码块. 另一种常见用法是,例如在编辑器下运行时输出日志,而在打包真机调试…
经过测试,DebuggerHidden只对输出的日志有影响.对编辑器的控制台输入没有影响 你可以通过这个特性避免日志log有一堆的堆栈信息 并且测试过发现Debug.LogError也不支持该特性,和Debug.Log一样没有堆栈跟踪 只有抛出异常才会有堆栈跟踪 log输出: Exception: !!! at A1.Start () [ Unity测试脚本: public class B1 : MonoBehaviour { [System.Diagnostics.DebuggerHidden…
2016/9/24补充: unity官方有一篇文章对菜单扩展讲的不错 https://unity3d.com/cn/learn/tutorials/topics/interface-essentials/unity-editor-extensions-menu-items ContextMenu 出现在组件的右键菜单,点击后可执行 ContextMenuItem 可以直接附加在字段上的右键菜单,参数1是菜单名,参数2是链接的函数名 DisallowMultipleComponent 没有参数,指…
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版的众多的功能和改进中获益.也期待您参与测试并提供反馈,帮助我们在未来的测试周…
经代码测试分析,unity粒子系统 Shiruken粒子系统的可编程性比较差.所有的Modules都无法通过代码控制. 可以用ParticleSystem.SetParticles设置粒子,但是设置进去的例子都无法运动,也无法参与碰撞. Legacy的粒子系统,可以用Emitter.Particles设置粒子,粒子可以运动,但是无法控制单个粒子的运动.只有ParticleAnimator可以操纵粒子的运动. Particle[] particles=new Particle[]{p,p2,p3}…
属性 (Attribute) 使用 Unity 的C#语言 ,利用属性(Attribute)来类定义和变量定义或区分其他的变量,您可以设置一种特殊行为.* 1 例如,您添加[SerializeField]属性变量,私有变量标识序列化. [SerializeField] int  计数; 序列化您'的值是存储到场景和预制体.因为值存储在meta元数据中,在Inspector检查器中设置的值. 你还可以强制指定的组件,对象要被附加组件,您将添加[RequireComponent] * 2 * 3 .…
[学习资料] <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(条件编译特性) 调…
1.Wind 小工具,一个绘制箭头Gizmos的脚本 2.TubeLight柱形光照 蛮NB的技术,实现动态柱状光照,但相机必须挂上PostProcessing 默认场景拖出来之后是这样的,然后给相机挂上PostProcessing或者直接从Adam里把相机拖过来 此时就可以看见效果了 还可以设置ShadowPlane,控制光照的扩散 比如这里就约束了底部扩散,你可以直接改生成出来的Shadow Plane坐标和旋转,来控制它. 3.Area Light区域光照 和TubeLight一样,相机需…
[SerializeField] 在Inspector版面中显示非public属性,并且序列化:若写在public前面,等于没写. [Obsolete("调用提示信息")] [NonSerialized]在Inspector版面中隐藏public属性,并且序列化:如果写在非public属性前面,等于没写. [HideInInspector] 在Inspector版面中隐藏public属性,与上面相比,只是隐藏,没有序不序列化的功能. [AddComponentMenu("XX…
有时候我们需要在编辑器下,频繁的做一些操作,比如说在不同的位置创建物体,一个个的修改坐标显然有点繁琐 这时候ContextMenu就派上用处了 例:利用 LineRenderer 画圆,我们不可能一个个的去修改 Position 这时候就用到ContextMenu了 using System.Collections; using System.Collections.Generic; using UnityEngine; public class SetCircleData : MonoBeha…
查找了 Script Serialization http://docs.unity3d.com/Manual/script-Serialization.html 自定义序列化及例子: http://docs.unity3d.com/ScriptReference/ISerializationCallbackReceiver.OnBeforeSerialize.html 和Unity 圣典 在这博友 的基础上 再总结下Unity 的序列化 序列化的作用是: 可以显示变量(类,结构等)在inspe…
本文为<effective c#>的读书笔记,此书类似于大名鼎鼎的<effective c++>,是入门后提高水平的进阶读物,此书提出了50个改进c#代码的原则,但是由于主要针对.net framework,而unity中的mono平台只支持.net framework 2.0,所以有很多原则在unity中并不适用,本文总结了其中在unity中也适用的一些原则.整理后,一共20多个原则仍然适用于unity,将分为两篇文章来记录. 1 使用属性,不使用可访问的数据成员 属性更加灵活,…
Attribute是c#的语言特性 msdn说明如下: The Attribute class associates predefined system information or user-defined custom information with a target element. A target element can be an assembly, class, constructor, delegate, enum, event field,interface, method,…
1. 依赖倒置原则和IOC2. IOC(Inversion of Control)的好处3. 介绍和使用Unity依赖倒置原则(DIP):上层和下层之间,依赖抽象,而不依赖细节IOC 控制反转,把上端对下端细节的依赖,转移给第三方,上端只依赖抽象Unity:就是一个第三方的容器 public static void Show() { { Console.WriteLine("**************************普通用法*************************"…
内存是手游的硬伤——Unity游戏Mono内存管理及泄漏http://wetest.qq.com/lab/view/135.html 深入浅出再谈Unity内存泄漏http://wetest.qq.com/lab/view/150.html 这一次,我优化了37%的内存http://wetest.qq.com/lab/view/147.html Unity项目资源加载与管理http://wetest.qq.com/lab/view/124.html Android应用内存泄露分析.改善经验总结h…
前言 在上一篇文章中,提到了如何通过 IoC 的设计,以及 Stub Object 的方式,来独立测试目标对象. 这一篇文章,则要说明有哪些设计对象的方式,可以让测试或需求变更时,更容易转换. 并说明这些方式有哪些特性,供读者朋友们在设计时,可以选择适合自己情境的方式来使用. 需求说明 当调用目标对象的方法时,期望目标对象的内容可以不必关注相依于哪些实体对象,而只需要依赖于某个接口,通过这样的方式来达到设计的弹性与可独立测试性. 那么,有哪一些方式可以达到这样的目的呢? 构造函数(constru…