- 博客(55)
- 资源 (22)
- 收藏
- 关注

原创 深入探讨并实现Unity图像轮播
深入探讨并实现Unity图像轮播最近接了一个展厅的小项目,需求中有一个图像轮播的小功能,本来以为这是一碟小菜,心想瞬间有了N中解决方案,然而,现实是pia pia打脸,幸好最终完美实现了效果,才保住了作为公司其他人心目中“大神”的老脸。...
2022-03-05 23:03:04
6867
8

原创 Unity陶艺之路
Unity实现陶艺之路陶艺制作,如下图:最近接到了某历史博物馆的一个小项目,其中之一是允许游客利用触控屏模拟陶艺的制作。经过两天的研究,将制作工程记录和总结如下:程序总体流程:根据精细程度等需要动态生成模型根据用户操作动态调整模型顶点平滑接缝处的法线一、动态生成动态生成有很多种方式,为了性能考虑,除了必要的接缝(UV展开),这里尽量使用了共享顶点的方式,原因是:第一,可大幅度降低顶点数量,后期需要遍历顶点动态调整顶点位置时可提高效率,第二,共享顶点可使用unity自带的Mesh.Re
2021-06-17 14:53:37
1571
4

原创 Unity导弹自动追踪算法
网上找了很久,没有找到满意的追踪算法,要么是2D的,要么就不逼真,只好自己硬憋了1天,终于硬憋出来了,效果图:(这个图是最初版本的效果,完善后的项目请见下方链接)核心代码:using UnityEngine;[RequireComponent(typeof(Collider),typeof(AudioSource))]public class Missile : Mo...
2017-09-13 09:52:04
18253
19
原创 UDP+有穷自动状态机构造网络指令系统
指令前缀和后缀其实就是指令的分界符,用于标记一条指令的开始和结束,这类似与C语言中字符串的结束标记“\0”符号,再好比CSV文件中的“,”号,用来分割不同的列。上面例子中,我们分别用“[”和“]”来作为前缀和后缀。由此带来的第一个问题是,我们的指令的其他部分,就不能出现这两个字符了,包括指令体、运算符、还有参数部分,当然,要想解决这个问题也是可以的,那就再引入“转义符”这个概念,比如将连续两个相同的“]”符看做不是指令的结尾,而是本身的符号。为了简单起见,这里不予考虑。
2023-02-01 22:50:21
509
1
原创 Unity复刻骑砍中的帝国象棋(一)
这两天从一款游戏中发现了这么个棋类小游戏,觉得挺有意思,没错,就是下面这个:作为程序员的我,一下就想到复刻它一下。这个棋类小游戏,我并不知道它确切的名字,好像叫帝国象棋??好吧,这个不重要,重要的是我要实现它,顺便说一下,这个应该不会侵权吧,我可是真的只是为了学习,毕竟就算100%实现了,也不是以赚钱为目的的。规则描述虽然文字挺多,但是实际上很简单。
2022-12-01 00:06:32
288
原创 Unity 陶艺之路BUG修复专文
由于项目中间经历过了很多版本,导致上传的资源有一点小BUG。那就是UV的展开不太正确。在此,对所有购买了该资源的各位表示抱歉了。同时,感谢两位仁兄发现的该BUG,特发此文修复之。
2022-11-11 09:10:42
496
原创 Unity编辑器扩展——实现样条线编辑器
Unity编辑器扩展样条线编辑。一直以来有一个想法,想实现在unity中程序化摆放物体,比如,沿着公路自动摆放路灯,在一个范围内自动摆放建筑物,生成自动化城市场景等。于是,就开始了编辑器扩展的研究,遗憾的是,网络上虽然有很多的编辑器扩展方面的文章,但极少有在场景中实现样条线编辑方面的内容,只好自己研究啦,幸好,我记得`Cinemachine`中自带一个路径摄像机的功能,于是深入的研究了一下,发现完全可以拿来学习。
2022-11-02 20:23:04
616
原创 Unity实现跨场景的传送门
之前写过一篇传送门的文章,但是无法跨场景传送。这篇文章实现了跨场景的传送门。主要利用了“不销毁”物体携带数据,实现跨场景数据传输,异步场景加载完成后再进行数据利用和销毁的方法。
2022-10-19 20:41:00
1819
1
原创 Unity 使用柏林噪声优雅的实现随机变形
当初,并不知道有柏林噪声这么个神奇的玩意,当我们的美监用他的PPT给我展示了这个效果的时候,一时我还真不知道怎么去实现,后来灵光一现,让美术给我了建了一个模型——一个不规则的球体,类似一个土豆一样的,然后,我让这个土豆不停的旋转,然后给他写了一个纯色的shader,最后用一个摄像机渲染它,就勉强得到了一张类似效果的图。当然这样的实现我自己也觉得不太优雅,但没办法,项目着急,管他优雅不优雅,总归是实现了。。
2022-10-17 17:20:35
511
2
原创 Unity CommandBuffer实现毛玻璃特效
特效可以用于一般物体,也可以应用于UI。一直想在UI中实现这么个效果,现在终于实现了。其实,这大体的原理就是,在摄像机上加一个`CommandBuffer`,相当于在渲染过程中添加了额外的处理指令,就是,在渲染这个毛玻璃物体之前,先把已经渲染好的屏幕拿过来模糊一下,扭曲一下,然后以屏幕空间作为UV再贴到这个物体上。扭曲和模糊屏幕的Shader:
2022-10-02 15:35:17
578
原创 Unity UGUI 绘制优雅的线段
有时候,我们需要在unity中绘制线段,最常规的做法就是使用组件了。但有时候我们用起来并不那么适合,比如,我们需要在UI层绘制线段时,当然通过一系列的坐标转换,可以完美的将呈现在UI层,但总归不是很方便。这时候我们就可以自己写一些东西了。......
2022-08-29 22:29:32
1538
原创 Unity Graph View打造图形化对话编辑系统(四)
Unity Graph View打造图形化对话编辑系统(四)——视图类DialogueTreeView这个应该算是核心了吧,处理节点的编辑。关键有这么几处:// 当视图内容改变时,比如用户建立了连线、删除了节点等等操作private GraphViewChange OnGraphViewChanged(GraphViewChange graphViewChange){ if (treeData != null) { if (graphViewChange.elementsToRemove
2022-03-15 21:14:43
3259
原创 Unity Graph View打造图形化对话编辑系统(二)
Unity Graph View打造图形化对话编辑系统(二)——数据节点抽象我们需要两种数据类型,一种是对话树(DialogTree),一种是对话节点(DialogNode),前者是后者的容器。DialogTreeTree的定义比较简单,只需要实现几个简单的方法[CreateAssetMenu(menuName = "Dialogue Tree Graph")]public class DialogTree : ScriptableObject{ [HideInInspector]
2022-03-14 17:40:33
1807
原创 Unity Graph View打造图形化对话编辑系统(一)
利用Unity Graph View打造图形化对话编辑系统,类似Shader Graph,让策划可以使用简单的节点连线来打造NPC对话系统。
2022-03-14 16:30:34
2351
原创 Unity更详细的函数执行顺序
public class GameLogic : MonoBehaviour{ [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] private static void BeforeSceneLoad() { Debug.Log("BeforeSceneLoad"); } [RuntimeInitializeOnLoadMethod(RuntimeIn
2021-12-07 19:17:22
2786
1
原创 Unity UGUI 流光特效
UGUI 流光特效效果图:原理1. 写个简单的Shader:float4 frag (v2f i) : SV_Target{ float4 col = tex2D(_MainTex, i.uv); float2 uv = i.uv - 0.5; float2 pt = pointbyangle( fmod( _StartAngle + _Time.y * _Speed, 360)); float l = clamp( 1 - length( uv - pt ) / ( _Size * 1
2021-08-26 12:02:18
3852
6
原创 Unity实现一个简单易用的对象池
Unity实现简单易用的对象池原理当场景中需要频繁实例化一种对象时,由于实例化的过程会比较耗时,所以可以事先创建一堆对象,然后在需要时激活它。池子中,我们有两个列表,一个是正在被使用的对象,另一个是还没有被使用的对象,需要一个物体时,从正在使用的列表中取出一个物体,然后将它标记为“已被使用”,其实就是放到“已被使用的”列表中。当物体被使用完,归还物体到池中时,进行相反的操作。##源码public static class ObjectPool{ private class ObjectB
2021-04-02 15:26:32
110
原创 自己动手写一个基于UGUI的TreeView
自己动手写一个基于UGUI的TreeView前言最近搞的BIM工程中有个PDF图纸浏览的需求,然而需要一个TreeView来列出所有的PDF文档,网上搜了下,没大有很相中的插件,于是自己思考了一下,决定自己写一个。效果图哎,本来想截一个GIF动图的,但是截出来的图很大,10M+,CSDN上传图片限制是5M,没办法截动图了。原理介绍事实上,对于一个没有层级的ListView来讲,估计大家都会弄,就是把Prefab实例化一下,放进View的Content中完事了,Tree的难点在于可折叠、可展开
2021-03-26 12:45:53
340
原创 利用贴花制作能够100%贴合地面的选择框
利用贴花制作能够100%贴合地面的选择框效果图:网上有用Box制作的类似的选择框,但是用box做有个缺点,当地形不平时,就会穿帮。。于是用贴花来实现一下。原理其实很简单,如果你的渲染管线是Build-In,那么使用Projector组件来实现即可,如果是HDRP,那么使用Decal-Projector来实现,这两个都是自带的组件。但是如果用URP,没有自带的贴花,那就只能自己写个shader了。附带的工程中有代码。另外,判断是否框选了物体,只需需要调用Physics.OverlapBox来判断一下
2021-03-02 17:26:42
177
原创 Unity ML-Agents release12 环境搭建
新版本ML-Agents环境搭建备忘录折腾了很久,网上各种搜,最终整理一下步骤:去清华镜像下载最新的Anaconda,网上说要下载5.3版本,其实根本不是那么回事。我下载的是2020.11版本。一路安装即可。管理员身份进入Prompt,先配置一下源,这样后续安装会很快。 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels
2021-02-18 20:50:59
122
2
原创 解决Unity UGUI 抗锯齿,解决Canvas Camera模式抖动问题
UGUI开启抗锯齿,解决Canvas Camera渲染模式下UI抖动问题最近用unity搞一个小项目,用到了XCharts插件,这个插件除了一些小问题,总体还是不错的,最大的问题就是锯齿了。。官网文档里这么说的:开启抗锯齿设置(在Unity里设置)。调整UI渲染模式为Camera模式,开启MSAA,设置4倍或更高抗锯齿。锯齿只能减少难以避免,像素越高锯齿越不明显。其实不仅仅是XCharts组件,通过重载 void OnPopulateMesh(VertexHelper vh)函数,在UGUI上自绘
2021-01-24 17:24:24
3166
2
原创 Unity第一人称可视化传送门制作
引言游戏中很多地方用得到传送门,就跟哆啦A梦的任意门一样,从这边走进去,从那边走出来,用Unity实现一下它吧。先来个效果图,机器上没有按装gif截屏,所以不带动态,但图中的“能量波动花纹”是带动态的哦,请自行脑补。这里是另一个,传送门嘛,至少得两个。从一端走进去,就会从另一端走出来。效果还是可以的。下面介绍一下原理和制作方法:原理是这样的,用一个摄像机,观察传送门另一边的图像,然后渲染到本端传送门的平面上,这样,就能在本端门内看到远端的画面了。一、键shader用ShaderGraph
2021-01-01 23:36:03
2074
10
原创 Unity球形视野+Boids群算法
Unity球型视野研究射线分布射线分布Unity中进行视野检测,使用射线是一个很方便的方法。问题是如何有效的生成射线?事实证明,学好数学还是很有必要的。先看2D的情况:for( int i = 0; i < numPoints; i++) { float dst = Mathf.Pow( i / ( numPoints - 1f),pow); float angle =...
2020-04-09 22:13:08
1294
原创 Unity写的3D人工智能棋类博弈小游戏-四子棋
前段时间看到有小朋友玩一种智力玩具,是一种棋类的木制玩具,玩家双方从木质的小盒子顶部放入棋子,棋子落下,双方谁先实现四子连珠(横着竖着斜着均可),即为胜利。见下图:哈哈,这个创意真不错,作为一个码农,当时就想到能不能搞个智能的,让电脑来计算一哈如何胜利。。说干就干,这两天晚上有点空,于是果断开了个unity空项目。就开始了。可惜我美工基础实在太差,做不好美术资源,用unity最基本的box/...
2019-01-30 22:37:45
1542
6
原创 JQuery easyui自定义扩展——批量文件上传组件
/** * Created by Hexu on 2018/8/23. * 批量文件上传 */; ( function($) { function init( target, opts ) { var tar = $(target); var height = opts.fit ? tar.parent().height() : opts.hei...
2018-12-01 15:15:58
1106
原创 jQuery Easyui扩展CheckBox组件
/** * 复选框按钮 */;(function($) { function checkToUI(target, checked ){ var tar = $(target); var box = tar.next('span'); var opts = tar.data('opts'); tar.prop('chec...
2018-12-01 14:56:11
2069
原创 VS CODE jQuery/easyui代码片段
VS Code 使用代码片段用VS code的代码片段功能,可以非常方便的插入一些固定的代码。为方便使用jQuery和easyui,自定义了下面的片段。{ "My Ajax": { "prefix": "ajax", "body": [ "$.ajax({", "\turl: '$1',", "\ttype: 'post',", &
2018-11-07 22:51:25
1187
原创 C# HttpWeb POST请求封装
/// /// HTTP 进度事件 /// /// TRUE为上传进度,FALSE为下载进度 /// 已完成大小 /// 总共大小 public delegate void OnHttpPostProgress(bool bUpload, long lFininsh, long lT...
2018-07-27 14:28:08
1743
原创 也谈Unity血条的制作
如果百度一下,会有很多很多关于血条的制作方法。经过试验,总结了最最简单、有效的方法:1、创建一个Canvas,设置为WorldSpace模式,作为子物体挂到需要显示血条的角色物体下面,设置一下位置和Scale,让他大小和位置比较适合角色。2、在Canvas里面加一个Image,改名为Background,背景图片选UISprite或者Background都可,颜色选择背景色,比如红色。An
2017-09-13 11:16:46
1076
原创 MBI5026驱动
// mbi5026.h#ifndef HX_MBI5026#define HX_MBI5026#include "hxcomm.h"sbit MBI_DAT = P0^0;sbit MBI_CLK = P0^1;sbit MBI_LE = P0^2;sbit MBI_ENB = P0^3;void hxMbiInit();void hxMbiWrite( UINT u
2017-04-10 15:23:45
4505
1
原创 也谈POV旋转LED制作,经验及技术点。
最近玩上了单片机,看到网上的大牛们制作的旋转LED,心痒不已,决定自己也做一个。由于白天需要上班,很忙,只能晚上捣鼓捣鼓,所以经过近1个月的折腾,才终于大功告成,将历程和经验写下来,一是做个记录以备自己日后回味,二是分享一下,希望有缘的朋友看到,能够帮到你。 先上个成品图: 支持最多15个汉字滚动显示。。。支持钟表显示,两种状态轮流。...
2017-04-01 14:09:50
14325
17
Unity复刻骑砍中的帝国象棋(一)
2022-12-01
Unity GIF 播放插件
2022-04-13
Unity陶艺之路持久化版源码
2022-04-11
图形化节点对话编辑系统
2022-03-14
Unity Carousel轮播图像插件
2022-03-05
UIEffect.7z
2021-08-26
SuperColorPicker.unitypackage
2021-07-25
Unity陶艺制作模拟软件
2021-06-17
HeXuTreeView.unitypackage
2021-03-26
SelectorDemo.7z
2021-03-02
Unity传送门演示程序(可执行)
2021-01-01
Unity传送门工程源码
2021-01-01
UNITY自动追踪导弹源码
2021-01-01
Unity3D导弹自动追踪算法演示第二版
2019-04-05
unity小游戏四子连珠
2019-01-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人