再议Unity 3D】的更多相关文章

一年前,偶发冲动,翻译了<[译] Unity3D游戏和facebook绑定(1:简介)>系列文章. 现在看有2个明显的好处, 一:给这个不温不火的博客带了top 3的人气: 二:我个人由此开始关注了Unity 3D方向. 去伪存真,如网上消息漫天飞的时候,一是可能真的有这个事情,一是可能是市场营销软文做的局–我现在工作之一就在干类似事情.为了摸清Unity 3D的市场接纳程度,我分别在去年和今年对Unity3D的岗位关键词做了搜索,希望通过生态圈核心指标–人才岗位需求,分析思考来甄别信息真假.…
0x00 前言 在很长一段时间里,Unity项目的开发者的优化指南上基本都会有一条关于使用GetCompnent方法获取组件的条目(例如14年我的这篇博客<深入浅出聊Unity3D项目优化:从Draw Calls到GC>).有时候还会发展为连一些Unity内部对象的属性访问器都要小心使用的注意事项,记得曾经有一段时间我们的项目组也会严格要求把例如transform.gameobject之类的属性访问器进行缓存使用.这其中的确有一些措施是有道理的,但很多朋友却也是知其然而不知其所以然,朦胧之间似…
这是从 Unity教程之再谈Unity中的优化技术 这篇文章里提取出来的一部分,这篇文章让我学到了挺多可能我应该知道却还没知道的知识,写的挺好的 优化几何体   这一步主要是为了针对性能瓶颈中的”顶点处理“一项.这里的几何体就是指组成场景中对象的网格结构.   3D游戏制作都由模型制作开始.而在建模时,有一条我们需要记住:尽可能减少模型中三角形的数目,一些对于模型没有影响.或是肉眼非常难察觉到区别的顶点都要尽可能去掉.例如在下面左图中,正方体内部很多顶点都是不需要的,而把这个模型导入到Unity…
原地址:http://tieba.baidu.com/p/2817057297?pn=1 首先.unity 灯光烘焙 :Unity 3D FBX模型导入.选项Model 不导入资源球.Rig 不导入骨骼.Animations 不导入动画.在Model选项勾选 Generate Linghtmap UVs .否则.灯光烘焙.会出现阴影错乱.灯光烘焙时FBX Shader 选项 Mobile/Unlit(Supports Lightmap) .会出现阴影错乱.灯光烘焙时FBX Shader 选项 M…
Unity 3D里两个碰撞体之间发生碰撞可以用OnCollision族函数和OnTrigger族函数来获知和处理.Unity官方给出了两张可发生碰撞的组合表: Collision detection occurs and messages are sent upon collision   Static Collider Rigidbody Collider Kinematic  Rigidbody Collider Static  Trigger Collider Rigidbody  Tri…
之后的基本方向 ios游戏开发,基础教程http://www.devdiv.com/unity_d_-thread-128068-1-1.html,学习Unity 3D游戏开发. 应该昨天表示,读了一下午,没有复苏.今天,经过同学们的需求,执行出来了.以下是我对第一节的一些个补充. 首先说的是破解问题. 如图,安装完unity-4.3.2之后,将Unity_v4.x.ulf放入/Library/Application Support/Unity 再在应用程序中找到Unity 右键显示包内容->C…
Unity 3D 文件导入出错 安装unity 时我选择了free版的,打开已有项目时出现例如以下错误提示 解决的方法: 先把要导入的文件先复制到unity3d安装文件夹下相应的文件夹内,之后再返回unity3d软件,右键选择"导入".…
于Unity 3D游戏的开发.游戏脚本需要3D模拟组合,该脚本将被写入阻力3D为了达到效果对象. 以下是一个小实例,使用Unity 3D实现一个可控制移动的小人.小人能够向前.向后.向左和向右移动. 1.通过 File - > New Scene 创建一个场景: 2.点击Create -> Create Empty 创建一个GameObject,它即是游戏对象: 3.在Inspector 面板里将此对象的名字改为 "hero" (记得按回车键),等一下再脚本中将通过此名字来…
MVVM回顾 经过上一篇文章的介绍,相信你对 MVVM的设计思想有所了解.MVVM的核心思想就是解耦,View与ViewModel应该感受不到彼此的存在.View只关心怎样渲染,而ViewModel只关心怎么处理逻辑,整个架构由数据进行驱动.不仅View与ViewModel彼此解耦,ViewModel与ViewModel之间也是解耦的.通过消息订阅-发布机制,解决了ViewModel之间的强依赖关系. 先回顾一下我们已完成的功能,Framework中最核心就是BindableProperty 类…
初识 MVVM 谈起 MVVM 设计模式,可能第一映像你会想到 WPF/Sliverlight,他们提供了的数据绑定(Data Binding),命令(Command)等功能,这让 MVVM 模式得到很好的实现. MVVM 设计模式顾名思义,通过分离关注点,各司其职.通过 Data Binding 可达到数据的双向绑定,而命令 Command 更是将传统的 Code Behind 事件独立到 ViewModel 中. MVVM 设计模式在 WPF 中的实现 在WPF中,你会像如下这样去定义一个专…
> 对于一个View而言,本质上是一个MonoBehaviour.它本身就具备生命周期这个概念,比如,Awake,Start,Update,OnDestory等.这些是非常好的方法,可以让开发者在各个阶段去执行自定义的代码.但唯一遗憾的事,这些方法是有引擎调用,并且颗粒度不够细.本文将谈谈怎样构建View和ViewModel的生命周期. ### View的生命周期 ### **举个栗子,一个View的显示会有如下过程:** - 初始化操作 - 激活当前对象,SetActive(true) - 显…
『可复用』这个词相信大家都熟悉,通过『可复用』的组件,可以大大提高软件开发效率. 值得注意的事,当我们设计一个可复用的面向对象组件时,需要保证其独立性,也就是我们熟知的『高内聚,低耦合』原则. 组件化设计的思路 不管是开发客户端应用程序还是开发服务器端应用程序,『组件』这个词我们并不陌生.不管是在iOS中的xib,还是在AngularJS的Component,或者后端开发的 User Control,可复用的组件是面向对象开发的基础.所以在Unity 3D 框架设计时,组件化是核心的概念.那么如…
一谈到 『IoC』,有经验的程序员马上会联想到控制反转,将创建对象的责任反转给工厂.IoC是依赖注入 『DI』 的核心,大名鼎鼎的Spring框架就是一个非常卓越的的控制反转.依赖注入框架.遗憾的是,我们显然不能在Unity 3D中去使用Spring框架,但思想是相通的--IoC也好,控制反转也罢,本质上是一个工厂,或者又被称为容器,我们可以自己维护一个工厂来实现对对象的管理,这也是本文的核心内容. 工厂模式初探 工厂,顾名思义,就是生产对象的地方.如果之前没有接触过设计模式,你可能会疑惑,我直…
谈到 『Repository』 仓储模式,第一映像就是封装了对数据的访问和持久化.Repository 模式的理念核心是定义了一个规范,即接口『Interface』,在这个规范里面定义了访问以及持久化数据的行为.开发者只要对接口进行特定的实现就可以满足对不同存储介质的访问,比如存储在Database,File System,Cache等等.软件开发领域有非常多类似的想法,比如JDBC就是定义了一套规范,而具体的厂商MySql,Oracle根据此开发对应的驱动. Unity 3D中的Reposit…
在Unity 3D中,经常需要用到光照阴影,即Directional Light的Shadow,Shadow分为Hard Shadow和Soft Shadow.区别是Soft Shadow的阴影边缘比较平滑,接近真实,但是性能消耗大于Hard Shadow. Lightmapping有3种选择:实时光照阴影(RealTimeOnly).场景烘焙阴影(BakedOnly).以及上面两者结合的阴影(Auto). RealTimeOnly:所有场景物体的光照都实时计算,实时光照对性能消耗比较大: Ba…
1. 协程 在Unity 3D中,我们刚开始写脚本的时候肯定会遇到类似下面这样的需求:每隔3秒发射一个烟花.怪物死亡后20秒再复活之类的.刚开始的时候喜欢把这些东西都塞到Update里面去,就像下面这样写. float nowTime = 3.0f; bool isDead = true; float deadTime = 20.0f; void startFireworks() { // 放烟花 } void revival() { // 复活 } void Update () { ) { s…
Unity 3D 引擎对于开发者来说,入手非常快,因为它采用的是 C# 作为开发语言,这也大大降低了开发者的门槛.但凡只要懂一门编程语言的人都能使用 Unity 3D 引擎开发,另外 Unity 3D 的内部架构设计非常好,采用的是组件开发,开发者能快速通过组件堆积出一个游戏.既然使用 Unity 3D 引擎开发游戏这么简单,那它有没有坑呢?答案是肯定的,比如开发游戏经常遇到的坑:被很多开发者吐槽的包体过大.游戏架构设计,热更新,包防破解问题等等,下面笔者分享在游戏开发中的坑及解决方案,为大家的…
UGUI Toggle用法教程 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创新!助力快速理解 UGUI 中 Toggle 组件用法为新手节省宝贵的时间,避免采坑! Chinar 教程效果: 1 Description -- 说明 2 Create Toggle -- 创建开关组件 3 Custom Template -- 可自定义调节模板 4 Toggle -- 组…
Unity视角的高度自定义 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创新!助力快速完成视角的自定义.逐个功能分离为新手节省宝贵的时间,避免采坑! Chinar 教程效果: 同一个脚本,同时实现拖动视角平移.竖轴限定俯仰角 1 ChinarCamera -- 相机视角专用脚本 支持 May Be -- 搞开发,总有一天要做的事! 全文高清图片,点击即可放大观看 (很…
Unity 3D读取/导入Excel表格 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创新!助力快速导入 Excel 表格到 Unity 中进行数据处理为新手节省宝贵的时间,避免采坑! Chinar 教程效果: 1 Quick Drag -- 快速拖拽 支持 May Be -- 搞开发,总有一天要做的事! 全文高清图片,点击即可放大观看 (很多人竟然不知道) 1 Qu…
Unity 3D委托的多种用法 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创新!助力快速理解委托的作用.用法为新手节省宝贵的时间,避免采坑! Chinar 教程效果: 1 Entrust -- Delegate委托 2 Action -- Action委托 支持 May Be -- 搞开发,总有一天要做的事! 全文高清图片,点击即可放大观看 (很多人竟然不知道) 1…
Unity 3d导入3dMax模型 会产生若干问题,按照官方 的说明,将max 模型导成fbx文件 导入untiy似乎也不能解决 1.x轴向偏转3dmax模型导入后自动有一个x轴270度的偏转,巧合的是,在unity中旋转模型的时候,你会发现y轴参照方向永远朝上,而x和z轴则以模型本身的 局部坐标 为准,这样当模型沿x轴旋转270度之后,z轴正好与y轴重合,这样你试图用程序 控制方向的时候就会发现旋转y和旋转z效果 相同,这显然不是你期望的结果.解决这个问题的方法是,将.max文件导出为.3ds…
框架概述: 做了那么久的业务开发,也做了一年多的核心战斗开发,最近想着自己倒腾一套游戏框架,当然暂不涉及核心玩法类型和战斗框架,核心战斗的设计要根据具体的游戏类型而定制,这里只是一些通用的基础系统的框架搭建,其中包括: UI框架(NGUI + MVC) 消息管理(Advanced CSharp Messenger) 网络层框架(Socket + Protobuf ) 表格数据(Protobuf) 资源管理(Unity 5.x 的 AssetBundle 方案) 热更框架(tolua) 这里使用的…
这个是这样子的.stage3d如果不使用flascc的话,性能会卡在as上面.你没卡是因为你用的效果还不够高级.往深了走的高端应用就是卡as性能上.这不是你代码能优化了的.我们后来都改用flascc写代码了.不过开发效率太低.然后也不支持dx11的一些高级效果如曲面细分什么的.adobe也没有拿得出手的编辑器.away3d还很简陋.如果非端游的人做开发成本和时间都太长.相对而言unity3d的工作流,编辑器,3d引擎,代码性能都占尽优势.撇开网页插件安装率的话.那stage3d几乎是没有优势的.…
Circular progress bar in Unity 3D - UnityScripthttp://stackoverflow.com/questions/22662706/circular-progress-bar-in-unity-3d-unityscript Another approach would be to use the NGUI plugin and use an UISprite with radial fill…
目前,UGUI问世不过半年(其随着Unity 4.6发布问世),而市面上商用的产品,UI控件的至尊为NGUI:影响力和广度(可搜索公司招聘Unity 3D,常常能看到对NGUI关键词). NGUI虽然不是Unity 官方原生的,但以其强大的能力和友好的操作性,成为了事实上的王者—-无他,OnGUI太挫了. 通过导入自定义包,会出现如下的截图–这里我使用的是NGUI V3.6.8版本. 在其官方demo中,这个demo给我留下了非常酷的印象(右上角NGUI的logo,好像电影中维京人的帽子?):…
如果你接触过<设计模式>.软件架构的编程思想,就会知道优秀的设计准则:“组合优于继承的”. 这句话很简短,但开始学习OOP的时候,真切的是—-不太好理解(以我个人当初学习为例). OOP的继承思想 在设计主角(Player)的时候,为了能够复用A.B.C的功能,我开始把A.B.C按照继承来写,多了一些Virutal\Override\Protected等修饰符,功能没有任何问题,就是有些别扭.如Start.Update方法,只能在A中采用模板方法处理,万一B.C.Player中直接用了Star…
原地址:http://blog.csdn.net/h570768995/article/details/9355313 Eclipse开发过程中总会碰到很多的难题,如何利用好工具帮助我们更快捷的开发也是一件重要事. 下面介绍Eclipse与Unity 3D协同工作: 1,首先在Unity3D中简单建立一个工程文件 2,好的,接下来点击[File]->[Build setting] 3,然后点击[Build],记好你Build出来的.apk的名字.这时候在工程目录下会出现“temp”文件夹(没有B…
遇到一个想做的功能,但是实现不了,核心原因是因为对U3D的3D数学概念没有灵活吃透.故再次系统学习之—第三次学习3D数学. 本次,希望实现的功能很简单: 如在小地图中,希望可以动态画出Player当前的位置.z的朝向:用3条线.z轴正向.30°旋转.-30°旋转. 问题是:0点可以获得,P1点? P2点是未知的. 我尝试了2个小时,结果不竟如人意,少于沮丧. 不得不,再次花点时间系统的学习3D数学: 1 位移–向量和点: 点: 点和向量在数学上是一致的,实际生活中点的概念比较好理解,坐标点来定位…
听到过很多用Unity 3D开发游戏的程序员抱怨引擎效率太低,资源占用太高,包括我自己在以往项目的开发中也头疼过.最近终于有了空闲,可以仔细的研究一下该如何优化Unity 3D下的游戏性能.其实国外有不少有关U3D优化的资料,Unity官方的文档中也有简略的章节涉及这方面的内容,不过大多都是以优化美术资源为主,比如贴图的尺寸,模型静态及动态的batch以减少draw call,用lightmap替代动态光影,不同渲染模式在不同环境下的性能等等.鉴于此,加上美术资源方面的东西本人不是特别了解,所以…