- 博客(35)
- 收藏
- 关注
原创 unity技巧之拷贝选中节点路径
无论是Lua开发,还是unity开发,现在主流的做法都要Find节点的相对路径,对应量比较多的情况下,这也是一个很繁琐的工作,所以一个复制路径工具还是很有必要的。
2022-11-21 15:23:43
1022
原创 Unity为Git项目部署Jenkins
下载直接官网下载最新的Jenkins安装这里最好选择Run service as local or damain user,不然后面可能会出现一些乱七八糟的问题。至于那个警告,可以参考解决方案翻译过来解决方案就是:1、使用管理权限登录计算机。2、打开“管理工具”并打开“本地安全策略”3、展开“本地策略”并单击“用户权限分配”4、在右侧窗格中,右键单击“作为服务登录”并选择属性。5、单击“添加用户或组…”按钮以添加新用户。6、在“选择用户或组”对话框中,找到您要输入的用户并单击“确定”
2021-07-28 16:53:41
496
原创 unity技巧之输出log并定位对象
可以在输出log中添加对游戏对象的引用,这样你就可以在Hierarchy中选中游戏对象了。比如:Debug.Log(“This is the gameObject calling the debug log”, gameObject);
2021-04-23 16:24:33
847
原创 unity 不用插件实现丝滑绘画
直接先上效果:gif里面有些颜色不一样是gif功能导致的,绘制出来的都是同一个颜色。原理其实也简单,通过一些列的坐标转换得到当前绘制的坐标,然后根据画笔的宽度计算像素数量,最后填充像素块颜色。备注:纹理必须在导入设置中设置了 Is Readable 标志Texture2D.SetPixels :设置像素颜色块。Texture2D.Apply :实际应用任何先前的 SetPixels 更改。直接上代码吧:using System;using System.Collections;usin
2021-04-21 23:14:09
685
2
原创 独立游戏开发(十七)-- 发布Taptap
先发结果:消灭病毒(测试版):taptap地址当然也可以进qq群,然后下载测试,群号:459589013 一起探讨一下,目前群里就我一个人,哈哈哈~~~现在游戏已经相对完善了(当然这是我认为了),然鹅并不是,声音没有,道具极其简单,美术不忍直视。。。说到美术,这个就得重点说道说道了,taptap上架我前前后后搞了一周,有一大半时间是花在ps身上,没错,我不装了,我摊牌了,我Ps很强。。。对于上架taptap,我总结了几点,可以少走很多弯路:1、一定要有对接的运营,可以少走很多弯路;2、t
2021-04-02 18:52:02
3730
1
原创 独立游戏开发(十六)-- 加入技能及排行榜功能
前面一篇说道我们会上taptap,对此我研究了一下,如果要上taptap还是应该可以上的,但感觉还是太粗糙了点,至少得润色一下,才能更好的体现出来。首先,我们是一个遥感游戏,左边是遥感控制,那右边就感觉太空了,还是要加入一些技能。其实说白了,技能也可以理解为道具,无非就是多了一个冷却时间(对我们游戏而言),因此我们就先将我们之前做的盾的效果做为技能。然后我们就简单的用dotween来实现cd效果:_skillMask.DOFillAmount(0, itemData.CdTime).OnStart
2021-03-30 00:00:30
309
原创 独立游戏开发(十五)-- 导出安卓项目以及踩坑
今天我们来导出android看看手机上的效果吧。说干就干。。。先切到android平台:然后点击build:有问题,jdk不正确。这个问题就可以从这就能看出来,我们添加不了模块,jdk、ndk要么自己安装要么从hub重新安装,这里推荐另外一个大佬的解决方法。直接从官网进入hub添加对应的模块就行了。...
2021-03-22 23:55:20
262
原创 独立游戏开发(十四)-- 游戏UI及事件管理系统接入
上篇我们游戏的整体流程已经ok了,今天我们先把UI给放置进去。其实我们就一个场景,所以与其说需要2个界面,还是可以1个界面搞定。但为了适用性,还是用2个界面,一个开始,一个结算界面。首先我们还是定义一个UIWindow基类,所有的界面都继承自此类。然后通过UI管理类来开关界面。UI框架网上有许多,我这里不再赘述了。我们先来看看第一个界面,游戏开始界面:就一个标题,一个开始按钮,标题做了一个动画,让它从上面落下来,直接用itween实现的。_aniTween = _topObj.DOLoca
2021-03-22 21:44:37
370
原创 独立游戏开发(十三)-- 游戏主流程接入
今天来处理一下游戏流程相关的内容。因为我这边打算是按照时间递进而加载道具以及病毒的。所以我这边就用了一个状态来判断到了哪种状态。先定义4中状态:public enum GameProcessStatus{ Status1 = 1, Status2 = 2, Status3 = 4, Status4 = 8,}首先先说明一下,为什么采用1,2,4,8,16这样的数字,本来是想用1234,然后保存到dictionary里面,但我们判断游戏进程的时候肯定是要在upda
2021-03-20 23:46:33
290
原创 独立游戏开发(十二)-- 爆炸效果及爆炸残留的实现
这篇就来实现爆炸的效果。首先创建一个爆炸的item以及爆炸的一个特效,这点和之前盾的创建类似,不再累赘,可以直接先看效果。接下来我们就来实现当病毒处于爆炸范围内的时候,改如何处理。有2点,1、病毒消失;2、病毒死亡残留;就是为了防止太过僵硬。当处于爆炸范围内,执行:private void OnDead(string deadEffect){ _virusService.RecycleObj(_virusData.Id, gameObject); _dead = true;
2021-03-17 23:57:49
233
原创 独立游戏开发(十一)-- 盾效果的优化以及sprite和游戏实际像素的对应关系
上一节我们实现了盾的效果,但看起来不是很完美,今天终于搞明白是怎么回事了。我找的图片都是128*128像素的,但游戏里面每单位是100像素。当我们用游戏中的单位来用到图片上时,始终是有偏差的。既然知道了原因,那就好办了,有2个方法,第一个就是将PixelsPerUnit的值设置成图片的像素值,比如我这里设置成128;但因为我美术,鬼知道找的图片是多少像素的,一个个调整太烦了,所以我这边采取第二个方法,手动转换得到一个值。那我们先来优化一下盾的表现;/// <summary>/// 适
2021-03-16 23:50:20
234
原创 独立游戏开发(十)-- 光罩特效以及对病毒产生的路径影响
上节实现的盾道具的生成及触发,今天就来看看 触发后的特效以及对病毒的效果。首先创建一个item行为表,他和item表相关联。当触发到道具的时候创建特效,创建的方法同item的创建。我们可以先看看护盾的效果:接下来实现阻挡的效果,首先判断病毒在到达范围内停止移动:foreach (var pair in _itemActionService.AllObjs){ var data = _itemActionService.GetItemActionDataById(pair.Key);
2021-03-15 00:13:43
187
原创 独立游戏开发(索引)
这一篇主要是个索引,方便挑战及归纳。一、安装Unity二、如何安装Unity插件三、安装编辑器及控制摇杆四、安装python环境及配置打表工具五、控制角色在范围内移动六、对象池及模块加载七、随机游走病毒及追踪角色病毒实现八、繁殖病毒实现九、盾道具的生成及触发实现...
2021-03-13 23:40:37
761
原创 独立游戏开发(九)-- 盾道具的生成及触发实现
之前已经3中病毒的各自运动轨迹,接下来我们就来看看道具的实现。首先这边简单的先罗列了一下:那我们就可以先配表了那我们先看看盾的效果:盾的施法对象肯定是自己,然后作用就是把病毒挡在外面;接下来就是盾的实现部分;首先我们还是要先创建道具,先看效果:这里创建方法同之前病毒的创建方法一样(没有美术,先简单的代替效果)。接下来就来实现道具的效果,首先道具应该都有一个生命周期,顺便验证一下之前的对象池。从之前的配置看到我配的生命周期是5,也就是说5秒后会因隐藏,然后创建新的盾时,还会显示,我们用
2021-03-13 23:21:43
329
原创 独立游戏开发(八)-- 繁殖病毒实现
先直接看效果吧,注意黄色的球:可以看到黄色的球会越来越多,这边只是简单做了个规则,让他在一定时间呢复制一个出来,后面会越来越庞大。先来看看他简单的实现逻辑。首先,还是定义一个繁殖病毒类:创建病毒还是走我们之前说的创建病毒的通用方法,这里有一个逻辑,如何才能在当前病毒直径范围内生成球体,我们先直接上代码:protected void CopyVirus(Action success){ Vector3 p = Random.insideUnitSphere; Vector3 p
2021-03-11 00:23:56
226
原创 独立游戏开发(七)-- 随机游走病毒及追踪角色病毒实现
接下来就是多种病毒的实现了,先来实现第一种病毒;首先先看看普通病毒的定义及特点:普通病毒的特点暂定为随处游走,那我们就得就得为他创造一个随机点算法:/// <summary>/// 得到一个随机位置/// </summary>/// <returns></returns>protected Vector3 GetRandomPosInBoard(){ var x = Random.Range(-ConfigDefine.MapWid
2021-03-09 23:56:14
289
原创 独立游戏开发(五)-- 控制角色在范围内移动
今天主要来实现主角的移动吧,废话不多说,先上效果:我先设置了一个大概的游戏范围,然后player只能在游戏范围内移动。在这里我们用了一个初始初度,加速度,最高速度的概念,让player移动更加真实。上图可能看的不直观,上图是初始速度为2的效果。那我们再看看初始速度为0.1的一个效果:可以很直观看到开始很慢,逐渐加速的一个过程。同时也能看到scriptobject一个好处了,直接调整看效果。实现部分如下,其实也很简单:_playerSpeed = _playerSta
2021-03-07 14:09:09
710
原创 独立游戏开发(四)-- 安装python环境及配置打表工具
上一篇主要实现了实现操作杆控制player的旋转,本来今天想实现主角的移动加边界值处理的。但有个问题,就是不论边界值还是移动的相关的参数(速度,加速度)都要保存一个地方,嗯,就是表,后面道具和enemy都需要用到表。所以今天的主要工作就是来实现导表工具来导出asset。我们这个游戏用到的表不会太多,所以打算用scriptobject来存储表结构,测试、维护都比较方便。**********************************************强行分隔符************
2021-03-06 20:52:18
448
原创 独立游戏开发(一)-- 安装Unity
最新想做一个游戏,包括整个游戏生态,包括开发到发布。这个想法有一段时间了,但我自认为自己不是一个自律的人,经常想想就会觉得好麻烦,然后就放弃了。我写这个的原因也是看看自己能坚持多久,首先我有一个稳定的工作,当然也是属于互联网行业,所以加班是经常会有的,再加上家里还有一个未上学的小棉袄,所以留给我的时间可能就是不间断的晚上抽出来的1~2个小时以及不加班的周末。既然是第一个游戏,而且也是独立开发,我也是想着做一个简单的游戏,然后顺带着了解一下游戏的整个生态。好处当然有很多,能否赚钱是其次,最重要的是
2021-03-03 23:48:12
832
4
原创 Git 常用命令
Git 常用命令• git clone xxx(可以http or ssh)• git branch -r 列出远程分支• git branch -a 查看所有分支(本地和远程)• git checkout branch1 切换分支• git branch -vv 查看本地分支和远程分支的跟踪关系(*表示当前分支)• git checkout -b branch1 origin/branch1 创建分支(追踪远程分支)• git checkout . Or (— a.cs) 本地删除
2020-07-29 11:56:43
176
原创 Unity 运动中的目标跟随实现
主要用Vector3.MoveTowards来实现目标跟随;关于MoveTowards的用法及案例,官方有详细的介绍[官方],这里不再累赘。假设有初始速度、加速度、最高速度,来实现一个匀加速的一个跟随效果,直接上代码:// 当前位置,目标位置,以及根据加速度得到的一个当前速度transform.position = Vector3.MoveTowards(transform.positi...
2020-03-20 10:36:54
1631
转载 C# 判断点是否在多边形内
/// <summary> /// 判断点是否在多边形内. /// ----------原理---------- /// 注意到如果从P作水平向左的射线的话,如果P在多边形内部,那么这条射线与多边形的交点必为奇数, /// 如果P在多边形外部,则交点个数必为偶数(0也在内)。 /// </summary> public boo...
2020-03-05 15:48:55
1765
1
原创 unity 根据给定的点绘制多边形
最好是凸边形;给定点按顺时针方向排列;固定一个点,这也保证了凸边形不会有错;private GameObject CreateMesh(List<Vector2> lists, Transform area, Material mat){ int iVertexCount = lists.Count; int iTrsCount = lists.Count ...
2020-03-05 15:31:02
2579
原创 unity 导出pc端后读取xml报错
C# 读取xml的方法有很多,最简单的方法可能就是通过xmldocument.load来读取。 XmlDocument doc = new XmlDocument(); doc.Load(Application.dataPath + @"Resources/xx.xml");在editor下运行没事,导出pc后就一直读不出来,原因其实就是导出后,resources资源被整合在一起了...
2020-03-05 10:32:54
657
原创 C# 为什么说Dictionary是无序的
直接测试代码可以看出,当我删掉一个字段再添加一个字段后,并不是直接在后面添加而是显示到前面位置。所以为什么dictionary是无序的呢?1、dictionary里存储的hash桶以及entry都是一个个数组;2、当删除一个元素后,是不会自动排序的。3、增加元素会找数组里面空的位置插入。详细可查看Dictionary实现原理...
2019-07-11 12:27:09
3754
原创 使用AvproVideo播放带有透明通道视频
需求:1、支持透明通道;2、支持热更新;方案:AVProVideo1、视频格式:Mp4;2、视频美术需求:一半不透明,一半透明。输出格式:H.264;备注1、CG文件放在StreamingAsset路径下,以Url模式使用。2、Editor下如果播放不出来,选择D3d Graphics。3、具体使用,可参考avprovideo插件里面的demo。...
2018-10-11 20:41:34
6360
原创 UGUI Button监听带参数方法
public static void AddButtonListener(Button button, UnityAction action, T param) { if (action != null) { button.onClick.AddListener(delegate () { ...
2018-08-27 19:04:00
1043
原创 Unity播放带有透明通道视频的几点总结
1、videoplayer支持.webm和.mov格式的视频; 2、使用.webm格式后,Android平台必须勾选支持转码,否则没有透明通道; 3、使用url模式后,streamingAsset下的视频在Android下没有透明通道; 4、unity2018之前的版本,导出android包不能从bundle包加载视频; 5、unity2018之后的版本,必须无压缩后导出android包才...
2018-08-09 15:38:48
3303
原创 unity使用顶点偏移shader后物体包围盒中心点的偏移
unity使用顶点偏移shader后物体包围盒位置的偏移这里只做一下笔记,总结。 顶点偏移shader主要是将游戏中的点在经过一系列坐标转化过程中所做的偏移的shader。 有2种做法,要么在观察坐标系偏移,要么在其次坐标系偏移。 假如在开发一个跑酷游戏,游戏的跑道是一个纵深弯曲的曲面,上面有各种金币,道具。 虽然说金币及道具顶点实现了偏移,但包围盒不会,所以还得再项目里实现位置坐标转...
2018-04-19 20:24:58
1440
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人