
游戏编程
文章平均质量分 62
大势燎原
从毕业后就在做C# Winform客户端程序开发,从事LED领域多媒体播放软件开发,由于行业软件的特殊性几年来涉及方面较多,音频、视频、图片、硬件通信等等。由于自己一直喜欢素描,一直对图形类的开发很感兴趣,这三年来也一直和Graphic打交道。这次准备转行做Unity3D开发。在转行U3D前,研究过一段时ActionScript开发,相比较来,更喜欢3D引擎。凭着这份喜爱,一直钻研下去。
展开
-
Urho3D SubscribeToEvent挂载事件无响应解决办法
其实最后我发现这是自己一个比较粗心的问题造成的。还是老套路,我先贴代码,描述问题://从XML加载UIUIElement@ layoutRoot = ui.LoadLayout(cache.GetResource("XMLFile", "UI/SelectCharacterUI.xml"));//获取UI中的Button对象Button@ createRoleButton = layoutRo原创 2016-06-21 21:34:15 · 1005 阅读 · 0 评论 -
Unity3D Terrain Settings 彻底搞懂 地形详细设置 全实验与解析 (二)base map dist
许多Terrain的详细设置,看懂单词也不明白啥意思,这次准备一次性实验完,彻底搞懂!同时参考Ceeger圣典的翻译、Unity Manual、实验 来进行解释Base Map Dist---Ceeger圣典:The distance that Terrain Textures will be displayed in high-resolution.在高分辨率下地原创 2016-04-19 18:30:57 · 13800 阅读 · 0 评论 -
Unity3D Terrain Settings 彻底搞懂 地形详细设置 全实验与解析 (一)Pixel Error
许多Terrain的详细设置,看懂单词也不明白啥意思,这次准备一次性实验完,彻底搞懂!同时参考Ceeger圣典的翻译、Unity Manual、实验 来进行解释Base Terrainpixel Error 像素容差 ---CEEGER:Amount of allowable errors in the display of Terrain Geometry.原创 2016-04-19 18:04:11 · 19184 阅读 · 0 评论 -
使用PS为Unity游戏创建简单的游戏素材实例
在自己开发Unity游戏的过程中,偶然需要一些配合场景的合适的素材,但是在网上搜索费时费力,不称心,复杂的组件不说了,一些简单的组件就可以自己做一做。我在制作赛车游戏读取场景进程界面,需要一些简单的二维素材。比如,我现在需要一个赛车开始比赛的横幅,就自己做了。记录如下:整体场景:左边那个横幅,就是我要完成的了。步骤一:制作立杆该立杆处于汽车的下方,以至被汽车挡住原创 2016-05-02 14:15:47 · 6000 阅读 · 0 评论 -
使用Unity3D 自主实战开发的赛车游戏实例,关键点记录 (一)之赛车游戏总体介绍
我之前一直在做C# 的Winform多媒体软件开发。从去年十一月份开始转型自学Unity3D。发现对这个领域、这个方向更为喜爱。在经过两个多月的跟书自学、跟游戏实例教程练习之后,决定自己完成一款游戏,以融会贯通,让我对整体的Unity3D游戏开发有一个认识与提升。我最后选择了赛车游戏,其一是这个我更为喜欢、其二对当时的我来说,我觉得这个更具挑战性、却也容易入门。本文章先对游戏整体进行介绍。原创 2016-05-04 15:24:23 · 16384 阅读 · 12 评论 -
Unity 对Camera 属性Clear Flags 的SkyBox/Solid Color/Depth Only深度解析
Camera 作为Unity中最为重要的组件,充当着整个游戏世界大门的作用,只有有了它,用户才能看到游戏,可以说是游戏玩家的虚拟世界之眼睛。作为开发者,首先就要彻底理解Camera的所有属性与作用,只有这样才能已最恰当的方式,将游戏呈献给玩家,让玩家毫不出戏、身临其境的游戏。学习Uinty半年时间,一直在使用Camera,但是对有些属性还是一知半解。今天就将所有的理解写出来,方便别人也方便原创 2016-05-01 22:41:38 · 24143 阅读 · 11 评论 -
Unity3d 官方资源Car的主控脚本CarController翻译与详解
一.综述在Unity3D官方资源中Standard Assets –>Vehicles–>Car是赛车的相关资源,包括赛车模型、赛车控制脚本等。虽然用起来很方便,但是由于对有些脚本理解不彻底,就用不好。尤其是主要控制脚本CarController,我此次就对这个脚本进行了全面解析二.CarController1.主要函数流程图整个CarController脚本主要是通过共有函数Move对赛车进行控制原创 2016-05-11 16:23:12 · 19007 阅读 · 9 评论 -
unity3D 彻底搞懂 Quaternion LookRotation FromToRotation SetLookRotation方法
我的问题是从LookRotation方法引入的。我的场景:赛道、汽车、赛道上每隔一段摆放一个碰撞检测板;我的目的:我在做一个赛车游戏的AI汽车导航。我使用的就是NavMeshAgent做导航,然后我发现汽车一直都是水平的,哪怕上坡下坡,也是水平的。然后我准备使用让汽车对准检测板的方法,使汽车在上下坡道时,可以使汽车顺着坡道,而不是水平。这里为了研究“对准”这个问题,对目的进行简化:原创 2016-04-28 19:11:03 · 45669 阅读 · 7 评论 -
推荐一个压缩图片,但是品质影响不大的网站
先上图看,我的压缩了73%!至少对于我来说,我不知道用PS怎么把一个需要保留Alpha通道的图像进行压缩,单纯的减小图片尺寸可不是个好办法呢。网站连接:https://tinypng.com/原创 2016-04-11 15:39:36 · 542 阅读 · 0 评论 -
UnityEditor 如何将一个资源文件夹下的对象拖曳赋值到文件夹外的某个对象组件属性中
其实这是我刚开是学Unity时遇到的问题,一直没解决,今天突然发现了办法,原来如此简单。题目比较抽象,我想表达的就是:Asset目录--- Scripts文件夹 --- AudioClip文件夹----MusicManagerScript ----AudioClip0;AudioClip1 我现在Script文件夹下有一个脚本叫做"原创 2016-04-11 15:13:26 · 2283 阅读 · 0 评论 -
Unity3D Terrain Settings 彻底搞懂 地形详细设置 全实验与解析 (三)Thickness
许多Terrain的详细设置,看懂单词也不明白啥意思,这次准备一次性实验完,彻底搞懂!同时参考Ceeger圣典的翻译、Unity Manual、实验 来进行解释Thickness---unity manualHow much the terrain collision volume should extend along the negative Y-axis. Objec原创 2016-04-19 19:13:28 · 7612 阅读 · 1 评论 -
Unity3D Terrain 变成粉色(紫色/洋红色)解决方案!
这个问题困扰了我两天。我的地形在Windows上显示都没有问题,但是在安卓上却是一片纯洋红色,很是纳闷。这个问题感觉是突然出现的,因为我在这段时间,地形都没有再动过了。然后我进行了大量的Google,1.有人说是这洋红色就是典型的贴图丢失造成的。那我想着是不是我的地形贴图有问题,然后我就把所有的Texture全部去掉了,然后还是有问题;原创 2016-04-19 00:10:08 · 34040 阅读 · 1 评论 -
OpenGL纹理上下颠倒翻转的三种解决办法
综述在使用OpenGL函数加载纹理到图形时,经常遇到纹理上下颠倒的问题。原因是因为OpenGL要求纹理坐标原点在图片最下面,如图: 而图片信息中的原点一般都在最上方,一行行记录下来的,就会导致整个图片上下颠倒了。 如图: 从这个思路触发共有三种办法解决问题:一.翻转顶点信息中的纹理坐标原始顶点如图: 因为纹理坐标的范围是0-1,所以翻转的话都统一用1去减 得到正确的图片: 二原创 2016-07-18 11:56:04 · 17230 阅读 · 1 评论 -
像素横纵比公式的原理
在《3D数学基础-图形与游戏开发》一书中,看到了像素横纵比这个概念。当然很好理解,比如像素是正方形,那么像素横纵比就是1喽。关于像素横纵比细节,请参考MSDN:https://msdn.microsoft.com/zh-cn/library/cc294571.aspx,我在引用之后将会解析一下公式含义引用如下:像素纵横比是指像素的宽 (x) 与高 (y) 之比。正方形像素的比例原创 2016-07-11 16:04:20 · 4994 阅读 · 0 评论 -
Urho3D 使用Billboard 设置属性如:enabled/size后,未生效
比如我这句allkindsHeroPropBoards[i].billboards[0].size = bShow? billBoardSize : Vector2(0,0);当bShow为false,billboard由于尺寸为0消失了。然后再把bShow设置为true,billboard确没有出现。原因:请加上这句:allkindsHeroPropBoards[i].Com原创 2016-06-27 16:43:03 · 1214 阅读 · 0 评论 -
使用Unity3D 自主实战开发的赛车游戏实例,关键点记录 (六)之自动寻路及优化
一.综述赛车游戏的敌人赛车自动寻路一般有两种方式,一种是路点寻路,另外一种就是使用Unity自带组件NavMeshAgent进行寻路了,我介绍的是后者,另外后者在水平面上的汽车寻路导航还不错,但是一旦有Y方向的爬坡、下坡等,汽车就会因为角度依然保持水平显得很不自然,并且轮胎也不会旋转,我对此进行了优化二.NavMeshAgent这个和NavMesh是一对,用来设置寻路的游戏对象。关于属性,我不再一一原创 2016-05-05 19:28:53 · 16616 阅读 · 1 评论 -
使用Unity3D 自主实战开发的赛车游戏实例,关键点记录 (五)之实时排名系统
一.综述赛车游戏的实时排名系统与上一章介绍的道路碰撞检测系统密不可分,道路检测系统用来实时记录当前的赛车位置、圈数、已完成赛道的赛车排名,赛车距监测点距离等。而这些就是排名系统所依赖的二.排名系统需要的各项数据首先需要一个结构体,来记录排名系统各数据,我定义了如下的排名系统信息结构体//记录所有比赛者排位有关的信息 private Dictionary<GameObject, Players原创 2016-05-05 17:04:24 · 6351 阅读 · 0 评论 -
使用Unity3D 自主实战开发的赛车游戏实例,关键点记录 (四)之道路监测点
一.综述对于赛车游戏来说,最关键的就是对赛车的实时监测,从而进行实时排名、比赛完成判断、行进方向判断。只有有了实时监测,才能实现游戏的可控性、实现对赛车游戏的管理,才算得上是一款赛车游戏。 今天我主要记录的就是我的赛车游戏制作道路监测点的过程。二.什么是道路监测点道路监测点,就是道路赛车碰撞检测点,监测点会密布在整条赛道上,尽量的均匀散开。用来实时记录赛车当前位置、计算排名、检测赛车行进是否正常等原创 2016-05-05 16:21:12 · 9226 阅读 · 0 评论 -
使用Unity3D 自主实战开发的赛车游戏实例,关键点记录 (三)之UI菜单制作
一.综述游戏UI菜单制作前,得先设计好菜单的层级、风格再进行设计。我是用的是unity5.01e,这个版本中uGui已经很好用了。果然我还是喜欢用官方的东西,感觉很舒服,虽然目前有些组件还没有。找不到用C#时那一堆UI组件的畅快感觉。二.UI布局关键技术1.RectTransform这是uGUI的一个特色组件,是继承自Transform得来的。相当于是在Transform上加上了锚点的数据,然后更适原创 2016-05-04 20:26:28 · 10834 阅读 · 1 评论 -
使用Unity3D 自主实战开发的赛车游戏实例,关键点记录 (二)之地形场景漫游导览制作
一.综述关于地图或者场景漫游导览的生成方式有两种,一种是以代码记录一组摄像头位置然后使用代码牵引摄像头然后使用差值进行平滑遍历;另外一种就是使用Animation了。至少目前我知道的是这两种方式。二.Animation的使用接下来其实就是如何使用Animation做一个导览动画了,我主要讲解地图导览动画的生成技巧原创 2016-05-04 16:55:01 · 4164 阅读 · 1 评论 -
Unity3D OutOfMemory 内存溢出 软件崩溃 一个解决案例
我在做的是一个赛车游戏,里边元素比较多,有1000*1000的Terrain,有公路,有桥梁,有城市建筑,树木,花草。在最开始只有Terrain和赛车的时候没有出现过内存溢出的问题,我是用的赛车,就是标准资源包中的Car,后面随着内容的丰富开始经常出现内存溢出,经过检测,我发现,每次点击Car对象时,都高频率出现内存溢出,然后生成发布包时,加载场景时都很容易出现。于是我删除了Car原创 2016-04-19 13:35:27 · 9154 阅读 · 0 评论 -
笔记本无线连接路由器,其他连接路由器的设备正常,本机不能联网,不能访问tplogin.cn网关
我用经常使用某一款工具来代理访问Google,然后每次用完这个工具后,再去上网也么有问题。直到这次,我关掉工具后,发现工具有个进程还在后台运行就直接杀掉了。然后之后上网就出现题目所说的问题。检查了半天发现原因是:浏览器中的代理设置中有一个代理存在。我把这个代理删掉之后就正常了。经过再次实验我发现,这个代理工具可以每次打开后为浏览器设置代理,当结束运行后又自动把代理去掉。但这次出问题时由原创 2016-04-19 12:20:54 · 908 阅读 · 0 评论 -
推荐一个压缩图片,但是品质影响不大的网站(二)之原理探索
上一次给大家推荐了个网站,是来做图片压缩的:http://tinypng.org/我一直好奇他是怎么压缩的,今天我来说说自己的一些发现首先,我上次有个错误,说PS我已经不知道该怎么压缩了,果然只是我不知道怎么压缩,懂的太少而已。1.我的原始工程其实本来就选择成了8位通道;2.我就是直接另存储为PNG了,也没有看到什么画质选择啥的;3.然后用网站处理后,其实就变成8位通道了;原创 2016-04-13 13:30:24 · 3460 阅读 · 0 评论 -
Disunity_V0.5.0 提取Unity生成的APK资源的后续探索
先把我的disunity v0.5.0资源地址告诉大家,方便大家下载:http://download.youkuaiyun.com/download/narutojzm1/9484108昨天我使用disunity v0.5.0 试图提取资源时发现了apk中将asset分成了1M1包,N个小包,小包名字例如:split0/split1/split2... ... 不知所措。今天找到办法了,其实这原创 2016-04-08 19:42:39 · 22469 阅读 · 2 评论 -
Disunity_V0.5.0 提取Unity生成的Apk的资源
首先说明一点,我最后并没有成功,仅供大家参考。我做这个是因为,我的Unity工程中的Scene0.unity场景文件损坏了,我就想着应该这个文件在生成的APK里边,就想把它给解出来用。步骤,1.解压APK将APK文件后缀改为rar/zip之类的直接解压得到下面的文件:这就是个中规中矩的安卓APK的内部了。2.寻找资源文件喏~在这儿了Managed中是所有引用原创 2016-04-07 19:26:10 · 16530 阅读 · 3 评论 -
Unity3D Camera跟随游戏对象后面拍摄的方法(二)
前一篇分析了如何使Camera一直跟随在游戏对象后面的方法,可详见点击打开链接 前面两步都是一样的,就是: camera.transform.position = gameObj.transform.position;camera.transform.rotation = gameObj.transform.rotation;这个时候就是所谓的第一视角了。原创 2015-11-24 13:36:54 · 2751 阅读 · 0 评论 -
Unity3D 关于Coroutine(协程)使用的研究笔记及关于yield的理解
我先亮出我用的有关协程的代码:using UnityEngine;using System.Collections;public class NewBehaviourScript : MonoBehaviour { //本地图片的纹理 private Texture tex0; //网络图片的纹理 private Texture tex1; //加载本地图片 IEnumera原创 2015-12-10 21:34:58 · 2781 阅读 · 0 评论 -
Unity3D关于刚体(RigidBody)与碰撞体(Collider)的探索(二)
上一章一直把碰撞体作为不变量来研究的,这一章对碰撞体进行研究:方案一:A:碰撞体/连碰撞体都不是B:碰撞体/连碰撞体都不是以上组合共四组实验,如:1.A是碰撞体,B是碰撞体;2.A连碰撞体都不是,B是碰撞体。。。。。。实验过程:使A向-Y方向位移,撞击地面B实验结果:A穿越了B,无任何撞击事件(这是已知的,因为A不是刚体)。方案二:A:刚体B:碰原创 2015-11-21 17:45:56 · 2125 阅读 · 1 评论 -
Unity3D 语句 objCube.GetComponent<Renderer>().material.color 报错
平台:Window7Unity 版本:5.0MonoDevelop版本:4.0脚本:JavaScript我是使用基于Unity4的教程学习Unity开发的,在学习到给材质设置颜色时,是下面的语句:objCube.renderer.material.color = Color.black;因为Unity5中已经启用了renderer属性的这种用法,我自己换了新的方式o原创 2015-11-15 18:43:13 · 8193 阅读 · 2 评论 -
Unity5 发送广播与消息的探索
public var gameObject1:GameObject;function Start () { gameObject1.BroadcastMessage("ReceiveBroadcastMessage",gameObject1.ToString() + "执行了函数BroadcastMessage()"); gameObject1.SendMessage("ReceiveSe原创 2015-11-16 16:58:01 · 2332 阅读 · 0 评论 -
Unity3D 处于Camera跟随游戏对象后面拍摄的方法
本来是个很简单的问题,但由于我经验不足绕了一大圈子,详细记录如下: 想实现的效果:Camera 视角跟随游戏对象拍摄,不管游戏对象面向哪个方向,Camera始终在游戏对象正后方。效果图后附思路:1.Camera.main.transform.rotation = gameObj.transform.rotation;//将镜头的方向设置成游戏对象的方向;2.C原创 2015-11-22 20:11:35 · 10521 阅读 · 2 评论 -
Unity3D 关于刚体(RigitBody)与碰撞体(Collider)的探索
为了研究刚体与碰撞体这两个组件对游戏对象的影响,我进行了下面的实验:,使用球体施加力的作用碰撞立方体。方案一:A:刚体 + 碰撞体B:刚体 + 碰撞体实验过程:给A一个普通力(或直接设置position属性或直接使用Translate位移),使A撞击B实验结果:A与B均能收到碰撞事件,物理效果良好。方案二:A:刚体 + 碰撞体B:碰撞体实验过程:原创 2015-11-20 21:32:04 · 5499 阅读 · 1 评论 -
Unity5 关于修改组件GameObject的Color与mainTexture的探索
private var obj:GameObject;private var render:Renderer;public var texture:Texture;function Start () { obj = GameObject.Find("Cube");// obj.AddComponent.(); render = obj.GetComponent.();}functi原创 2015-11-16 00:11:52 · 9299 阅读 · 0 评论 -
Unity编辑时打左括号出现异常的问题
我新接触Unity,竟然刚用编辑器就碰到了问题:1.一敲左括号就弹出异常框,虽然继续敲程序不会有问题,但是很影响连贯性;2.敲代码没有任何关联关键字弹出来,便捷选择。答案就是:升级.Net FrameWork 到 4.5就OK了。但我有个问题,为什么.netframework版本低会导致上述问题?答案应该是因为这个编辑器编译javascript就用的是.netframework原创 2015-11-09 21:58:05 · 622 阅读 · 0 评论 -
Unity3D游戏引擎最详尽基础教程
转自:http://blog.sina.com.cn/s/blog_7c336a8301013son.html我一直向所有想做游戏的朋友推荐Unity3D,为什么呢?首先是因为专业,Unity3D非常强大,用它创建一个类似MiniGore这样的3D平面射击游戏简直轻而易举,而就连使命召唤这样的大型3d游戏,如果素材得当也不在话下。二是因为易用,他的操作非常容易,而使用的脚本语言又是Java转载 2015-11-08 17:42:43 · 1205 阅读 · 0 评论 -
Unity3D Camera跟随游戏对象后面拍摄的方法(三)
上面两节研究了Camera跟随的两种办法,现在给出第三种。先介绍一个概念:四元数*向量 == 将向量按照四元数进行一定的旋转后新的向量。(此说法有错的话烦请指正)问题:目前通过将Camera的Position和Rotation都赋值成游戏对象的值,达到了第一视角的目的,现在需要将Camera设置到游戏对象坐标系的Z轴负3的位置,以达到第三视角跟随游戏对象的效果。那么可以这样做:原创 2015-11-24 14:57:20 · 1438 阅读 · 0 评论 -
Unity3D 自由视角代码之解析
效果:实现对物体的自由视角观察本代码是《Unity3D游戏开发》一书中,7-11的例子using UnityEngine;using System.Collections;public class NewBehaviourScript : MonoBehaviour { //摄像机参照的模型 public Transform target; //摄像机距离模型的默认距离原创 2015-11-30 13:42:58 · 5547 阅读 · 1 评论 -
Unity4.6 UI按钮绑定事件(一)
Unity4.6新的UI的又称UGUI,个人感觉跟NGUI和DFGUI(Daikon Forge GUI)有很多相似之处,可视化创建以及关联事件确实很方便,动态创建可以利用创建好的prefab进行实例化,只是在关联事件上有些复杂,现在我们来学习如何来给按钮绑定事件,下面列举三种事件关联方式。一、可视化创建及事件绑定第一步:通过Hierarchy面板创建button,如图转载 2016-03-19 17:44:02 · 1793 阅读 · 0 评论 -
详解Unity 4.6新UI的布局
(原帖:http://www.cnblogs.com/CodeCabin/p/4161424.html?utm_source=tuicool&utm_medium=referral)本文所讲的是Unity 4.6中新加入的uGUI,官方称Unity UI,而不是过去的OnGUI式的旧UI(官方称Legacy GUI)。我曾经在8月份对照4.6 Beta的文档写过一篇笔记学习转载 2016-03-19 17:39:50 · 596 阅读 · 0 评论 -
学习Unity 4.6新GUI系统
(原帖:http://www.cnblogs.com/CodeCabin/p/unity_new_gui.html)最近在学习Unity的过程中,自己做一款小游戏自娱自乐。自然需要用到GUI。但4.5中的GUI很难用,一个选择是传说中的NGUI插件。但对于4.6中的新GUI,我也有所耳闻。想了想还是选择官方的技术较好,于是就有了这篇。Canvas在新GUI中,所有的UI组件转载 2016-03-19 17:35:52 · 554 阅读 · 0 评论