Unity3d
文章平均质量分 77
xiaodiao062
这个作者很懒,什么都没留下…
展开
-
Unity3d中制作Loading场景进度条所遇到的问题
背景 通常游戏的主场景包含的资源较多,这会导致加载场景的时间较长。为了避免这个问题,可以首先加载Loading场景,然后再通过Loading场景来加载主场景。因为Loading场景包含的资源较少,所以加载速度快。在加载主场景的时候一般会在Loading界面中显示一个进度条来告知玩家当前加载的进度。在unity中可以通过调用Application.LoadLevelAsync函数来异步加载转载 2014-09-15 16:00:12 · 994 阅读 · 0 评论 -
Unity脚本——单例模式
关于Unity的脚本,用过的人应该都会觉得使用之方便了,又加上Unity把脚本与界面集成,使他更为人性化。已经这么方便了,为什么还要讲一些编程思维呢?其实做一些小应用是没有关系的,不过当工程越来越大时,你会发现其维护难度会越来越大,Unity其他我讲不了,脚本上我做一些个人学习总结,以作各位参考,疏漏出错之处,还请补充,一起进步。废话不多说,让我们开始。我也不讲单例模式的概念了,英文叫转载 2014-05-29 15:07:30 · 953 阅读 · 0 评论 -
[unity基础教程]Unity3D实现动态加载游戏资源(转)
用Unity3D制作基于web的网络游戏,不可避免的会用到一个技术-资源动态加载。比如想加载一个大场景的资源,不应该在游戏的开始让用户长时间等待全部资源的加载完毕。应该优先加载用户附近的场景资源,在游戏的过程中,不影响操作的情况下,后台加载剩余的资源,直到所有加载完毕。 本文包含一些代码片段讲述实现这个技术的一种方法。本方法不一定是最好的,希望能抛砖引玉。代码是C#写的,用到了Js转载 2014-05-29 14:37:43 · 1801 阅读 · 0 评论 -
将Unity3D游戏移植到Android平台上
将Unity3D游戏移植到Android平台是一件很容易的事情,只需要在File->Build Settings中选择Android平台,然后点击Switch Platform并Build出apk即可。通常,我们的工作不仅限于此,一般还需要给手机游戏加入计费、广告等功能。这些功能一般没有提供Unity3D插件,我们需要将游戏导出为Android工程,然后添加这些功能;或者,我们根据这些计费sdk来转载 2014-05-29 17:36:08 · 1126 阅读 · 0 评论 -
Unity3D架构设计NavMesh寻路(未完待续)
国庆闲来没事把NavMesh巩固一下。以Unity3D引擎为例写一个底层c# NavMesh寻路。因为Unity3D中本身自带的NavMesh寻路不能很好的融入到游戏项目当中,所以重写一个NavMesh寻路是个必经之路。NavMesh在很多游戏中应用广泛,不同种类的框架下NavMesh寻路发挥的淋漓尽致。与传统的A星寻路相比,NavMesh不仅减少了内存空间占有量,加快了寻路速度,还可以加入寻路角转载 2014-05-29 16:51:48 · 2220 阅读 · 0 评论 -
[Unity] - NGUI所见即所得之深入剖析UIPanel,UIWidget,UIDrawCall底层原理
之前项目中用的NGUI的版本是3.0.7 f3,开始的时候感觉没有什么问题,直达最近项目UI的完成度比较高时,就突然出现掉帧很严重的现象,即使只有一个UI打开(其他都是active = false的情况下),打开profier,发现UIPanel LateUpdate 竟然占了CPU使用率的50%左右,这太恐怖了,虽然之前看到过有吐槽NGUI的机制的,但是我觉得为了保证通用牺牲一些性能还是在所难免转载 2014-05-29 15:21:31 · 1091 阅读 · 0 评论 -
Unity的WWW网络动态加载和储存在本地
戏开发中需要从服务器上加载一下资源包,场景等,这时就需要使用Unity的WWW加载类。最近研究WWW加载发现很多问题和报错,这里接写出来和大家共享一下。关于加载:首先是检查本地文件里是否存在相同的资源包文件(检查和校验版本号),如果都是正确的就不需要从服务器端下载了直接从本地(手机就是SD卡里了)加载就可以了。如果版本号不对那么就要下载最新版本的资源了,当然要把老版本的从本地删转载 2014-05-29 15:18:45 · 856 阅读 · 0 评论 -
NGUI控件的管理
以下是我在工作中对NGUI的总结,如果有正确,请多多指教,谢谢。 在使用NGUI制作UI时,通常一个场景都会有非常多的子类向下延伸,看上去十分混乱,而且要在某个UIGamObject上挂Script,当下次修改要找出来的时候,犹如大海捞针。所以我自己总结了些经验,跟大家分享。一、UI的命名 建议命名规则为场景名称_序号_UI类型(或功能、属性),建议同一类型或同一模块的转载 2014-06-11 15:50:00 · 514 阅读 · 0 评论 -
关于制作敌人死亡后爆出不同种类金币的思路
以下内容只是自己对这次项目中某个功能的总结,由于自己水平有限,用的也是比较简单的算法,如果更好的思路,请私信我,十分感谢。 在我们游戏中,经常会出现如下的功能,怪物死亡后,会爆出很多金币,而且种类各不相同。但在开发中是如何实现呢?我提供两种思路。 方法一:循环法1.假设有金、银、铜三种金币,我们要有一个数组,存放这三种金币的值,例如金代表50,银代表30,铜转载 2014-06-11 15:48:43 · 747 阅读 · 0 评论 -
Unity系统自带函数生命周期以及相互关系
Unity脚本从唤醒到销毁都有着一套比较完善的生命周期,添加任何脚本都要遵守生命周期法则! 接下来介绍几种系统自调用的重要方法。首先要我们先来说明一下它们的执行顺序: Awake --> Start --> Update --> FixedUpdate --> LateUpdate -->OnGUI -->Reset --> OnDisable -->OnDestroy转载 2014-06-11 15:16:46 · 501 阅读 · 0 评论 -
天天爱消除倒计时功能的实现思路
文只是我自己在工作中实现某个功能时的一些思路分享,如果有更好的方案,请私信我,谢谢。一.天天爱消除的倒计时 天天爱消除中,每当我们用掉了小于5个的红心,就会出现一个倒计时,倒数10分钟后增加一个红心,其实这种倒计时的功能还可以用在优惠道具限时购买,特殊关卡限时开启等等,经过我多次试验,它的倒计时是根据进入游戏时获取服务器的时间进行计算的,与手机时间无关。由于项目并无联网,所以以下转载 2014-06-11 16:03:00 · 885 阅读 · 0 评论 -
开发过程中遇到的问题纪要
插件问题:1.NGUI生成Atlas时,边界值最好取最大值的整数,如512×512的图的,我们预算生成的Atlas的长宽为500×500(1024同理取1000),这样做避免超过最大值的界限,从而生成更大的Atlas。2.在同时使用NGUI和SmoothMoves时,如果生成的Atlas名字相同(或者参与到合成的单张图片名字相同),有可能出现报错,图片错乱的情况。(我自己也不敢肯定是否因名转载 2014-06-11 15:46:44 · 410 阅读 · 0 评论 -
unity3d中脚本生命周期(MonoBehaviour lifecycle)
最近在做一个小示例,发现类继承于MonoBehaviour的类,有很多个方法,于是乎必然要问出一个问题:这么多个方法,执行先后顺序是如何的呢?内部是如何进行管理的呢?于是在网上找了许多资料,发现了Richard Fine在2012年就已经发布了一篇文章,而且讲得算是相当深入,并且很有道理的,这里加上我的一些尝试与思考,分享给大家。先贴上图,大家有个直观认识:接下来,转载 2014-06-11 12:02:03 · 399 阅读 · 0 评论 -
协程的使用
作者ChevyRay ,2013年9月28日,snaker7译 原文地址:http://unitypatterns.com/scripting-with-coroutines/请注意:这个关于协程的教程共有两部分,这是第二部分,如果您未曾看过第一部分——协程介绍,那么在阅读这部分内容之前建议您先了解一下。计时器例子在第一个教程中,我们已经了解了协程如何让一个方法“暂停”下来,并且让转载 2014-06-25 17:54:58 · 2173 阅读 · 0 评论 -
unity脚本技术框架
很久没写新随笔了,实在很内疚,最近为了工作在学习unity,发现Unity实在是个好东西,普通的程序员自学一段时间就可以很快做成游戏DEMO,可以说,Unity和Unreal3是当前在国内最热的两款游戏引擎,特别因为Unity的跨平台编译,使得Unity做的3D手机游戏基本占领了移动市场。 unity可以使用C#、Javascript、Boo(类似Python)三种语言跨平台编译(Win转载 2014-07-24 13:34:53 · 628 阅读 · 0 评论 -
C#委托
委托的定义与方法的定义类似,只是返回值类型的前面多了个delegate。如:public delegate void PrientDelegate(string content),其实委托就是一个能够将方法封装成一个引用类型,能和普通对象一样传递。一、委托的声明有几点要注意的, 1、和类一样,委托的声明可以再类的外部声明,委托也可以再类的内部声明。 2、委托的声明虽然形转载 2014-05-29 16:25:13 · 619 阅读 · 0 评论 -
Unity性能优化之Draw Call
Unity(或者说基本所有图形引擎)生成一帧画面的处理过程大致可以这样简化描述:引擎首先经过简单的可见性测试,确定摄像机可以看到的物体,然后把这些物体的顶点(包括本地位置、法线、UV等),索引(顶点如何组成三角形),变换(就是物体的位置、旋转、缩放、以及摄像机位置等),相关光源,纹理,渲染方式(由材质/Shader决定)等数据准备好,然后通知图形API——或者就简单地看作是通知GPU——开始绘制,转载 2014-05-29 16:49:18 · 736 阅读 · 0 评论 -
场景管理插件
Unity3d中提供了场景Scene的概念,Scene就是一组相关联的游戏对象的一个集合,通常每个集合就是一个场景,但是也有可能只是一个场景的一部分!场景中的游戏对象是任意的,可以是HUD的UI组件,场景地图,模型等等Unity3d提供了一些切换场景的规则和方法(例如在切换场景时不销毁某些GameObject,同步,异步加载场景API),但是并没有提供一个通用的场景管理的模块(想要转载 2014-08-14 11:11:04 · 634 阅读 · 0 评论 -
asdfasdf
Catalogue 目录1.ABOUT 关于2.USAGE 用法3.VIDEO 视屏教程4.COMMAND 命令字符5.SUPPORT 技术支持6.LANGUAGE 语言选择ABOUTThank you for using PS转载 2014-06-16 19:50:44 · 1948 阅读 · 0 评论 -
Unity协程(Coroutine)原理深入剖析再
尊重他人的劳动,支持原创,转载请注明出处:http.dsqiu.iteye.com 前面已经介绍过对协程(Coroutine)的认识和理解,主要讲到了Unity引擎在执行协程(Coroutine)的原理(Unity协程(Coroutine)原理深入剖析)和对协程(Coroutine)状态的控制(Unity协程(Coroutine)管理类——TaskManage转载 2014-06-19 15:29:25 · 1009 阅读 · 0 评论 -
[unity3d]鼠标点击地面人物自动走动(也包含按键wasd&space控制)
在漫游游戏中常用的功能就是人物在场景中行走,必要的功能就是鼠标点击地面人物就朝着那个方向行走,键盘方向键前后左右也能控制人物的行走和跳跃,在官方自带的第三人称视角中做了一点修改,官方自带的ThirdPersonController中的摄像机自动指向人物的背面,这样不能看到人物的正面或者侧面,对ThirdPersonController脚本做了修改之后,可以旋转摄像机的视角,可以摄像机跟随,类似sm转载 2014-06-03 16:50:36 · 1216 阅读 · 0 评论 -
C# 事件和Unity3D
原文:http://zijan.iteye.com/blog/871207翻译自: http://www.everyday3d.com/blog/index.php/2010/10/04/c-events-and-unity3d/ zijan译 (括号内是译者自己对文章和技术的理解) (Unity3D是现在越来越流行的3D游戏引擎,它支持JavaScript,c#和转载 2014-07-24 16:06:32 · 653 阅读 · 0 评论 -
Unity3D-FSM有限状态机的简单设计
在之前的文章里介绍了一个基础U3D状态机框架 (Unity3D游戏开发之状态流框架) 即大Switch的枚举状态控制。这种方法虽然容易理解,编程方法也相对简单,但是弊端是当状态变得复杂之后,或需要添加一种新的状态时,会显得非常混乱并且难以下手。故我们需要引进一种更高级的状态机技术来避免这些问题。网上有一些讲述U3D-FSM状态机的文章,但都不针对基础讲解,而且大多带有冗余的与状态机不相关的代码,基转载 2014-06-14 17:23:19 · 1371 阅读 · 0 评论 -
使用Unity的50个建议:Part1(译文)
关于这些建议这些建议并不适用于所有的项目转载 2014-05-30 15:10:58 · 508 阅读 · 0 评论 -
使用Unity的50个建议:Part2(译文)
26.避免使用不同的语法来做同一件事。许多情况下,可以有多种语法来做一件事。这时,请选择一种贯穿项目的始终,因为:有些语法不能很好地协同工作。只使用一种语法使得设计能够朝着一个方向进行,并且不适合其他语法。 从始至终使用一种语法能让团队成员更好地了解项目进程,可以让架构和代码更容易理解,更少出错。 例子: 协同VS.状态机。 嵌套问题VS.相关问题VS.转载 2014-05-30 15:14:16 · 620 阅读 · 0 评论 -
Unity3d + NGUI 的多分辨率适配
一、当下移动设备的主流分辨率(数据来自“腾讯分析移动设备屏幕分辨率分析报告”)1.1 iOS设备的分辨率主要有: 宽高宽高比9606401.511366401.77510247681.3333204815361.3333 Android设备的分辨率则相对纷杂,转载 2014-07-24 14:32:53 · 615 阅读 · 0 评论 -
Unity3D占用内存太大的解决方法
最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于Unity3D对于内存的管理与优化.Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其实两者区别不大。 Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一般AssetBundle文件需要你自己创建,运行时 动态转载 2014-05-30 14:35:33 · 862 阅读 · 0 评论 -
使用Unity制作俄罗斯方块游戏
1. 操作环境 Unity3D 4.1.0版本、Win 7 备注:该方法并非本人原创,我也是根据别人的代码来学习的。2. 思路分析 该方法中,只有2个脚本,一个是控制方块的(Block.cs),另外一个是控制游戏场景的(Manager.cs)。游戏完成后效果如下图: 2.1 方块的构造(Block.cs) 俄罗斯方块一共有7种不同的方块。每个种类有4转载 2014-06-13 16:18:30 · 4098 阅读 · 0 评论 -
Unity3d通过Action注册事件,回调方法
using UnityEngine;namespace Liulala.Project{ public class Data { public System.Actionint,int> OnDateChange; public int Date1 {get; private转载 2014-05-29 16:40:28 · 1267 阅读 · 0 评论 -
专业版Unity技巧分享:使用定制资源配置文件
通常,在游戏的开发过程中,最终会建立起一些组件,通过某种形式的配置文件接收一些数据。这些可能是程序级别生成系统的一些参数,或许是手势识别系统的手势集,或任何其他东西。如果你是在Unity内部开发,很可能以创建一个可序列化的类来开始这项任务,这个类被设计成简单的容器,存储你所需要的所有配置数据。但是那又怎样?现实中你是怎样把数据放到那个类里的?你是创建一堆XML 或 JSON文件,当游戏启动时加转载 2014-05-29 17:40:15 · 779 阅读 · 0 评论 -
unity3d 数学基础与数学辅助类
1. 数学(点乘/叉乘)/unity3d的数学辅助类2. 坐标系统(本地/世界/屏幕)3. Unity3d运行流程4. 计算角色和目标点的夹角,旋转角色朝向目标点,然后移动角色(例子)5. Gizmos/inspector/地图编辑6. 脚本文件间的数据交互7. Yield return/协同线程/事件8. Socket9转载 2014-06-25 17:52:29 · 759 阅读 · 0 评论 -
简单的AI范围检测
在游戏里,我们所控制角色靠近怪物的时候,当到达怪物的一定范围内,怪物就会来追击你,并攻击你,那么这是怎么实现的呢?大家看下图一个简单的演示:2012-8-22 23:32:31 上传下载附件(33.81 KB)上图简单的演示了怪物检测的原理那么我们怎么通过代码来实现的呢?由于之前在第七课已经介绍了AI,那么之前就不写了我们转载 2014-06-25 17:50:15 · 844 阅读 · 0 评论 -
Unity3D研究之两种方式播放游戏视频
Unity支持的播放视频格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。只需将对应的视频文件拖拽入Project视图即可,它会自动生成对应的MovieTexture对象AD:WOT2014:用户标签系统与用户数据化运营培训专场Unity支持的播放视频格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。只需将对应的视转载 2014-06-25 15:50:54 · 457 阅读 · 0 评论 -
Unity手游之路<七>角色控制器
我们要控制角色的移动,可以全部细节都由自己来实现。控制角色模型的移动,同时移动摄影机,改变视角。当然Unity也提供了一些组件,可以让我们做更少的工作,实现我们所期望的功能。今天我们就一起系统来学习相关的内容吧。(转载请注明原文出处http://blog.csdn.net/janeky/article/details/17406095)Charactor Controller(角色控制转载 2014-06-25 17:32:34 · 553 阅读 · 0 评论 -
Json实现资源动态加载
用unity3d制作基于web的网络游戏,不可避免的会用到一个技术-资源动态加载。比如想加载一个大场景的资源,不应该在游戏的开始让用户长时间等待全部资源的加载完毕。应该优先加载用户附近的场景资源,在游戏的过程中,不影响操作的情况下,后台加载剩余的资源,直到所有加载完毕。 本文包含一些代码片段讲述实现这个技术的一种方法。本方法不一定是最好的,希望能抛砖引玉。代码是C#写的,用到了Json,转载 2014-06-25 18:01:34 · 1125 阅读 · 0 评论 -
Unity3D实现动态加载游戏资源
用Unity3D制作基于web的网络游戏,不可避免的会用到一个技术-资源动态加载。比如想加载一个大场景的资源,不应该在游戏的开始让用户长时间等待全部资源的加载完毕。应该优先加载用户附近的场景资源,在游戏的过程中,不影响操作的情况下,后台加载剩余的资源,直到所有加载完毕。 本文包含一些代码片段讲述实现这个技术的一种方法。本方法不一定是最好的,希望能抛砖引玉。代码是C#写的,用到了Js转载 2014-06-25 17:47:45 · 851 阅读 · 0 评论 -
Unity手游之路<四>3d旋转-四元数,欧拉角和变幻矩阵
今天我们来谈谈关于Unity中的旋转。主要有三种方式。变换矩阵,四元数和欧拉角。定义变换矩阵可以执行任意的3d变换(平移,旋转,缩放,切边)并且透视变换使用齐次坐标。一般比较少用到。Unity中提供了一个Matrix4x4矩阵类四元数“四元数是最简单的超复数。 复数是由实数加上元素 i 组成,其中i^2 = -1。 相似地,四元数都是由实数加上三个元素 i、j、转载 2014-06-25 17:29:25 · 783 阅读 · 0 评论 -
关于Unity的委托事件处理脚本之间的交互
这里可能需要前期准备一下c#的委托(delegate)和事件(event)方面的知识了。。。不是很明白的,就各种谷歌吧~需要准备二个继承与MonoBehaviour的EventDispatcher类和EventListener类。我这里吧delegate就写在EventDispatcher里了,也可以新建一个类吧这些delegate存在里面,方便一点。。。//定义委托事转载 2014-06-25 17:56:44 · 1338 阅读 · 0 评论 -
Unity3d使用LitJson解析服务器上的JSON
请保证工程里面已经加入了LitJson.dll服务器上JSON的内容[{"people":[{"name":"fff","pass":"123456","age":"1", "info":{"sex":"man"}}, {"name":"god","pass":"123456","age":"1","info":{"sex":"woman"}}, {"name"转载 2014-06-25 17:55:41 · 806 阅读 · 0 评论 -
Unity手游之路<十>自动寻路Navmesh之跳跃,攀爬,斜坡
在之前的几篇Blog总,我们已经系统学习了自动寻路插件Navmesh的相关概念和细节。然而,如果要做一个场景精美的手游,需要用到各种复杂的场景地形,而不仅仅是平地上的自动寻路。今天我们将通过一个完整的复杂的实例,来贯穿各个细节。我们将实现一个复杂的场景,角色可以在里面攀爬,跳跃,爬坡。是不是感觉很像当年的CS游戏呢?本案例将会用得一些基本的动画函数,大家可以先结合文档有个大概的了解。本实例是在官方转载 2014-06-25 17:37:11 · 1100 阅读 · 0 评论