![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity
文章平均质量分 53
Unity小林
unity使我快乐。
展开
-
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 · 679 阅读 · 0 评论 -
Unity lua红点系统
红点基本上是游戏中必备的吧,红点遍地有,所以需要一套统一的红点系统来管理。红点注册new_tip_register = {}local this = new_tip_registerlocal LASTNUMBER = 99999--红点枚举(第一步:注册红点枚举)Enum_New = { NEW_ALL = 999999, --遍历所有用 ------------------------------------红点-----------------------------原创 2021-09-12 17:49:23 · 893 阅读 · 2 评论 -
Unity SVN工具
可在Unity上直接进行提交、更新、查看log、clear up等操作。代码如下:/******************************************************************** 文件:UnityToSVN.cs 功能:整合SVN命令到Unity编辑器*********************************************************************/using UnityEditor;using UnityEn原创 2021-06-08 14:31:59 · 643 阅读 · 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 · 848 阅读 · 0 评论 -
AssetBundleManifest文件的内容转txt文件输出
打完补丁包后,补丁包中会有一个Android.ab或者iphone.ab文件,里面记录了所有ab资源的依赖关系,但是这种格式的文件直接打开是看不了的,无论怎么转码都看不了,所以就写了一个编辑器工具用来查看里面的资源依赖关系。(其实打完包后,会附带输出一个manifest文件的,也记录有ab的依赖关系,但是我就是无聊想读Android.ab中的内容,所以简单写了下代码,大佬勿喷)代码如下:/*********************************************************原创 2021-03-24 16:21:00 · 368 阅读 · 0 评论 -
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 · 811 阅读 · 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 · 845 阅读 · 0 评论 -
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 · 663 阅读 · 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 · 2935 阅读 · 1 评论 -
Unity 贝塞尔曲线
贝塞尔曲线是最基本的曲线,一般用在计算机 图形学和 图像处理。贝塞尔曲线可以用来创建平滑的曲线的道路、 弯曲的路径就像 祖玛游戏、 弯曲型的河流等。贝塞尔曲线工具类:using System.Collections;using System.Collections.Generic;using UnityEngine;public class BezierUtils{ /// <summary> /// 根据T值,计算贝塞尔曲线上面相对应的点 /// <原创 2020-06-29 23:56:25 · 415 阅读 · 0 评论 -
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 · 1147 阅读 · 0 评论 -
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 · 1245 阅读 · 1 评论 -
Unity A*寻路算法
Unity中自带有NavMeshAgent寻路组件,很好用很方便,功能也挺多的,不过性能可能比不上A寻路算法,但是A算法也有一个缺点,就是寻的路线不一定是最短的,但却是较短的,可以满足寻路的需求。简易地图如图所示简易地图, 其中绿色方块的是起点 (用 A 表示), 中间蓝色的是障碍物, 红色的方块 (用B 表示) 是目的地. 为了可以用一个二维数组来表示地图, 我们将地图划分成一个个的小方块...原创 2020-04-16 01:00:10 · 2318 阅读 · 2 评论 -
Unity FSM(有限状态机)
先看下效果:FSM ,有限状态机,一个可以枚举出有限个状态,并且这些状态在特定条件下是能够来回切换的。在游戏中经常看到的一些AI,如敌人巡逻,巡逻过程中看到玩家就追击,追上了就攻击,追不上并且有了一定的距离就返回去继续巡逻。Unity中的Animator就是一个FSM了,不过Animator是控制角色动画播放的,什么状态的时候播放什么动画。而这里写的FSM是控制角色AI的,什么状态就做什么...原创 2020-04-14 01:12:47 · 10385 阅读 · 5 评论 -
Unity 利用编辑器扩展批量修改物体材质的Shader并启用GPU Instancing
为什么会有这个需求我的某个游戏运行之后,看了下draw call,发现上千个draw call了,非常大的数值,不过我在手机上测试了一下,竟然没有明显的卡顿,哈哈哈,很强,不过还是要优化一下的,所以先想办法降低draw call了,我看了一个,是游戏的地图产生了大量的dc,我这个游戏是由四个地图组成的,每个地图都由几百个小物体组成,所以四个地图应该是由两千多个物体组成的,刚开始我想着要不合并模型...原创 2020-04-02 22:13:37 · 2066 阅读 · 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 · 555 阅读 · 0 评论 -
Unity Image镜像案例
效果:BaseMeshEffect介绍:要做镜像,就要修改Image的网格,所以要继承BaseMeshEffect,实现修改网格的抽象方法。BaseMeshEffect是UGUI源码中的东西,如下:graphic是当前的图形,可以转成Image,表示当前脚本上的Image。ModifyMesh(VertexHelper vh)就是我们要实现的抽象方法了,用来执行修改网格的操作。具...原创 2020-04-01 17:56:24 · 1935 阅读 · 2 评论 -
Unity 用TexturePacker实现自动打图集
需要先去下载texturepackertexturepacker官网:https://www.codeandweb.com/texturepackertexturepacker是一个打图集的软件,不只是适用于Unity,其他的也能用,用texturepacker来打图集比用Unity自带的打图集工具更好用。在Unity中新建一个Editor文件夹,再新建一个AutoTPBuild.cs,通过...原创 2020-03-31 00:52:27 · 1592 阅读 · 0 评论 -
Unity 动态打图集并完成小Demo的实现
为什么要动态打图集比如在英雄联盟中的选择英雄界面,有很多的图标供我们选择,而我们进入游戏之后只需要选择的那两三个图标而已,这是如果我们将所有图标都打成图集,就造成内存浪费,因为我们只需要两三个而已,那么我们有什么办法让我们只将要用到的图标进行打图集,其他的不打进图集吗?有的,那就是动态打图集。效果如下点击下面三个框中的一个,再点击上面十个图标中的一个,就完成了选择图标,一个个选。如何进行...原创 2020-03-31 00:15:32 · 2420 阅读 · 0 评论 -
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 · 356 阅读 · 1 评论 -
unity 接入讯飞语音听写的SDK
获取讯飞语音听写的APPID讯飞开放平台的网址:https://www.xfyun.cn/进入讯飞开放平台注册登录后,创建应用,取得所需的APPID然后找到对应的语音听写的SDK进行下载,我下载后的文件夹名称是Android_iat1140_5e70aa24测试下讯飞自带的SDK效果我们先AndroidStudio创建一个新Empty Activity的工程。然后导入前面下载的SDK里面...原创 2020-03-20 21:14:52 · 1462 阅读 · 0 评论 -
unity 游戏上架Google Play
准备工作1.需要科学上网2.需要申请谷歌邮箱账户(注册出现“此电话号码无法用于进行验证”,这种情况需要用国外的手机号验证。去淘宝搜gmail号关键词找店家解决,一般5元左右)3.需要申请Google开发者4.需要有一张信用卡(Visa master卡),并且支付25美元(或者去淘宝找代付,淘宝搜索Google开发者就可以了)注册开发者developers.google.com 点击...原创 2020-03-06 00:03:51 · 2512 阅读 · 0 评论 -
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 · 304 阅读 · 0 评论 -
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 · 1670 阅读 · 0 评论 -
unity 创建Cubemap的两种方式
Cubemap是一个由六个独立的正方形纹理组成的集合。通常被用来作为具有反射属性物体的反射源。类似与MAX里的HDR属性。创建Cubemap的第一种方式利用编辑器扩展功能进行快速创建。首先新建一个Editor文件夹,在里面创建一个C#脚本,我们可以命名为RenderCubeMap.cs,然后进行编辑,代码如下:using System.Collections;using System....原创 2020-02-07 17:57:30 · 10611 阅读 · 2 评论 -
unity 摄像机跟随主角移动
摄像机跟随(普通版)using System.Collections;using System.Collections.Generic;using UnityEngine;public class CameraFollow : MonoBehaviour{ private Transform playerTrans; private Vector3 offset; ...原创 2020-01-03 17:23:58 · 5336 阅读 · 10 评论 -
unity Lighting属性解析
Environment Skybox Material:天空盒材质 Sun Source:太阳光来源由哪个Light产生Environment Lighting Source:环境光的来源 Skybox 受天空盒子的影响 Gradient 可以选择天空、地平线、地面...原创 2020-01-03 00:19:22 · 1180 阅读 · 0 评论 -
unity小知识点总结
易遗忘的知识点笔记TransformPoint和InverseTransformPointTransformPoint 是变换自身坐标到世界坐标 ,InverseTransformPoint 是变换世界坐标到自身坐标比如说物体A的坐标内有一个3,3,3的点 你想知道这个点在世界坐标的位置 就应该用TransformPoint反之在世界坐标下有一个点 你想知道这个点如果是在物体A的坐标下是...原创 2019-12-13 15:29:07 · 2063 阅读 · 0 评论 -
unity CombineMeshes合并网格
mesh和sharedMesh的区别因为下面要用到sharedMesh,所以我们先来了解一下mesh和sharedMesh有什么区别。mesh:mesh改变的话,会新建一个mesh出来,再进行赋值,原mesh不会被改变,这使得内存增加。sharedMesh:sharedMesh改变的话,原mesh也会被改变,但不会使得内存增加。sharedMesh是公用的,是引用传递。而mesh是值传递,...原创 2019-12-09 17:45:53 · 894 阅读 · 0 评论 -
Unity中生成无缝衔接的地图,并用编辑器扩展轻松生成几套障碍物方案
无缝衔接的地图我现在有四个地图,名字分别为Pattern_1、Pattern_2、Pattern_3、Pattern_4,然后计算地图的长度,我的是160,每次进行无缝衔接的时候,只需将要生成的地图在当前地图的基础上加上160即可进行无缝衔接了,然后每次都是随机生成一个地图进行衔接的。代码如下:由于地图是无缝衔接的,要经常生成地图,然后销毁地图的,但这样做,性能不太好,所以下面也用到了对象池...原创 2019-12-09 10:46:01 · 2607 阅读 · 3 评论 -
Unity MVC框架的搭建和使用
什么是MVCMVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中...原创 2019-12-08 23:05:41 · 1964 阅读 · 2 评论 -
unity 创建一个声音播放的单例
这个声音播放的单例非常好用,创建完之后,只需要传递声音的名字,一句代码就可以播放声音了,下面是实现播放背景音乐和短音效的代码:using System.Collections;using System.Collections.Generic;using UnityEngine;public class Sound : MonoSingleton<Sound>{ pr...原创 2019-12-05 17:03:37 · 560 阅读 · 0 评论 -
unity对象池的使用
对象池的用法和意义为什么要用对象池,它有什么用呢?它一般用在哪些方面呢?比如,你要制作一个射击类游戏,射击肯定要经常发射子弹吧,如果你不使用对象池,那么你每发射一颗子弹就要实例化一颗子弹,之后还要Destroy销毁掉,不断的实例化和销毁,是非常消耗性能的,小游戏还好,如果是比较大点的游戏,很容易造成卡顿现象,这样玩家肯定就不乐意玩了。又比如跑酷游戏,游戏中会反复的生成金币和障碍物和道具,如果也是...原创 2019-12-05 16:30:29 · 522 阅读 · 0 评论 -
unity单例模式模板
单例模式使得整个整个工程中只存在一个实例,非常好用。如果在一个工程中,有几个脚本需要实现单例模式的话,最好是使用单例模式的模板,而不是每一个都写同样的单例代码。在每一个需要实现单例模式的脚本继承单例模式的一个模板就变成单例模式了,非常简单方便。具体代码如下:using System.Collections;using System.Collections.Generic;using Unit...原创 2019-12-05 15:26:48 · 778 阅读 · 0 评论