
unity游戏开发经验
文章平均质量分 55
_小友
这个作者很懒,什么都没留下…
展开
-
关于Unity启动时间过长(启动黑屏时间长)的问题
好吧,Unity启动确实比其他引擎生成的游戏包慢些。关键是你启动的时候还要等上一段时间才显示Splash那个logo图。最近项目有个蛋疼得需求,需要在启动界面加进度帧动画。。我也是醉了。刚开始的思路:用Unity单独做个启动场景,让Splash那张图用成纯黑。那么问题来了,除了Unity刚启动的黑屏+显示Splash的黑图,再到显示loading动画界面至游戏场景加载出来,这时间都转载 2016-07-29 21:33:05 · 19151 阅读 · 6 评论 -
Unity3D和Lua之间的相互调用
这篇笔记主要集中学习一下uLua和Unity3D之间相互调用的方法,我们导入了uLua之后,现在会弹出一个类似学习屏幕的东西,如下:先赞一个!Unity3D调用LuaUnity3D调用Lua的方法还是比较简单的,所以先说这个,由于这部分在学习笔记(一)中已经说的挺多的了,更多的内容点击这里回去看,所以这里我们就来看一个简单的示例即可: 1 using L转载 2016-02-02 15:20:20 · 6522 阅读 · 1 评论 -
Unity3D研究院之IOS本地消息通知LocalNotification的使用(六十七)
现在的游戏里一般都会有本地消息,比如每天定时12点或者下午6点告诉玩家进入游戏领取体力。这种东西没必要服务器去推送,客户端就可以完成。Unity里面提供了本地任务的功能但是只有IOS上才支持,开始我有点不解为什么Android上不支持,当我把Android的本地通知做完后,我才明白。IOS源生的API中就支持固定时间循环推送,而Android上需要自己开启一个Services,启动一个AlarmM转载 2016-01-13 18:38:51 · 640 阅读 · 0 评论 -
深入浅出聊Unity3D项目优化:从Draw Calls到GC
原文出处: 慕容小匹夫的博客(@慕容小匹夫) 欢迎分享原创到伯乐头条前言:刚开始写这篇文章的时候选了一个很土的题目。。。《Unity3D优化全解析》。因为这是一篇临时起意才写的文章,而且陈述的都是既有的事实,因而给自己“文(dou)学(bi)”加工留下的余地就少了很多。但又觉得这块是不得不提的一个地方,平时见到很多人对此处也给予了忽略了事,需要时才去网上扒一些只言片语的资料。也转载 2015-12-07 17:43:46 · 752 阅读 · 0 评论 -
Unity3D研究院之通过C#使用Advanced CSharp Messenger
Advanced CSharp Messenger 属于C#事件的一种。 维基百科中由详细的说明http://wiki.unity3d.com/index.php?title=Advanced_CSharp_Messenger 上周的一天刚巧有朋友问到我这一块的知识,那么我研究出来将它贴在博客中,帮助了他也帮助我自己!哇咔咔。Advanced CSharp Messenger的特点可以将游转载 2015-12-25 10:55:26 · 502 阅读 · 0 评论 -
联机Unity Profile技巧
这里暂且讨论使用Mac对iOS设备进行调试的方法。至于Android平台,会有细节但不是非常重要的不同。为什么需要联机Profile?大部分情况,直接在工作机(PC、Mac)用Unity针对工程进行Profile就能查出性能的瓶颈。但在不同的设备会有不同的性能表现、甚至一些设备由于硬件设计的原因,导致一些性能瓶颈只有在特定设备上才会表现出来。针对这些设备相关的性能问题,需要转载 2015-12-04 15:33:58 · 1097 阅读 · 0 评论 -
Unity3D_NGUI_安卓APK安装包瘦身实践
减包瘦身是个精细活。本文整理了0907版本操作过程,以备日后参考。 经过一番折腾,各位攻城狮的努力,美术设计师的支持,策划爷的理解,UI资源(图集、字体、单局外模型贴图)从45.4MB减少到24.5MB。如下表所示。 下文看图说话。实操中针对同一个资源,可组合应用多个压缩选项。文中所指【图集Atlas】是多个小图片的合集,【Texture】是单张图片,大小指转载 2015-12-05 14:44:00 · 1729 阅读 · 0 评论 -
Unity3D_NGUI_安卓APK安装包瘦身实践(二)
申明:本文出处http://gad.qq.com/article/detail/7083057-----------------------------------------------------------------------上次0907版本测试后,UI系统界面进行了一个脱胎换骨的风格改版。UI风格的扁平化使得UI资源复用程度增加了许多。传转载 2015-12-05 14:50:11 · 767 阅读 · 0 评论 -
WaitForTargetFPS
WaitForTargetFPS,是关于帧数限制的,你可能开了垂直同步,其实是防止撕裂。先说撕裂,在显示器的帧缓存会被不同步的显卡的帧缓存给替换掉,导致显示器显示到一半的时候,内存被换掉,你看到上频是上一针的画面,下频是下一针的画面,游戏刷新的频率越快,撕裂就越严重,所以就会撕裂了。开了垂直同步,是指将游戏帧数锁定到和你的显示器刷新频率一样的,因为显卡和显示器的刷新频率不一样。 简单的说,Wait转载 2015-12-05 12:17:30 · 764 阅读 · 0 评论 -
自动寻路Navmesh之入门
现在的大部分mmo游戏都有了自动寻路功能。点击场景上的一个位置,角色就会自动寻路过去。中间可能会有很多的障碍物,角色会自动绕过障碍物,最终达到终点。使用Unity来开发手游,自动寻路可以有很多种实现方式。第一种比较传统的是使用A星寻路,它是一种比较传统的人工智能算法,在游戏开发中比较常用到。大部分的页游和端游都用到这种技术。在Unity游戏也可以用这种技术,Asset Store上面已经有相关的组转载 2016-03-17 18:06:53 · 750 阅读 · 1 评论 -
Physics2D.Linecast
grounded = Physics2D.Linecast(transform.position, groundCheck.position, 1 以上程式碼是用來測試是否在地面上指的是投射一條線!!可指定起始點與結束點當碰到第一個Collider 會回傳一個 RaycastHit2D 如果不想回傳RaycastHit2D可使用 LinecastNonAlloc如果想投转载 2016-04-25 14:55:22 · 4067 阅读 · 0 评论 -
获取spine动画的一些信息
我的需求:获得每个动画状态播放的时间然后就半天都没有找到在哪。知道看到网上以为大哥的这段代码,衷心的感谢: http://www.cnblogs.com/softimagewht/p/4149118.html 这里是我看到的代码源地址//skeletonDataSkeletonAnimation skeletonAnimation = GetComponent();原创 2015-08-24 15:54:59 · 2453 阅读 · 0 评论 -
在Unity3D中动态创建对象和创建Prefab原型对象的三种方式
u3d里动态创建对象,需要使用prefab而创建的时候 MonoBehaviour.Instantiate( GameObject orignal) 需要一个作为原型的对象。本文提供三种方式获得prefab对象。 方式一:使用脚本的public字段直接在Project视图里找到做好的prefab,将其拖拽到指定脚本的指定public GameObject 字转载 2015-06-08 10:39:58 · 2625 阅读 · 0 评论 -
动态修改ui2dsprite的图片
最好还是使用uispirteTexture2D tx = Resources.Load ("background/" + xxx) as Texture2D;if (tx != null){sprite.sprite2D = Sprite.Create(tx, new Rect(0, 0, tx.width, tx.height), Vector2.zero);sprite.M原创 2015-08-25 11:53:36 · 1503 阅读 · 0 评论 -
Unity Sprite Packer 问题集合
介绍今天突发奇想用了下sprite packer 这个功能,基本用法网上教程一堆一堆的,这里就不赘述了。在使用sprite packer过程中遇到一些问题,然后各种百度不到答案,最后和谐上网找到了答案,考虑到最近墙的严重,share一下找到的答案sprite packer按钮灰显这是因为unity editor木有开启sprite packer 这个功能。这个只有老转载 2016-06-07 00:56:47 · 3290 阅读 · 2 评论 -
阿里的博客 http://blog.sina.com.cn/haodengli [订阅][手机订阅] 首页博文目录图片关于我 个人资料 阿里 阿里 微博 加好友发纸条 写留言加关注 博客十周年地图 博
把以下脚本放在unity工程文件夹内的Editor 文件夹下 ,选中多个物体 按下 “command 加shift 加 d ”即可改变选中物体的激活状态// MyEditorTool.csusing UnityEngine;using UnityEditor;using System;pub转载 2016-05-31 15:56:07 · 3095 阅读 · 0 评论 -
Unity中的Path对应各平台中的Path
最近使用unity读取各个平台路径,特别对移动平台路径的处理简直是各种蛋疼 各种坑在此与大家分享下IOS:Application.dataPath : Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.app/DataApplication.streamingAssetsPath : Application/xxxxxxx转载 2016-05-31 11:29:26 · 481 阅读 · 0 评论 -
unity 的内存管理
最近一直在和这些内容纠缠,把心得和大家共享一下:Unity里有两种动态加载机制:一是Resources.Load,一是通过AssetBundle,其实两者本质上我理解没有什么区别。Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一般AssetBundle文件需要你自己创建,运行时动态加载,可以指定路径和来源的。其实场景里所有静态的对象也有转载 2016-05-10 22:53:25 · 696 阅读 · 0 评论 -
Unity 3D 正交(Orthographic)摄像机尺寸学习笔记
在 Unity 3D 中可以把摄像机设置为正交。正交摄像机与 Unity 3D 中普通摄像机相比没有透视效果(近大远小),所以正交相机一般可以用于 2D 游戏开发或者是 3D 游戏的 UI 开发。在 2D 游戏开发中,有时会遇到根据屏幕的分辨率对游戏的背景进行自适应缩放的需求,这就需要对正交摄像机的尺寸也就是显示范围有一定的了解。在正交相机中唯一与显示范围相关的属性只有一个,那就是转载 2016-04-13 14:06:28 · 22114 阅读 · 0 评论 -
Unity3D中uGUI事件系统简述及使用方法总结
Unity3D的uGUI系统的将UI可能触发的事件分为12个类型,即EventTriggerType枚举的12个值。如下图所示: 先以PointerClick为例。这个是用于某点点击事件。其他事件都可以根据相同的办法调用。 之所以使用PointerClick为例。是因为在最后笔者会提到一个特殊的实现方式。而相比于其他事件类型,有且仅有Click事件存在特殊实现。转载 2015-12-21 11:48:34 · 550 阅读 · 0 评论 -
ulua 的相关教学视频
在unity 的官方论坛上我找到了这个人记录的教学视频,十分感谢http://pan.baidu.com/share/home?uk=1828987782&view=share#category/type=0东西都在这个地址中,帮着他扩散一下,保存起来也好日后学习原创 2016-01-21 11:49:36 · 727 阅读 · 0 评论 -
关于assetbundle的详解等
我这里直接收藏了官方视屏:http://forum.china.unity3d.com/thread-7197-1-1.html讲的比较详细了,之后会记录下来原创 2016-01-21 11:15:44 · 380 阅读 · 0 评论 -
使用NGUI实现带有放大功能的scrollview背包
效果如图:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ui结构在gameobject上面加上table组件在给gameobjct添加一个脚本,在脚本中创建item ,我这里创建了10个item,然后给它们都添加上boxcollider,rigidbody,因为后面在item缩放时候会用到。刚接触ngui,让中间原创 2015-06-06 18:18:51 · 2066 阅读 · 2 评论 -
游戏中用到的真随机
隨機產生一個值在程式設計中算是滿常使用到的一個需求可能你希望每次進來程式的時候,都可以讓使用到感到不一樣因此你就會需要「Random」隨機值C#而在 C# 中,有個一名為「Random」的類別,用來產生你需要的隨機值static void Main(string[] args){ Random ran = new Random(); for (in转载 2015-06-05 14:01:08 · 709 阅读 · 0 评论 -
Unity3D 项目用 git 做版本控制
Unity 的项目是可以用 git 和其他的常见 SCM 软件来做版本控制的,但在项目里面要做些设置。新建项目后,在 Unity 编辑器里选择 Edit -> Project Settings -> Editor,在 Inspector 里面做以下设置:Version Control - 设置为 Visible Meta Files,这样 .meta 文件就可以添加到版本控制中转载 2015-06-05 16:41:55 · 5829 阅读 · 0 评论 -
scrollview中的实时缩放
void Update() { changeRoleScale(); } void changeRoleScale() { for (int i = 0; i { Transform spine = roleb.rolesList[i].transform.Find("Sprite/spi原创 2015-06-23 10:42:46 · 672 阅读 · 0 评论 -
成员变量的get,set好处
先记录,之后会自己理解着去写1 假如你在某个类里面定义了一个public变量 然后你在这个类里面每秒+1,但是因为这个变量是public的,所以外部也能改 那如果外部一改的话 不就乱了吗?2 针对不同对象的访问,执行不同的操作3 你一堆的public 本来想私有自己用的 别人不知道 然后别人以为直接可以设置值,然后你去查BUG查死你原创 2015-06-23 12:56:08 · 664 阅读 · 0 评论 -
c#自带的数学运算函数
Mathf.Abs绝对值 计算并返回指定参数 f 绝对值。 Mathf.Acos反余弦 static function Acos (f : float) : float 以弧度为单位计算并返回参数 f 中指定的数字的反余弦值。 Mathf.Approximately近似 static function Approximately (a : float, b:转载 2015-06-23 10:30:58 · 9474 阅读 · 0 评论 -
c#字符串格式化
1 前言 如果你熟悉Microsoft Foundation Classes(MFC)的CString,Windows Template Library(WTL)的CString或者Standard Template Library(STL)的字符串类,那么你对String.Format方法肯定很熟悉。在C#中也经常使用这个方法来格式化字符串,比如下面这样:int x =转载 2015-06-22 11:41:07 · 903 阅读 · 0 评论 -
解决骨骼动画与ngui层级关系
纠结了接近两天时间,终于找到了办法,在网上找到了答案!恍然大悟:不管是什么内容,都要通过draw call来渲染,我们更改下渲染队列的顺序就行了,首先我们要知道ngui的panel默认的Render Queue是3000打开UIPanle.cs文件,可以找到:/// /// Render queue used by the panel. Th原创 2015-06-18 18:19:58 · 1630 阅读 · 0 评论 -
unity3d ngui 利用 UIAtlas 动态创建 UISprite
1.把制作好的UIAtlas放在Resources文件夹中questTracetest目录下面,如:2.动态加载UIAtlas :UIAtlas traceAtlas_ = Resources.Load("questTracetest/questTraceAlt",typeof(UIAtlas)) as UIAtlas;3.从traceAtlas_选择自己转载 2015-06-08 10:38:10 · 2397 阅读 · 0 评论 -
NGUI之UIInput
Label:用于绑定的Label,即输入框。 Starting Value:起始显示的值。 Saved As:内容指定保存的键值。 Active Text Color:文本框激活的时候显示的颜色。 Inactive Color:未激活的时候显示的颜色。 Caret Color:闪硕光标的颜色。 Select Color:被选择文字的颜色。原创 2015-07-08 16:24:39 · 1185 阅读 · 0 评论 -
浅谈NGUI的NGUITools类
转自:http://lizhiwei.me/?p=85最近正在使用NGUI,发现这确实是个简单使用却功能强大的工具,用的过程中发现NGUI封装了许多有用的小工具类,比如今天想谈的NGUITools类。该类封装了诸如播放音效、获取组件等等方法。下面一一谈谈自己的浅见,主要就是对功能做了下说明,今后项目中如果遇到,再补充更多的实用体验吧,也希望大家多多拍砖。static public fl转载 2015-07-09 19:33:22 · 480 阅读 · 0 评论 -
Unity: Now You're Thinking With Components
While Unity is an amazing gamedev platform, getting used to it will require a bit of initial work, as you'll likely need to shift your cognitive cogs to grasp its component-basedarchitecture.While转载 2016-01-16 17:25:38 · 1684 阅读 · 0 评论 -
SkeletonAnimation 的重置
今天遇见了一个重置的问题roleBoder.state.Complete += OnCompletes;上面的delegate 被 += 一个回调后,下次再去 += 需要重置之后才可以我们用 roleBoder.Reset();当然也可以手动的delegate -=原创 2015-12-12 11:53:36 · 5301 阅读 · 0 评论 -
Unity3D抗锯齿设置
project settings 中的qualitysettings面板上anti aliasing 的选项里三个抗锯齿选项原创 2015-12-09 20:46:33 · 4003 阅读 · 0 评论 -
Unity Attribute 总结
Attribute是C#的功能,在Unity中可以使用Attribute来给变量和方法增加新的属性或者功能。举两个例子,在变量上使用[SerializeFiled]属性,可以强制让变量进行序列化,可以在Unity的Editor上进行赋值。在Class上使用[RequireComponent]属性,就会在Class的GameObject上自动追加所需的Component。以下是U转载 2015-09-09 18:41:24 · 3551 阅读 · 0 评论 -
Unity3D教程:手游开发常用排序算法
源地址:http://www.manew.com/thread-1737-1-1.html一、插入排序(Insertion Sort) 1. 基本思想: 每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当位置,使数列依然有序;直到待排序数据元素全部插入完为止。 2. 排序过程: 【示例】: [初始关键字] [转载 2015-09-08 11:02:18 · 4973 阅读 · 0 评论 -
学习unity的一些经验和见解
个人认为Unity相比于其他引擎易用性较好的原因主要有:基于组件(Component)的关卡设计更符合直觉Unity通过将系统或用户的脚本抽象为可重用的组件(Component)并附着在游戏对象上来控制游戏的行为。相较于传统的基于脚本的开发方式,关卡设计师可以更灵活、更快速地搭建界面和关卡,有一种“搭积木”的感觉。虽然这种设计牺牲了一部分扩展性(例如难以实现嵌套Prefab),但对初学转载 2015-08-05 16:59:31 · 3381 阅读 · 0 评论 -
大白话系列之C#委托与事件讲解(一)
从序言中,大家应该对委托和事件的重要性有点了解了吧,虽然说我们现在还是能模糊,但是从我的大白话系列中,我会把这些概念说的通俗易懂的。首先,我们还是先说说委托吧,从字面上理解,只要是中国人应该都知道这个意思,除非委托2个中文字不认识,举个例子,小明委托小张去买车票。 但是在我们的程序世界里,也是这么的简单吗?当然,什么是OO,OO就是现实世界的抽象,所有现实世界的事物,在OO里都能得转载 2015-07-22 16:20:29 · 390 阅读 · 0 评论