![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术分享
文章平均质量分 71
木之子楠
这个作者很懒,什么都没留下…
展开
-
六边形网格+寻路
六边形 寻路原创 2022-09-22 15:41:13 · 2048 阅读 · 1 评论 -
AStar 拐点 算法实现AI寻路
一般来说,在项目中实现完整的寻路解决方案,是使用寻路算法(A只是其中一种)和拐点算法共同实现的。A这个算法相对知名,网上有大量的博文介绍,本文着重介绍拐点算法。演示具体项目可以在我的GitHub仓库中查看:传送门AStarAStar被称为启发式寻路算法,终点在于其启发函数的设置,在网上文章可以看到FGH值,其中F就是最终的启发函数的值。可以根据自己的需求进行相对应的GH值计算,也可以进行加权重。例如:地图中有沼泽地,那么相应的沼泽地通过时候,它的启发函数计算权重就要加大。大部分都是用方格进行原创 2021-09-26 17:03:52 · 2053 阅读 · 0 评论 -
Unity空间划分 CellSpacePartition(单元空间划分)
一个空间中个体数量大的时候就需要做一些结构进行分区以减少计算量。空间划分有很多种,本片介绍一个简单的划分方式:单元空间划分。简单来说就是将一个空间划分成很多格子,格子中有存着个体的集合。个体运动过程中,更新所有格子的集合。下面图片演示运动过程中格子的变化,绿色格子标识其个体集合中有>0数量的个体。核心代码如下:SpacePartition.csusing System.Collections;using System.Collections.Generic;using UnityEng原创 2021-09-22 18:31:05 · 1055 阅读 · 0 评论 -
Unity模拟群聚行为 Boids 鸟群、鱼群
直接上才艺:在鱼群、鸟群等群体移动过程中,会发生群聚行为。群聚行为主要有3个约束条件:Spearation(分离)Alignment(一致性)Cohesion(聚集)1. Spearation一个个体在移动过程中,尽量避免与周围个体发生碰撞,保持一定距离。-- 分离function Bird:separation() local radius = 2 local force = Vector3.zero local found = 0 local原创 2020-12-03 17:04:18 · 5625 阅读 · 2 评论 -
unity shader 溶解效果
最近《元神》上线了,里面有个拾取宝箱后,宝箱溶解消失效果,试着做一下,整体还是很简单的。直接上效果达到这个效果需要一个噪声图用来做伪随机,然后通过一个阈值和噪声图任意一通道值比较进行clip,产从而实现控制现实与隐藏。图中蓝色部分是在将阈值进行偏移,偏移的部分显示一个新的颜色实现。下面是代码:Shader "box_disapper"{ Properties { _MainTex ("Texture", 2D) = "white" {} _NoiseTex ("Texture", 2原创 2020-10-13 15:14:14 · 567 阅读 · 0 评论 -
Unity 自定义事件 AddListerner
Unity 自定义事件 AddListernerUnity中有的Button组件有onCick.AddListener属性,如果想要自己定义事件并能够像Button一样AddListener使用需要怎么做呢?Unity中提供有UnityEvent类来用作事件的声明,下面直接放上代码,再一一说明。CustomEventClass.cs/* 事件类型的声明类 */using UnityEng...原创 2020-04-17 14:18:10 · 5586 阅读 · 0 评论 -
C# 冷知识
C# 的冷知识:@,?,??,?: 的用法直接贴上一段代码,先看下面的代码public struct Vector{ int x; int y; public Vector(int x, int y){ this.x = x; this.y = y; }}public class MyClass { static int Func1(string @string, V...原创 2020-01-13 20:10:49 · 436 阅读 · 0 评论 -
Unity/C#、Python 参数传递
Unity的C#参数传递在使用Unity命令行时候用到参数时候,需要将参数从外部传递,在C#中读取。例如一个shell调用Unity的命令:# [unity path] -quit -projectpath [project path] -executeMethod [class.method] [platfotm]其中[platform]就是传递的参数,需要在C#中接收,接收方如下:...原创 2020-01-07 18:31:39 · 1820 阅读 · 0 评论 -
Unity 无限滚动
先看一下实现的效果:接下来详细讲解一下具体实现步骤:一、 创建好Content以及初始个数的item按照预设体的宽/高创建出Content的总长度。根据ViewPort,也就是绿色背景的宽度来创建初始个数的预设体。也就是ViewPort_Witdh / item_Width 向上取整并 + 1,显示部分是可以被看到的,但是在滑动那过程中,需要有一个临时item来改变位置。如上图未滑动时...原创 2019-12-12 20:27:01 · 2400 阅读 · 1 评论 -
Unity Mesh实现图片切割(一)- 线与顶点
Unity Mesh实现图片切割(一)一、 PolygonCollider2D获取顶点和线段PolygonCollider2D中有points属性,对应和图形的顶点,PolygonCollider2D的顶点可以手动添加或者删除,右键Element X可选择删除这个点。由于Unity中所有图片都是连个三角面组成的矩形,在此需要手动拖动点勾勒出图片的有效切割范围。points属性的点顺序如图逆...原创 2019-11-13 16:58:38 · 1945 阅读 · 0 评论 -
Unity Mesh实现图片切割(二)- 顶点计算
Unity Mesh实现图片切割(二)一、 计算画的线和图形线的交点求交点坐标直观的数学方法,就是求出两直线的方程,两方程求解。但是需要注意的是,直线垂直于X轴的特殊处理,因为垂直于X轴的直线斜率k趋近于∞,没有截距b。两直线平行是没有交点的,平行的依据是:1.斜率k相同;2.或者两条直线都是垂直于X轴二、 将顶点和交点按照画的线分区域(在线上、线上方、线下方)得到两个新的点集三、 分离...原创 2019-11-13 16:58:48 · 1388 阅读 · 0 评论 -
Unity Mesh实现图片切割 - 概述
Unity实现图片切割效果 - 概述先贴上效果图一、用到的Unity相关技术1. PolygonCollider2D1. 顶点编辑2. LineRenderer1. 画线1.Mesh1. 创建mesh的顶点2. 设置mesh的三角面3. 设置uv贴图二、用到的算法1. 计算两线段交点2. 点集中的点按照线段分区域(线段上、线段上方、线段下方)3. 点集中的点按顺时...原创 2019-11-13 16:58:30 · 2063 阅读 · 0 评论 -
Unity Mesh实现图片切割(三)- mesh绘制
Unity Mesh实现图片切割(三)建议了解mesh原理,此篇博客不对mesh详解,值针对此功能做简单介绍以及思路引导。一、 创建mesh要想自己创建mesh并应用,需要用到MeshRenderer和MeshFilter组件,Mesh就是MeshFilter上的一个属性值。若不考虑渲染图像,创建mesh需要声明mesh的顶点vertices和三角面triangles,顶点就是上篇博客最后...原创 2019-11-13 16:58:55 · 2011 阅读 · 0 评论 -
方便的Unity真机调试工具:LogViewer
再也不用为真机调试发愁!!项目开发时候有些调试需要在真机才能看到运行结果,例如:第三方支付、登陆、分享等功能。需要在真机上查看日志,每次插线调试很不方便,unity的AssetsStore终有一款免费的调试工具:LogViewer,此文章推荐大家接入LogViewer方便调试。1. 导入工具AssestStore 搜索 LogViewer,导入Unity。2. 创建LogViewer ...原创 2019-12-17 15:44:10 · 3224 阅读 · 0 评论 -
Unity Texture 下载、存储、使用
网络下载图片IEnumerator DownloadTexture(string url){ WWW www = new WWW (url); yield return www; if (www.isDone) { texture = www.texture; }}保存图片到本地void SaveTexture(){ string ...原创 2019-10-18 13:35:15 · 1491 阅读 · 0 评论 -
git stash 用法
git 贮存功能有时开发到一半,但是功能不完善,不能提交到远程分支,但是又不想回滚已经更改的代码,此时用到stashstash是栈结构,遵循先进后出规则存提交本地所有修改,或者部分修改,存到栈顶git add -A将现有修改全部贮存到本地,备注为xxxx,不加备注会自动填写一个备注git stash save "xxxx"查查看所有贮存的修改列表git stash list...原创 2019-10-18 13:30:17 · 189 阅读 · 0 评论 -
Git 用法总结,持续更新
记录Git用法,持续更新更新时间 2019-10-18 EamonnLi一、 checkout - 切换分支/检出文件1. 切换分支从当前分支切换到本地已有目标分支git chekcout local_branch2. 切换并创建新分支从当前分支创建新本地分支并切换到此分支git checkout -b new_branch3. 检出本地其他分支文件从branch_name...原创 2019-10-18 13:29:18 · 416 阅读 · 0 评论 -
Unity3D UI EventTrigger 动态绑定UI事件
Unity3D UI 动态绑定UI事件原创 2018-01-31 19:41:19 · 4201 阅读 · 0 评论 -
Unity 划线 - 使用Image实现划线
unity使用Image实现划线功能原创 2018-02-06 18:40:07 · 10612 阅读 · 3 评论 -
Unity(OpenGL)实现“阴阳师画符”、划线功能
本篇博客分享了unity用OpenGL实现‘阴阳师画符’的功能,仅供参考,未经同意,严禁转载!《阴阳师》是一部火爆的手游,众多玩家想通过画符抽取SSR,作为一位游戏开发者,当然想的是游戏的功能是怎么实现的。本篇博客我将跟大家分享一下如何用unity实现阴阳师画符的功能,下面是一个小Demo,请看一下示例下面跟大家分享一下如何实现这个功能:实现方法第一步:存储在屏幕画的线条:原创 2017-10-27 16:22:11 · 5552 阅读 · 0 评论 -
Unity UI Text 计算字符距离
在开发过程中,会遇到在文字中间替换、添加一些空间的需求,本篇文章就为大家分享一下如何计算Text控件中字符位置。首先介绍一下计算方法和思路。 如上图所示,字符都是通过三角面形式渲染出来的,每个字符都在两个三角面组成的框题中显示。我们不能直接计算出某个字符的位置,要想计算单个字符的位置,就是计算字符所在框体的四个顶点。 在3D场景或UI界面中,我们很容易拿到当前对象的Transfrom、原创 2018-08-18 14:41:25 · 1405 阅读 · 0 评论 -
Unity2018与Android交互
Unity2018与Android交互本文适合于了解Unity2018以前的版本与Android交互通信的读者,此文将介绍Unity2018和Android交互通信,不用像以前一样繁琐的搭建AndroidStudio工程做jar包。交互流程Unity开发过程中,会有接入第三方平台SDK的需求,如接入微信登录、支付宝支付等需求,由于Unity不能和这些第三方平台直接交互,需要Android系统...原创 2018-11-07 17:19:06 · 1883 阅读 · 6 评论 -
权重随机(Lua)
实现权重随机步骤:构建一个权重列表,映射所有将数据表对应索引为的数据计算所有元素的权重总值 sum从 1-sum 中随机出要比较的值 toCompareWeightsum依次循环减权重表里面的权重值直到差值小于 toCompareWeight,此时的索引下标就是随机出来的,在原数据表中得到对应索引下标就是随机值--[[ function:权重随机函数 param1:...原创 2018-12-26 20:03:01 · 4218 阅读 · 0 评论 -
Unity AssetBundle 自动设置 assetBundle名
做项目时候有需求模块化更新,模块化的打bundle,作为程序开发人员,一次拿来多个模块的资源包,需要批量将资源包更改assetBundleName。如图例如:在BundleFloders目录下,有很多以文件夹为单位的资源包,需要全部设置assetBundleName可以写一个工具一键自动生成对应的assetBundleName代码如下:using UnityEditor;using ...原创 2019-04-04 17:17:41 · 2504 阅读 · 0 评论 -
Unity用Mesh画多边形、圆形
首先贴上效果图上面两个图就是使用Unity的Mesh画出的正五边形和正八变形。无论是研究过Mesh还是只是有所听说,应该都听过网格,上面两个图形就是利用来网格的特性来实现的。首先讲一下Mesh原理无论渲染什么图形,就需要用到mesh将图形的形状展示出来,Unity中所有图形都是三角面组成,例如一个正方形一个正方形是由定点组成的两个三角片组成(三角形a和b),012组成三角形a,02...原创 2019-04-10 16:42:38 · 4392 阅读 · 3 评论 -
Unity运行时(RunTime/代码)创建预设体
有事需要将SceneA中的一个对象在SceneB中使用,切换场景时候会将A场景对象全部卸载,此时就需要在切场景时候创建一个预设体,然后在SceneB中使用,动态的使用代码创建预设体,需要用到Unity的一个类PrefabUtility代码如下using UnityEngine;using System.Collections;using UnityEditor;using System....原创 2019-04-11 16:22:38 · 2829 阅读 · 0 评论 -
Unity出多渠道包apk,Mac环境下对apk反编译并重签名
Unity出多渠道包apk,Mac环境下对apk反编译并重签名需要的工具apktool 按照下载页的提示进行下载dex2jar 找到dex2jar-2.0的最新release下载zipjarsigner(需要安装JDK)重签名流程PS:在流程之前先声明几个文件和路径新创建的文件夹为 User/liyiyuan/Desktop/ReSignTest需要重签名的apk为 base...原创 2019-06-05 23:57:26 · 653 阅读 · 0 评论 -
Unity后台自动打包,git自动更新、切换分支
亲看私人博客:https://yiyuan1130.github.io/unity/2019/06/04/auto-build-unity.html原创 2019-06-04 12:18:37 · 882 阅读 · 0 评论 -
unity/C#中扩展方法类
在编程过程中,很多时候会用到unity/C#中已经给定的方法,但是有时候,这些给定的方法并不能满足我们的需求,在使用给定方法的时候还需要用到别的操作,这些操作往往是固定的。如果每次使用给定的方法时候都手动添加,会造成代码的冗杂,代码量变多,所以此时我们要将给定的方法进行拓展。扩展方法的创造: 扩展方法其实就是编程人员自己写一个方法,这个方法内包含了系统给定的方法,还包含了开发人员自己需要进行的操作原创 2017-11-11 13:34:59 · 515 阅读 · 0 评论