首先我说明一下什么预制件? 在U3D里面我们叫它Prefab:我们可以这样理解:当制作好了游戏组件(场景中的任意一个gameobject),我们希望将它制作成一个组件模版,用于批量的套用工作,例如说场景中本质上“重复”的东西,“敌人”,“士兵”,“子弹”......这里说本质是因为默认生成的prefab其实和模版是一模一样的,就像是克隆体,但生成的位置和角度以及生成后的一些属性是允许发生变化的. * 博主注:这个其实和Flash里的 编译组件 (Component) 有点像 如何制作Prefab…
Prefab概念: Prefab是一种资源类型--存储在项目视图中的一种可反复使用的游戏对象.因而当游戏中须要非常多反复使用的对象.资源等时,Prefab就有了用武之地.它拥有下面特点: 能够放到多个场景中.也能够在同一个场景中放置多次 当加入一个Prefab到场景中,就创建了它的一个实例 全部的Prefab实例链接到原始Prefab,本质上是原始Prefab的克隆. 不论项目中存在多少实例.仅仅要对Prefab进行了改动.全部Prefab实例都将随之发生变化. 创建填充Prefab 为了创建一…
一.创建游戏对象 游戏对象分三种:(1) 将物体模型等资源由Project工程面板拖拽到Hierarchy层次面板中 (2) 由GameObject菜单创建Unity自带的游戏对象,如Cube.Camera.Light等 (3) 利用脚本动态创建或删除游戏对象 动态创建方式: (1)使用CreatePrimitive方法创建游戏对象 (2)使用Instantiate实例化产生游戏对象 Instantiate(Object, position, rotation) 二.删除游戏对象 Destroy…
在其它三维软件中设置好的双面材质导入到unity3d中就失去了效果,不过我们可以通过自定义材质来在unity3d中实现双面材质的效果.步骤如下:1.在资源库中新建一新shader:代码如下: Shader "DoubleSided" {   Properties {      _Color ("Main Color", Color) = (1,1,1,1)      _MainTex ("Base (RGB)", 2D) = "whit…
支持原文,原文请戳: Unity3D中脚本的执行顺序和编译顺序 在Unity中可以同时创建很多脚本,并且可以分别绑定到不同的游戏对象上,它们各自都在自己的生命周期中运行.与脚本有关的也就是编译和执行啦,本文就来研究一下Unity中脚本的编译和执行顺序的问题. 事件函数的执行顺序 先说一下执行顺序吧. 官方给出的脚本中事件函数的执行顺序如下图:  我们可以做一个小实验来测试一下: 在Hierarchy视图中创建三个游戏对象,在Project视图中创建三条脚本,如下图所示,然后按照顺序将脚本绑定到对…
声明:   本博客文章翻译类别的均为个人翻译,版权全部.出处: http://blog.csdn.net/ml3947,个人博客:http://www.wjfxgame.com. 译者说明:这是一个系列教程,通过仅仅是用Unity3D和一些免费插件来开发2D游戏.为本人业余时间翻译.仅供大家学习參考.因为原版教程中会有一些"废话"(写博客的人的一些通病.有时候喜欢写写近况啊,瞎扯之类的,本人也不例外- -!),所以我会做一部分精简,翻译比較重要的部分,另外有一些过时的,本人会做矫正,不…
向量是2D.3D数学研究的标准工具,在3D游戏中向量是基础.因此掌握好向量的一些基本概念以及属性和常用运算方法就显得尤为重要.在本篇博客中,马三就来和大家一起回顾和学习一下Unity3D中那些常用的3D数学知识. 一.向量概念及基本定义 1.向量的数学定义 向量就是一个数字列表,对于程序员来说一个向量就是一个数组. 向量的维度就是向量包含的"数"的数目,向量可以有任意正数维,标量可以被认为是一维向量. 书写向量时,用方括号将一列数括起来,如[1,2,3] 水平书写的向量叫行向量 垂直书…
Unity3D中可中途释放的单例 使用静态类,静态变量的坏处是从程序加载后就一直占用内存,想要释放比较麻烦,可是之前使用的单例,没有提供释放的方法,那是不是也同静态的一样直到程序结束菜释放?那单例的好处是什么? 所以此处在单例中加入了可释放的方法来方便释放单例. 用途是: 用此单例管理场景物体时,在不切换场景的前提下释放掉该单例以及挂在单例游戏物体下的子物体 using UnityEngine; public abstract class SingleBhv<T> : IMono where…
预制件Prefab是一个组件模板,比如在游戏里面要实现开枪的时候会有子弹不停地从枪口飞出来,那么就可以通过Prefab来实现子弹的游戏对象,表示所有的子弹都是从同一个Prefab来构建出来的,也可以理解为克隆出来的.创建Prefab很简单,我直接把hierarachy视图的对象直接拉到Project视图的文件夹里面就创建出了一个一模一样的Prefab模板组件.然后你可以在把这个Prefab拉到hierarachy视图或者Screen视图就可以克隆出来一模一样的游戏对象.如图所示: 如果仅仅是把P…
有时我们需要在Unity3D中绘制进度条,如:           或        如果使用4.6版本以下的unity绘制环形的进度条可能需要费点劲.我搜到的大多数方法都是用NGUI插件,但有时只是为了简单的画一个环形UI,使用NGUI反而还增加了学习成本.有一个利用CutOut材质的方法能够利用alpha值,灵活的控制进度条中需要显示的部分,以环形进度条为例,方法如下: 1.在PS中制作一张如下所示的图,RGB为进度条想要的颜色,alpha值从5-250环形渐变(如果从0-255,在进度为0…
Unity3D中脚本的生命周期是依照预先定义好的事件函数的运行流程来演化的,详细流程例如以下: Editor模式下Reset: 当脚本第一次被挂到GameObject上或用户点击Resetbutton时,Reset被调用初始化脚本属性,最经常使用于在Inspector视图中呈现好的默认值. 载入第一个场景First Scene Load: 场景启动时会对场景中的每一个对象运行一遍例如以下事件函数: Awake:游戏启动之前初始化不论什么变量和游戏状态,仅在脚本生命周期中调用一次.不能做协程,St…
一.创建Ragdoll      见unity3d组件文档里的Ragdoll Wizard.由于unity3d中的Ragdoll设置的骨骼点名字与3DMAX里人体骨骼命名有些不一样,下图为Unity3D自带的修理工模型导入unity3d后的Hierarchy图,红框内的部分为Ragdoll需要的骨骼节点. 二.使用Ragdoll替换静态角色      1.Destroy旧的角色      2.Instantiate设置好的Ragdoll      注意:Instantiate的时候,使用旧角色的…
Unity中的coroutine是通过yield expression;来实现的.官方脚本中到处会看到这样的代码. 疑问: yield是什么? Coroutine是什么? unity的coroutine程序执行流程怎么那么奇怪? unity中的coroutine原理是什么,怎么实现的? 使用unity的coroutine需要注意什么问题? 一.yield的在几种语言中的程序执行特性: Lua中的yield是使得协同函数运行->挂起并且传递参数给resume.resume使得协同函数挂起->运行…
本系列文章由@浅墨_毛星云 出品.转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/40723789 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 邮箱: happylifemxy@163.com 作为一个系统介绍Unity3D中Shader编写的系列文章的开篇.本文的第一部分为系列文章的前言,然后第二部分介绍了这个系列文章中我们会使用的游戏场景创建方式.最后一部分解说了怎…
本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源(当然你也可以从官网下载). ========================================== 分割线 ========================================== 写在前面 通过上一节,我们已经知道如何创建我们自己的Cubemaps,现在,我们可以来看一下如何使用…
1.Unity中配备了强大的阴影和材料的语言工具称为ShaderLab,以程式语言来看,它类似于CgFX和Direct3D的效果框架语法,它描述了材质所必须要的一切咨询,而不仅仅局限于平面顶点/像素着色. 2.在Unity3D中创建一个Shader:Assets -> Create -> Shader 3.创建了Shader就可以应用到各个材质Material中,创建材质:Assets -> Create -> Material.然后就可以在材质的Inspector面板中,shad…
如果想在Unity3D中去播放视频文件,那么最方便的方法就是使用它自带的MovieTexture. 可以实现简单的视频播放功能. Play Pause Stop. 有也只有这三个功能,  如果你想要一个进度条,并且可以随意的拖拽视频的进度的话, 那就不能满足你的需求了.  所以想使用 DirectShow 这个视频开发包.来实现我们的想法. 这东西是基于COM组件的一套 C++ 开发库. 所以花了两天时间,各种Google. 把这个功能实现了, 在这里把流程记录一下,做为备忘.   Direct…
在用Unity3D开发游戏中,我们会经常创建多个场景,但是在场景过度的时候,通常场景中的对象会被删除.所以Unity3D给了我们一个不删除前一个 场景中的某一个对象或者脚本的API,那就是“DontDestoryOnLoad(对象或者某个脚本)”.但是我们在用这个API的时候我们会发现一个 很奇怪的问题就是:如果A里面放了个东西o,当到场景B的时候,o 也会出现在B场景中,这里一看,感觉还是对的,然后你再返回到场景A, 你就会惊讶的发现,A里面出现了两个o,然后你到B, 看到B里面也出现了两个…
原地址:http://www.cnblogs.com/koalaylj/archive/2012/09/04/2670629.html 最近在用unity3d开发Android上的游戏,一直Debug.Log感觉很悲剧,后来研究了下把log4net加了进去,能通过udp发送远程日志,电脑手机上都能发送日志,顿时神清气爽.可是后来才发现,把eclipse打开,连接到android设备后,Debug.Log 能直接在LogCat中显示出来,囧! 但是还是分享下我加入Log4net的过程吧,如果确实有…
原地址:http://blog.csdn.net/pizi0475/article/details/9771941 转自: http://forum.mirax.com.tw/unity/viewtopic.php?f=133&t=221 关于unity3d中布娃娃系统使用的教程不多,下面是一篇比较详细基础的使用教程,原文如下: 使用版本為Unity2.5 PRO 首先,將你3dsmax的角色和Bipes匯出成FBX檔,設定如下即可. (注意不可以有中文路徑喔否則無法正確匯出) 打開Unity3…
1.创建MySQL2Sqlite脚本mysql2sqlite.sh:(代码地址:https://gist.github.com/esperlu/943776) #!/bin/sh # Converts a mysqldump compatible file. It also extracts the MySQL `KEY xxxxx` from the # CREATE block and create them in separate commands _after_ all the INSE…
在unity3d中导入模型,经常会遇到模型的轴向与unity中默认的轴向不符合的情况. 网上有很多解决办法都是说在3dmax中导出模型时修改模型的轴向,那么我接下来讲的就是如何在unity里面修改模型的轴向.(以网上下载的坦克模型为例) 步骤1:将模型导入到unity中,至于如何赋材质和贴图就不用讲了吧. 导入的坦克模型与创建的unity自带模型cube轴向对比,发现轴向是统一的,但是模型的本身的朝向不对,相差了90度. 步骤2:创建一个空物体,GameObject—>Create Empty.…
喜欢我的博客请记住我的名字:秦元培,我的博客地址是:http://qinyuanpei.com 转载请注明出处,本文作者:秦元培, 本文出处:http://blog.csdn.net/qinyuanpei/article/details/47775979   大家好,我是秦元培,欢迎大家关注我的博客.近期博客的更新频率基本直降到冰点,由于这段时间实在是忙得没有时间来写博客了.今天想和大家分享的内容是RPG游戏中游戏存档的实现.由于近期在做一个RPG游戏的项目,所以遇到这个问题就随时记录下来,在对…
Unity中的coroutine是通过yield expression;来实现的.官方脚本中到处会看到这样的代码. 疑问: yield是什么? Coroutine是什么? unity的coroutine程序执行流程怎么那么奇怪? unity中的coroutine原理是什么,怎么实现的? 使用unity的coroutine需要注意什么问题? 一.yield的在几种语言中的程序执行特性: Lua中的yield是使得协同函数运行->挂起并且传递参数给resume.resume使得协同函数挂起->运行…
1.导出assetbundle: ①单个资源导出成assetbundle: ②多个资源导出成一个assetbundle: 2.读取assetbundle: ①加载到内存: ②解压为具体资源. 1.导出assetbundle: ①单个资源导出成assetbundle: BuildPipeline.BuildAssetBundle(Object obj, null, string path, BuildAssetBundleOptions.CollectDependencies, BuildTarg…
公司今年3D产品的工作中心主要集中在提高产品深度上,通过对竞争产品的分析,发现我们的缺陷在于多人在线与后台管理部分,多人在线使用unity自带的Network能够搞定,后台部分前段时间主要研究了下Sqlite.因为sqlite本身不带server,作为数据库仅仅是一个文件,sqlite放在server上与client通信的需求事实上就是多个client訪问同一个文件了.查了一些资料,有非常多方法,个人感觉socket不错.一来应用广泛.自己学习后也是一个充电,而来操作灵活,比作文件共享更自由.所…
在Unity3D中使用Projector实现动态阴影 无意中看见一篇博客叙述使用Projector实现动态阴影可以在移动平台拥有非常好的性能,遂按照其想法实现了一遍,发现其中竟有许多细节,写下这篇博客记录以供将来参考. Projector 从上图中我们发现Projector中的参数参数Camera的参数非常的相似,那Projector是做什么的呢? 官方解释:A Projector allows you to project a Material onto all objects that in…
本文太乱,推荐frankjfwang的:全面解析Coroutine技术 Unity中的coroutine是通过yield expression;来实现的.官方脚本中到处会看到这种代码. 疑问: yield是什么? Coroutine是什么? unity的coroutine程序运行流程怎么那么奇怪? unity中的coroutine原理是什么,怎么实现的? 使用unity的coroutine须要注意什么问题? 一.yield的在几种语言中的程序运行特性: Lua中的yield是使得协同函数执行->…
版权声明:欢迎订阅公众号[5厘米的理想],愿生命里的每个小理想,都能成为生命里的小确幸.本文地址为: https://blog.csdn.net/qinyuanpei/article/details/24130347       大家好,我是秦元培.欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei.       今天我们来做一个在Unity3D中实现视频播放的实例.首先,Unity支持的播放视频格式有.mov..mpg..mpeg..mp4..avi和.asf…
图文详解Unity3D中Material的Tiling和Offset是怎么回事 Tiling和Offset概述 Tiling表示UV坐标的缩放倍数,Offset表示UV坐标的起始位置. 这样说当然是隔靴搔痒. 下面用*.3ds文件作为模型,介绍Tiling和Offset到底是怎么回事. 3DS格式解析 比如我有这样一个tank_player.3ds模型.右侧的'select'处的图片就是贴图. *.3ds文件最基本的内容包括顶点列表Vertices.贴图坐标列表UVs.面列表Faces.其中Ve…