
Unity3D
文章平均质量分 70
木之子楠
这个作者很懒,什么都没留下…
展开
-
六边形网格+寻路
六边形 寻路原创 2022-09-22 15:41:13 · 2740 阅读 · 1 评论 -
AStar 拐点 算法实现AI寻路
一般来说,在项目中实现完整的寻路解决方案,是使用寻路算法(A只是其中一种)和拐点算法共同实现的。A这个算法相对知名,网上有大量的博文介绍,本文着重介绍拐点算法。演示具体项目可以在我的GitHub仓库中查看:传送门AStarAStar被称为启发式寻路算法,终点在于其启发函数的设置,在网上文章可以看到FGH值,其中F就是最终的启发函数的值。可以根据自己的需求进行相对应的GH值计算,也可以进行加权重。例如:地图中有沼泽地,那么相应的沼泽地通过时候,它的启发函数计算权重就要加大。大部分都是用方格进行原创 2021-09-26 17:03:52 · 2260 阅读 · 0 评论 -
Unity空间划分 CellSpacePartition(单元空间划分)
一个空间中个体数量大的时候就需要做一些结构进行分区以减少计算量。空间划分有很多种,本片介绍一个简单的划分方式:单元空间划分。简单来说就是将一个空间划分成很多格子,格子中有存着个体的集合。个体运动过程中,更新所有格子的集合。下面图片演示运动过程中格子的变化,绿色格子标识其个体集合中有>0数量的个体。核心代码如下:SpacePartition.csusing System.Collections;using System.Collections.Generic;using UnityEng原创 2021-09-22 18:31:05 · 1357 阅读 · 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 · 6291 阅读 · 2 评论 -
unity shader 溶解效果
最近《元神》上线了,里面有个拾取宝箱后,宝箱溶解消失效果,试着做一下,整体还是很简单的。直接上效果达到这个效果需要一个噪声图用来做伪随机,然后通过一个阈值和噪声图任意一通道值比较进行clip,产从而实现控制现实与隐藏。图中蓝色部分是在将阈值进行偏移,偏移的部分显示一个新的颜色实现。下面是代码:Shader "box_disapper"{ Properties { _MainTex ("Texture", 2D) = "white" {} _NoiseTex ("Texture", 2原创 2020-10-13 15:14:14 · 653 阅读 · 0 评论 -
Unity Editor中打开场景获取GameObject
编辑器工具开发中,有时需要找到场景中的物体。下面介绍用代码在Editor中寻找指定场景中的GameObject如上图,在三个场景中分别有一些GameObject,现在随机打卡一个场景,然后再当前场景中找其他场景中的GameObject代码如下:using UnityEngine;using UnityEditor;using System.IO;using UnityEditor.SceneManagement;using UnityEngine.SceneManagement;publ原创 2020-07-27 18:46:44 · 3222 阅读 · 0 评论 -
Unity shader 角色消失 溶解 隐身 效果
先上两张效果图实现原理一句话总结:空间中有一个隐形的面,判断模型上和面的相对位置,根据需求隐藏上方或者下方的点。原理就这么简单,具体怎么实现呢,首先确定数学几何中平面的性质:原点到到面上任意一点构成的向量a,再这个面的法线(n)方向投影,都是相等的,距离为d。用数学公式表达为:ax + by + cz = d画一个小图更容易理解:最简单地平面垂直于Y轴。P1和P2在法线方向的投影是红色的虚线,长度相同,为d。P3是面下方的点,在法线方向的投影小于d,由此可以通过空间中任意一点的以原点为起原创 2020-06-22 12:47:46 · 2260 阅读 · 0 评论 -
unity 空气扰动,热空气 shader效果
正常效果:高速低扰动效果:低速高扰动效果:代码:Shader "Learning/rekongqi"{ Properties { _NoiseTex ("NoiseTextrue", 2D) = "white" {} _Strength ("Strength", range(0, 1)) = 0.5 _Speed ("Speed", range(-2, 2)) = 0.5 } SubShader { Tags { "Queue"="AlphaTest"} Ble原创 2020-06-15 11:02:52 · 3165 阅读 · 0 评论 -
unity 百叶窗效果 shader 两行代码搞定
两行shader代码搞定百叶窗效果!!!先看下效果:直接上shader代码:Shader "Learning/baiyechuang"{ Properties { _TopTex ("TopTexture", 2D) = "white" {} _BottomTex ("BottomTexture", 2D) = "white" {} _ColumnCount("ColumnCount", int) = 3 _RowCount("RowCount", int) = 3 _Sh原创 2020-06-04 16:54:07 · 1491 阅读 · 0 评论 -
Unity RenderTexture实现 刮彩票、橡皮擦、擦除效果(3D物体)
一、实现效果:类似刮刮乐的擦除效果支持多笔擦除(一次擦不干净)二、所用技术点:RenderTextureShader三、实现原理:一个相机单独渲染笔刷轨迹,映射到,修改原图中对应笔刷路径uv的像素点的alpha值实现透明或者半透明1....原创 2020-05-29 11:29:01 · 9256 阅读 · 21 评论 -
Unity流光shader,无需图片
本片博客实现流光shader的方式无需黑色带有白道的图片,单纯通过计算实现,可以调节光带宽度、亮度、方向、角度,灵活性比较大。下面图是实现效果下面是代码的实现:Shader "Unlit/liuguang"{ Properties { _MainTex ("Texture", 2D) = "white" {} // 速度 默认左->右 _Speed ("Speed", range(-2, 2)) = 1.04 // 宽度 _Width ("Width",原创 2020-05-25 14:47:41 · 3274 阅读 · 0 评论 -
Unity 自定义事件 AddListerner
Unity 自定义事件 AddListernerUnity中有的Button组件有onCick.AddListener属性,如果想要自己定义事件并能够像Button一样AddListener使用需要怎么做呢?Unity中提供有UnityEvent类来用作事件的声明,下面直接放上代码,再一一说明。CustomEventClass.cs/* 事件类型的声明类 */using UnityEng...原创 2020-04-17 14:18:10 · 5776 阅读 · 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 · 1971 阅读 · 0 评论 -
Unity 无限滚动
先看一下实现的效果:接下来详细讲解一下具体实现步骤:一、 创建好Content以及初始个数的item按照预设体的宽/高创建出Content的总长度。根据ViewPort,也就是绿色背景的宽度来创建初始个数的预设体。也就是ViewPort_Witdh / item_Width 向上取整并 + 1,显示部分是可以被看到的,但是在滑动那过程中,需要有一个临时item来改变位置。如上图未滑动时...原创 2019-12-12 20:27:01 · 2575 阅读 · 1 评论 -
Unity Mesh实现图片切割(一)- 线与顶点
Unity Mesh实现图片切割(一)一、 PolygonCollider2D获取顶点和线段PolygonCollider2D中有points属性,对应和图形的顶点,PolygonCollider2D的顶点可以手动添加或者删除,右键Element X可选择删除这个点。由于Unity中所有图片都是连个三角面组成的矩形,在此需要手动拖动点勾勒出图片的有效切割范围。points属性的点顺序如图逆...原创 2019-11-13 16:58:38 · 2073 阅读 · 0 评论 -
Unity Mesh实现图片切割(二)- 顶点计算
Unity Mesh实现图片切割(二)一、 计算画的线和图形线的交点求交点坐标直观的数学方法,就是求出两直线的方程,两方程求解。但是需要注意的是,直线垂直于X轴的特殊处理,因为垂直于X轴的直线斜率k趋近于∞,没有截距b。两直线平行是没有交点的,平行的依据是:1.斜率k相同;2.或者两条直线都是垂直于X轴二、 将顶点和交点按照画的线分区域(在线上、线上方、线下方)得到两个新的点集三、 分离...原创 2019-11-13 16:58:48 · 1511 阅读 · 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 · 2225 阅读 · 0 评论 -
Unity Mesh实现图片切割(三)- mesh绘制
Unity Mesh实现图片切割(三)建议了解mesh原理,此篇博客不对mesh详解,值针对此功能做简单介绍以及思路引导。一、 创建mesh要想自己创建mesh并应用,需要用到MeshRenderer和MeshFilter组件,Mesh就是MeshFilter上的一个属性值。若不考虑渲染图像,创建mesh需要声明mesh的顶点vertices和三角面triangles,顶点就是上篇博客最后...原创 2019-11-13 16:58:55 · 2179 阅读 · 0 评论 -
方便的Unity真机调试工具:LogViewer
再也不用为真机调试发愁!!项目开发时候有些调试需要在真机才能看到运行结果,例如:第三方支付、登陆、分享等功能。需要在真机上查看日志,每次插线调试很不方便,unity的AssetsStore终有一款免费的调试工具:LogViewer,此文章推荐大家接入LogViewer方便调试。1. 导入工具AssestStore 搜索 LogViewer,导入Unity。2. 创建LogViewer ...原创 2019-12-17 15:44:10 · 3764 阅读 · 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 · 1598 阅读 · 0 评论 -
Unity3D UI EventTrigger 动态绑定UI事件
Unity3D UI 动态绑定UI事件原创 2018-01-31 19:41:19 · 4488 阅读 · 0 评论 -
unity/C#中扩展方法类
在编程过程中,很多时候会用到unity/C#中已经给定的方法,但是有时候,这些给定的方法并不能满足我们的需求,在使用给定方法的时候还需要用到别的操作,这些操作往往是固定的。如果每次使用给定的方法时候都手动添加,会造成代码的冗杂,代码量变多,所以此时我们要将给定的方法进行拓展。扩展方法的创造: 扩展方法其实就是编程人员自己写一个方法,这个方法内包含了系统给定的方法,还包含了开发人员自己需要进行的操作原创 2017-11-11 13:34:59 · 586 阅读 · 0 评论 -
Unity(OpenGL)实现“阴阳师画符”、划线功能
本篇博客分享了unity用OpenGL实现‘阴阳师画符’的功能,仅供参考,未经同意,严禁转载!《阴阳师》是一部火爆的手游,众多玩家想通过画符抽取SSR,作为一位游戏开发者,当然想的是游戏的功能是怎么实现的。本篇博客我将跟大家分享一下如何用unity实现阴阳师画符的功能,下面是一个小Demo,请看一下示例下面跟大家分享一下如何实现这个功能:实现方法第一步:存储在屏幕画的线条:原创 2017-10-27 16:22:11 · 5750 阅读 · 0 评论 -
Unity 划线 - 使用Image实现划线
unity使用Image实现划线功能原创 2018-02-06 18:40:07 · 10801 阅读 · 3 评论 -
Unity2018与Android交互
Unity2018与Android交互本文适合于了解Unity2018以前的版本与Android交互通信的读者,此文将介绍Unity2018和Android交互通信,不用像以前一样繁琐的搭建AndroidStudio工程做jar包。交互流程Unity开发过程中,会有接入第三方平台SDK的需求,如接入微信登录、支付宝支付等需求,由于Unity不能和这些第三方平台直接交互,需要Android系统...原创 2018-11-07 17:19:06 · 1955 阅读 · 6 评论 -
Unity AssetBundle 自动设置 assetBundle名
做项目时候有需求模块化更新,模块化的打bundle,作为程序开发人员,一次拿来多个模块的资源包,需要批量将资源包更改assetBundleName。如图例如:在BundleFloders目录下,有很多以文件夹为单位的资源包,需要全部设置assetBundleName可以写一个工具一键自动生成对应的assetBundleName代码如下:using UnityEditor;using ...原创 2019-04-04 17:17:41 · 2718 阅读 · 0 评论 -
Unity用Mesh画多边形、圆形
首先贴上效果图上面两个图就是使用Unity的Mesh画出的正五边形和正八变形。无论是研究过Mesh还是只是有所听说,应该都听过网格,上面两个图形就是利用来网格的特性来实现的。首先讲一下Mesh原理无论渲染什么图形,就需要用到mesh将图形的形状展示出来,Unity中所有图形都是三角面组成,例如一个正方形一个正方形是由定点组成的两个三角片组成(三角形a和b),012组成三角形a,02...原创 2019-04-10 16:42:38 · 4586 阅读 · 3 评论 -
Unity运行时(RunTime/代码)创建预设体
有事需要将SceneA中的一个对象在SceneB中使用,切换场景时候会将A场景对象全部卸载,此时就需要在切场景时候创建一个预设体,然后在SceneB中使用,动态的使用代码创建预设体,需要用到Unity的一个类PrefabUtility代码如下using UnityEngine;using System.Collections;using UnityEditor;using System....原创 2019-04-11 16:22:38 · 2950 阅读 · 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 · 727 阅读 · 0 评论 -
Unity后台自动打包,git自动更新、切换分支
亲看私人博客:https://yiyuan1130.github.io/unity/2019/06/04/auto-build-unity.html原创 2019-06-04 12:18:37 · 962 阅读 · 0 评论 -
Unity UI Text 计算字符距离
在开发过程中,会遇到在文字中间替换、添加一些空间的需求,本篇文章就为大家分享一下如何计算Text控件中字符位置。首先介绍一下计算方法和思路。 如上图所示,字符都是通过三角面形式渲染出来的,每个字符都在两个三角面组成的框题中显示。我们不能直接计算出某个字符的位置,要想计算单个字符的位置,就是计算字符所在框体的四个顶点。 在3D场景或UI界面中,我们很容易拿到当前对象的Transfrom、原创 2018-08-18 14:41:25 · 1571 阅读 · 0 评论