- 博客(21)
- 资源 (1)
- 收藏
- 关注
原创 Unity中利用C#的反射机制输出泛型类T及其内嵌List<T>的属性值
很久很久以前,有个需求是客户端需要将从服务器收到的数据结构体(通常是个自定义协议类)的详细日志打印出来。因为是准备写个通用方法,故是不能知道是具体哪个类、这个类里面有哪些属性的;所以我们无法直接将其转换为具体某个类来处理。这时就可以用反射机制来获取这个类的所有公共属性了。关于反射api用法可以直接看官方文档,或者看我下面给出的代码;而今天写这篇文章的重点主要是如何输出内嵌List<T&g...
2018-09-05 12:03:27
4128
3
原创 【Unity3D】学习笔记(第8记)游戏中的自动寻路算法
最近两天刚好有空研究了下游戏中的自动寻路功能,收获颇丰,感觉用相应的算法去解决相应的问题真的非常重要啊!至少比自己想的流水账逻辑流程管用。看来以后得花多点时间研究下算法方面的知识了。 游戏中的自动寻路,顾名思义就是找路,从地图找到从起点到终点的可行最短路径。既然是从地图找路,那么地图就应该是可数据化的,要不怎么找呢。 所以自动寻路的有两个重点是分别是地图数据化和搜索算法。 地...
2018-03-05 16:43:04
5102
1
原创 Unity UI框架开发(4)--实现UIWindowCtrl
最后一个类,也是最重要的一个控制类,功能包括窗口的创建、显示、 隐藏、重现、删除等。 由于最近忙,没时间详细解读,看客们只能自己研究学习了~_~。public class UIWindowCtrl { private UIBaseWindow currentWindow; private List<UIBaseWindow> mWindowList; private stat
2016-10-30 18:07:07
1480
原创 Unity UI框架开发(3)--实现UIBaseView
下面继续实现第二个基类UIBaseView。abstract public class UIBaseView { public GameObject view; private UIBaseWindow _window; public UIBaseView(UIBaseWindow parent,string path) { _window = pare
2016-10-30 17:57:04
1706
原创 Unity UI框架开发(2)--实现UIBaseWindow
上篇介绍了UI框架的实现原理了,现在就是正式用代码实现UI框架了。 从上篇博客中我举例了实现这个框架用到的三个基类 UIBaseWindow、UIBaseView和UIWindowCtrl;那么下面将分别实现它们。 首先是窗口类UIBaseWindow:public class UIBaseWindow { public GameObject winParent = null; p
2016-10-30 17:12:19
2348
原创 Unity UI框架开发(1)--框架介绍
学习知识,分享知识。记录下自己经常使用的这个UI框架。首先说下这个UI框架整体吧,该框架主要实现了UI的的显示、隐藏、按钮点击、UI数值更新,这也是大多数游戏UI的功能。该框架主要分三个部分来理解,分别是窗口(window)、视图(view)、控制(control),看起来有点像mvc框架是吧,但这里并没有实现model数据这块,现在只是实现UI的一些显示功能,并不需要做Model数据处理内容,
2016-10-16 16:45:47
8175
原创 Unity3D 创建脚本自动添加模板注释
相信很多人都喜欢在创建脚本时添加这样的注释说明,以前做Android开发用Eclipse设置过这样的脚本模板,所以,在Unity上也想这样添加,从网上搜索资料得,首先找到Unity安装目录下的(注意:修改的是Unity脚本模板而不是vs或者momo里的)“Unity\Editor\Data\Resources\ScriptTemplates ”打开“81-C# Script-NewBehaviour
2016-09-13 13:49:41
6777
原创 【Unity3D 打斗游戏开发】之三 简单实现对象池
关于对象池的概念网上很多资料都已经介绍过来了,而且网上也有大神写的插件PoolManager。我比较少使用,因为平时做的项目偏小型,所以比较排斥把各种插件放到项目里(个人比较崇尚精简主义)。而我更喜欢学习其原理方法,根据自己的需求去重新实现功能(去繁取简)。对象池原理在游戏中我们都知道像怪物、子弹和特效等是需要频繁使用的(创建和销毁)。那么,毋庸置疑这一过程是会消耗性能的,所以引用对象池技
2016-09-13 11:53:48
3074
原创 【Unity3D 打斗游戏开发】之二 异步加载场景或预加载资源后进入游戏
假设当前场景为A,我们要切换到下一场景B,如果使用正常加载方式,Unity会在切换场景时加载场景B的所有内容(Hierarchy面板内容)到内存中,由于加载场景B是同步执行的,所以当场景B较大时,就会在加载过程出现卡顿现象。针对这种情况,我们通常会使用异步加载方式来加载场景。异步加载方式是在后台线程运行,不影响当前主线程,所以下一场景即使很大,当前场景也不会出现卡顿。对于手游来讲,场景切换通常分
2016-09-12 18:40:25
9299
原创 【Unity3D 打斗游戏开发】之一 普通攻击敌人判断
记录下关于打斗类(如:ARPG类,并非格斗类)游戏的攻击判定问题,通常这类游戏都会有普通攻击和技能攻击等攻击方式(可参考王者荣耀),下面将分别介绍下。 一、普通攻击 普通攻击的流程就是主角靠近敌人,播放攻击动画,调用敌人受伤害计算方法(+被击动画、特效等);这一过程有几点需要注意的, (1)调用受伤害计算方法时机:因为播放攻击动画会有1s左
2016-09-12 12:10:38
26524
原创 Protobuf开发之java和c#通信
(1)、首先是将Protobuf的.proto文件生成.java文件1、将写好的.proto文件和protoc.exe(无则去下载)文件放在同一文件夹内;2、启动cmd.exe程序,cd到上1两文件所在文件夹中,输入命令protoc.exe --java_out=./ LoginProto.proto(注意./和L中间有一个空格)后回车,成功后就会在当前文件夹下生成一个LoginProto.j
2016-07-22 18:21:59
2342
原创 关于MonoDevelop5.9.6_使用总结
今天刚装了Unity3d的5.3.2f1版(点我下载),里面的Monodevelop代码编辑器也升级为5.9.6版,所以马上打开使用了下(ps:平常都是用vs的,嘻嘻),却发现默认的编写格式和以前的有点出入,需要自己手动修改下,先将修改的记录如下:
2016-03-10 13:20:26
1425
原创 【Unity3D】笔记之OnGUI()下的自适屏
转眼离上一篇博客的已有半年之久,想当初,满怀激情的说要坚持更新博客,记录学习笔记,但要真正坚持下去,确实需要非凡的毅力啊!脑子的那股热一散去整个人就懒了。还记得那时正准备写篇关于在OnGUI()方法下UI如何自动适应屏幕分辨率变化,但一直拖着没空写。刚好趁现在没找到工作之前有点时间,就把这个补上,虽然现在已经有NGUI和UGUI这些可以轻松实现自适屏效果,但我还是想把这个初学时学到的这个方法记录下
2015-06-07 00:17:16
3382
原创 【Unity3D】学习笔记(第7记)射线碰撞检测
unity中关于射线的有一个非常重要的函数类Physcics类,该类有LineCast和RayCast两种射线投射方式;第一种是以起点和射线方向为参数的投射,第二种是以起点和终点为参数的投射。既然是射线碰撞,那么被射物体必须有被碰撞组件(如BoxCollider等);
2014-12-14 16:02:13
3836
原创 【Unity3D】学习笔记(第6记)鼠标选中敌人显示轮廓线
之前做游戏时一直想实现这种效果,但从网上搜的资料都说是要写shader的,由于看不懂脚本,也就没去研究怎么写,后来发现材质中自带的着色器有这个功能;如下图,在材质中选择shader的Toon/Basic Outline,它的属性有个main color(整体颜色),Outline color(轮廓颜色),就是这个Outline color,可以改变物体的轮廓色,开始我琢磨想如何直接在脚本改变这个O
2014-12-14 12:57:50
3306
原创 【Unity3D】学习笔记(第1记) 敌人AI之Seek(靠近)
using UnityEngine;using System.Collections;public class enemyController : MonoBehaviour { public float distanceToMe; //智能体到目标的距离 public GameObject me; //目标角色 p
2014-10-13 00:49:21
4391
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人