- 博客(80)
- 资源 (10)
- 收藏
- 关注
原创 Unity lua事件注册和响应
lua中经常要用到事件的处理,用于解耦合lua事件的实现常用方法:--错误日志--该日志为必须处理的日志,release也会打印堆栈信息(lua和c#)function Fatal(str) Debugger.LogError("Fatal:"..str..'\n'..debug.traceback())end--检查一下,如果不是字符串类型的需要处理一下function _check_str(str,where ) if type(str) == "string" then
2021-09-14 12:00:46
705
原创 Unity lua红点系统
红点基本上是游戏中必备的吧,红点遍地有,所以需要一套统一的红点系统来管理。红点注册new_tip_register = {}local this = new_tip_registerlocal LASTNUMBER = 99999--红点枚举(第一步:注册红点枚举)Enum_New = { NEW_ALL = 999999, --遍历所有用 ------------------------------------红点-----------------------------
2021-09-12 17:49:23
914
2
原创 批处理bat踩坑记
之前由于公司的打包脚本都是在mac系统上执行的,所以都是用shell写的命令,但是有次需要在windows上打包,此刻的我只好把shell改成bat了,踩了很多小坑,淦。记录打包时间if %time:~0,2% LEQ 9 (set startTime=%Date:0,4%%Date:5,2%%Date:8,2%0%Time:1,1%%Time:~3,2%) else (set startTime=%Date:0,4%%Date:5,2%%Date:8,2%%Time:0,2%%Time:~3,2
2021-09-02 16:24:56
346
原创 Unity SVN工具
可在Unity上直接进行提交、更新、查看log、clear up等操作。代码如下:/******************************************************************** 文件:UnityToSVN.cs 功能:整合SVN命令到Unity编辑器*********************************************************************/using UnityEditor;using UnityEn
2021-06-08 14:31:59
664
1
原创 Python实现Jenkins打包成功后,在企业微信群里通知别人
平时我们打包都是在打包机上通过Jenkins来自动打包,但我们不知道打包机什么时候能打完包,总不能经常看打包机有没有打完包吧,所有就写了一个脚本来通知企业微信的人告知打包完成了。安装首先要安装python2.7 或者python3.x都可以,建议安装python3.6.把路径添加到系统环境变量里然后再通过cmd命令执行pip install requests等待安装完就可以了Python代码块# -*- coding: utf-8 -*-import requestsimport sys
2021-04-02 16:37:09
858
原创 AssetBundleManifest文件的内容转txt文件输出
打完补丁包后,补丁包中会有一个Android.ab或者iphone.ab文件,里面记录了所有ab资源的依赖关系,但是这种格式的文件直接打开是看不了的,无论怎么转码都看不了,所以就写了一个编辑器工具用来查看里面的资源依赖关系。(其实打完包后,会附带输出一个manifest文件的,也记录有ab的依赖关系,但是我就是无聊想读Android.ab中的内容,所以简单写了下代码,大佬勿喷)代码如下:/*********************************************************
2021-03-24 16:21:00
386
原创 Python 实现自动检查代码中的log打印并根据关键字注释掉
首先安装读写excel表格所需的插件:xlwt(写入) xlrd(读取)插件链接:https://pan.baidu.com/s/1vCPX70awNQK-aqiEtl9JrQ提取码:exce安装教程:https://jingyan.baidu.com/article/acf728fd6f52bdf8e410a37e.html代码部分创建一个python脚本#! /usr/bin/env python# coding=utf-8import osimport sysi
2021-03-09 19:53:52
410
原创 Unity Dots学习
我用的Unity版本是Unity 2019.4.19f1c1 (64-bit)Unity中的PacketManager中下载Entities,再下载Hybrid Rer用于显示。Dots入门1.打印一个数字先创建一个Componentusing System.Collections;using System.Collections.Generic;using Unity.Entities;using UnityEngine;public struct PrintComponentData
2021-02-13 23:34:14
844
1
原创 Unity 使用贝塞尔曲线快速生成坐标点,并保存为asset文件
圈住的为生成的坐标点,改变控制点的位置后,坐标点也会跟着变。点击1后,生成2号文件,即为unity可以使用的asset文件。代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;using System.Linq;using UnityEditor;public class BezierPointSpawn : MonoBehaviour{ [Range(1, 3000.
2020-12-05 23:50:48
864
原创 Lua复习
#是一元运算符,返回字符串或表的长度。 #“Hello” 返回 5~=不等于select(’#’, …) 返回可变参数的长度 select(n, …) 用于返回 n 到 select(’#’,…) 的参数repeat…until 重复执行循环,直到 指定的条件为真时退出循环,即false时一直循环%a: 与任何字母配对%d: 与任何数字配对lua 中没有 continue 语句,可以使用类似下面这种方法实现 continue 语句for i=10,1,-1 dorepea
2020-08-08 17:43:34
185
原创 Unity在手机上打印错误信息
新建一个Text,拖拽赋值(注意Text要足够大,能显示较多内容),代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class ErrorDisplay : MonoBehaviour{ internal void OnEnable() { //Application.RegisterLogCa
2020-07-07 10:39:08
675
1
原创 Unity 二维码的生成与扫描
效果:点击这里下载zxing.unity.dll将这个dll放到unity中,创建一个raw Image和Button,拖拽赋值,代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;using ZXing;using UnityEngine.UI;public class Draw : MonoBehaviour{ [Header("绘制好的二维码显示界面")]
2020-07-06 23:35:29
2963
1
原创 Unity 贝塞尔曲线
贝塞尔曲线是最基本的曲线,一般用在计算机 图形学和 图像处理。贝塞尔曲线可以用来创建平滑的曲线的道路、 弯曲的路径就像 祖玛游戏、 弯曲型的河流等。贝塞尔曲线工具类:using System.Collections;using System.Collections.Generic;using UnityEngine;public class BezierUtils{ /// <summary> /// 根据T值,计算贝塞尔曲线上面相对应的点 /// <
2020-06-29 23:56:25
437
原创 Unity 制作蛇形移动的效果
效果:新建脚本,代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;public class Test : MonoBehaviour{ public List<Transform> brick; Coroutine[] temp; public float range = 10;//摆动范围 private void Start()
2020-06-09 23:51:53
1171
原创 Shader 锥形扫描遮挡效果
效果图如下:新建shader,代码如下:Shader "Unlit/ConeScan"{ Properties { _MainTex ("Texture", 2D) = "white" {} _Color("Color",Color)=(1,1,1,1)//颜色 _StrongFloat("_StrongFloat",float)=0.1//增强圆形边缘效果的值 _AlphaDownFloat("_AlphaDownFloat",float)=0.2//降
2020-06-09 23:29:47
1292
1
原创 Unity A*寻路算法
Unity中自带有NavMeshAgent寻路组件,很好用很方便,功能也挺多的,不过性能可能比不上A寻路算法,但是A算法也有一个缺点,就是寻的路线不一定是最短的,但却是较短的,可以满足寻路的需求。简易地图如图所示简易地图, 其中绿色方块的是起点 (用 A 表示), 中间蓝色的是障碍物, 红色的方块 (用B 表示) 是目的地. 为了可以用一个二维数组来表示地图, 我们将地图划分成一个个的小方块...
2020-04-16 01:00:10
2336
2
原创 Unity FSM(有限状态机)
先看下效果:FSM ,有限状态机,一个可以枚举出有限个状态,并且这些状态在特定条件下是能够来回切换的。在游戏中经常看到的一些AI,如敌人巡逻,巡逻过程中看到玩家就追击,追上了就攻击,追不上并且有了一定的距离就返回去继续巡逻。Unity中的Animator就是一个FSM了,不过Animator是控制角色动画播放的,什么状态的时候播放什么动画。而这里写的FSM是控制角色AI的,什么状态就做什么...
2020-04-14 01:12:47
10531
5
原创 UnityShader 简单护盾效果
Shader "Unlit/Shield"{ Properties { _Color("Color", Color) = (1,1,1,1)//圈内的颜色 _RimColor("Rim Color", Color) = (1,1,1,1)//边缘颜色 _RimScale("Rim Scale", Float) = 1//边缘大小 _Transparent("Transpar...
2020-04-03 17:52:57
792
原创 Unity 利用编辑器扩展批量修改物体材质的Shader并启用GPU Instancing
为什么会有这个需求我的某个游戏运行之后,看了下draw call,发现上千个draw call了,非常大的数值,不过我在手机上测试了一下,竟然没有明显的卡顿,哈哈哈,很强,不过还是要优化一下的,所以先想办法降低draw call了,我看了一个,是游戏的地图产生了大量的dc,我这个游戏是由四个地图组成的,每个地图都由几百个小物体组成,所以四个地图应该是由两千多个物体组成的,刚开始我想着要不合并模型...
2020-04-02 22:13:37
2101
1
原创 Unity 性能优化
Unity之所以可以跨平台是应为unity里面有内置的mono虚拟机,我们所写的程序是运行在mono虚拟机上面,因为mono虚拟机可以跨平台所以我们开发的程序也是可以跨平台的。Draw Call简单来说Draw Call就是CPU对图形接口的调用,cpu通过调用图形库(DX,OpenGL)接口,命令GPU渲染,一次调用就是一次Draw Call。每调用一次Draw Call ,cpu就会做一次...
2020-04-01 23:12:07
580
原创 Unity Image镜像案例
效果:BaseMeshEffect介绍:要做镜像,就要修改Image的网格,所以要继承BaseMeshEffect,实现修改网格的抽象方法。BaseMeshEffect是UGUI源码中的东西,如下:graphic是当前的图形,可以转成Image,表示当前脚本上的Image。ModifyMesh(VertexHelper vh)就是我们要实现的抽象方法了,用来执行修改网格的操作。具...
2020-04-01 17:56:24
1968
2
原创 Unity 用TexturePacker实现自动打图集
需要先去下载texturepackertexturepacker官网:https://www.codeandweb.com/texturepackertexturepacker是一个打图集的软件,不只是适用于Unity,其他的也能用,用texturepacker来打图集比用Unity自带的打图集工具更好用。在Unity中新建一个Editor文件夹,再新建一个AutoTPBuild.cs,通过...
2020-03-31 00:52:27
1625
原创 Unity 动态打图集并完成小Demo的实现
为什么要动态打图集比如在英雄联盟中的选择英雄界面,有很多的图标供我们选择,而我们进入游戏之后只需要选择的那两三个图标而已,这是如果我们将所有图标都打成图集,就造成内存浪费,因为我们只需要两三个而已,那么我们有什么办法让我们只将要用到的图标进行打图集,其他的不打进图集吗?有的,那就是动态打图集。效果如下点击下面三个框中的一个,再点击上面十个图标中的一个,就完成了选择图标,一个个选。如何进行...
2020-03-31 00:15:32
2478
原创 Unity与Android的交互
Android调用Unity的方法在Android Studio中,File–》New–》New Module–》Android Library,创建一个新模块,取名为simplelibrary,然后打开unity安装目录D:\unity\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\mono\Release\Classes\clas...
2020-03-21 18:34:51
375
1
原创 unity 接入讯飞语音听写的SDK
获取讯飞语音听写的APPID讯飞开放平台的网址:https://www.xfyun.cn/进入讯飞开放平台注册登录后,创建应用,取得所需的APPID然后找到对应的语音听写的SDK进行下载,我下载后的文件夹名称是Android_iat1140_5e70aa24测试下讯飞自带的SDK效果我们先AndroidStudio创建一个新Empty Activity的工程。然后导入前面下载的SDK里面...
2020-03-20 21:14:52
1482
原创 unity 游戏上架Google Play
准备工作1.需要科学上网2.需要申请谷歌邮箱账户(注册出现“此电话号码无法用于进行验证”,这种情况需要用国外的手机号验证。去淘宝搜gmail号关键词找店家解决,一般5元左右)3.需要申请Google开发者4.需要有一张信用卡(Visa master卡),并且支付25美元(或者去淘宝找代付,淘宝搜索Google开发者就可以了)注册开发者developers.google.com 点击...
2020-03-06 00:03:51
2539
原创 c# 双向链表
我这里有两句代码用到了类对象池,有兴趣的可以去看看封装了一些双向链表的常用方法。都是不难的,只要思路清晰了就o98k了。using System.Collections;using System.Collections.Generic;using UnityEngine;public class ResourceManager : Singleton<ResourceManag...
2020-02-28 23:57:34
252
原创 c# 类对象池
类对象池存储的是类,当需要几十几百甚至更多的类进行频繁的使用和销毁时,就该使用类对象池了。基本类对象池:using System.Collections;using System.Collections.Generic;using UnityEngine;public class ClassObjectPool<T> where T:class,new(){ pr...
2020-02-28 15:30:56
2526
原创 C# xml序列化 二进制序列化 unity中的asset序列化
序列化是将对象保存为xml或json或二进制文件;反序列化则是读取文件信息,还原为对象;先建一个存储数据的类,添加标签表示可序列化using System.Collections;using System.Collections.Generic;using UnityEngine;using System.Xml.Serialization;[System.Serializable...
2020-02-26 22:10:49
318
原创 shader 屏幕后处理之死亡置灰
先看效果:天空盒和角色都慢慢灰度化了,人物死亡的时候将屏幕置灰,很实用。首先创建一个置灰的shader,如下:Shader "MyShader/die"{ Properties { _MainTex ("Texture", 2D) = "white" {} _Speed("Speed",float)=0 } SubShader ...
2020-02-22 17:27:58
591
原创 unity 利用UnityEditor.AssetModificationProcessor自动添加头部注释
在Unity中创建新的C#脚本时,会自动去加载某个路径下的模版,它的后缀为txt,创建的C#脚本初始自带的内容就是这个模版内的内容。在Windows下,这个路径为:Unity安装目录\Editor\Data\Resources\ScriptTemplates\81-C# Script-NewBehaviourScript.cs.txt在Mac下,这个路径为Unity.app/Contents/...
2020-02-20 17:06:58
1698
原创 shader 湿地面效果
效果图如下:代码如下:Shader "Custom/017"{ Properties { _Color("Color", Color) = (1,1,1,1) _MainTex("Albedo (RGB)", 2D) = "white" {} _Normal("NormalMap",2D) = "bump"{} _NormalScale("NormalScale",Ra...
2020-02-12 23:25:33
2273
2
原创 shader 水效果(SurfaceShader)
效果图:代码如下:Shader "Custom/Water"{ Properties { _Color("Color", Color) = (1,1,1,1) _WaterShallowColr("WaterShallowColr", Color) = (1,1,1,1) _WaterDeepColr("WaterDeepColr", Color) = (1,1,1,1)...
2020-02-12 16:06:21
1875
2
原创 shader 广告牌
游戏中,有时我们需要让某些物体一直的面向我们,比如天上的云和星星之类的,或者广告牌,如果用模型的话,比较耗性能,所以我们采用quad面片来节省性能,然后quad面片要一直看向摄像机。效果如下:无论我们怎么移动摄像机,quad面片都是面对我们的。代码如下:Shader "MyShader/015"{ Properties { _MainTex ("Text...
2020-02-11 23:25:00
725
原创 shader 顶点动画
效果图如下:实现了简单的上下浮动,可模拟简单的水面效果。代码如下:Shader "MyShader/014"{ Properties { _MainTex ("Texture", 2D) = "white" {} _Swing("Swing",float) = 1//振幅 _Frequency("Frequency",float)=1//频率 ...
2020-02-11 18:26:24
897
原创 shader 滚动动画
效果图:只是实现了简单的向右偏移。代码如下:Shader "MyShader/013"{ Properties { _MainTex ("Texture", 2D) = "white" {} _ScrollSpeed("ScrollSpeed",Range(0,5))=1 } SubShader { Tags {...
2020-02-11 17:59:28
304
原创 shader 序列帧动画
原图:进行序列帧动画后的效果:图片找的不太好,但基本效果已经实现了。这便是序列帧动画。代码如下:Shader "MyShader/012"{ Properties { _MainTex ("Texture", 2D) = "white" {} _RowAmount("RowAmount",float)=4 _ColumnAmount("Colu...
2020-02-11 17:41:42
358
原创 shader 玻璃效果
玻璃效果主要是折射效果的计算和反射效果的计算。折射:1.利用Grass Pass对当前屏幕的渲染图像进行采样2.得到法线贴图对折射的影响3.对采集的屏幕图像进行关于法线方向上的扭曲和偏移,以模拟折射效果反射:主要利用环境贴图产生反射的残影,并和主贴图采样结果混合得到反射和折射的结果后,以一个变量控制最终效果(类似于玻璃的透光率);效果如下:代码如下:Shader "MySha...
2020-02-10 22:57:43
799
原创 shader 镜面效果
在unity中新建一个plane面片作为镜子,再新建一个摄像机,在Project下建好Material和Render Texture,新建的摄像机的Target Texture那里选择你刚刚新建的Render Texture,表示将新建的摄像机拍摄到的东西显示到Render Texture中(记住新建的摄像机要摆到合适的拍摄位置),新建一个顶点片元shader,Material中选择这个shade...
2020-02-09 23:32:28
1811
原创 shader 菲涅尔反射
用来描述光在不同折射率的介质之间的行为。用公式推导出的光的反射称之为“菲涅尔反射”。一般运用于水面效果,试想一下你站在湖边,低头看向水里,你会发现近的地方非常清澈见底(反射较少),而看远的地方却倒映着天空(反射较多),这就是菲尼尔效应。由于真实的菲尼尔公式计算量较多。在游戏里往往会用简化版的公式来提升效率达到近似的效果。Schlick菲涅尔近似等式:Empricial菲涅尔近似等式:...
2020-02-09 23:02:16
2380
unity AssetBundle打包管理工具.rar
2020-02-26
unity千人战斗场景优化.unitypackage
2020-02-22
unity利用mesh绘制任意形状的平面.unitypackage
2020-02-16
Unity3D挖洞效果的实现.rar
2020-02-16
shader水效果.rar
2020-02-16
任意切割模型.rar
2020-02-15
unity类似刮奖效果的实现.zip
2019-12-15
游戏解包工具(附教程).zip
2019-12-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人