自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

XM肖牧

你好世界

  • 博客(29)
  • 资源 (1)
  • 收藏
  • 关注

原创 Unity3D相关知识点笔记汇总

这篇文章将作为一些平时的小知识点笔记来记录,如果有错误望指出来,也欢迎大家在评论底下分享你们的笔记。1.检测点击或者触摸到UI。 public static bool CheckClickUI() { bool isClickUI = false; if (Application.platform == RuntimePlatform...

2018-09-19 17:02:09 3943 3

原创 Unity2017新功能Tilemap地图编辑器的数据拓展和动态生成

在我来4399之前的上一家公司,我做了一个2D的对战游戏,地图编辑器的做法是用格子图片的预设一个个拼接成一张地图,每个格子上可以设置该格子的数据,比如图片名字,tile坐标,是否可通过,是否可销毁,是否是陷阱等等,具体做法就是把所有图片的预设都编一个id,然后在当前tile上填上对应的id,最后保存成一个json文件,在游戏里面动态生成。以你们的想法,你们会觉得这种做法合不合适?反正在我看来,...

2018-05-21 15:59:26 19993 21

原创 Unity VideoPlayer视频播放器

挺久没有写博客了,这是2020年的第一篇博客,先说说写这篇博客的原因吧。去年下半年负责一个新项目,项目里面有需要播放大量视频的需求,由于Demo时间比较紧急就没有下功夫去做这块。问题1:改变视频进度时进度条出现回滚。问题2:改变视频进度时出现音画不一致问题,音频较视频有延迟。问题3:开发周期小,时间紧急,代码不规范。马上就要春节放假了,赶在了放假之前把关卡都完成了,今天有空就重...

2020-01-21 20:24:44 7460 7

原创 Unity2018引用System.Windows.Forms.dll发布报错

Unity 2018发布到PC平台,要用到打开选择文件界面,需要引入System.Windows.Forms.dll打开Visual Studio,选择菜单栏“项目>添加引用”,找到Unity的安装路径,选择\Editor\Data\Mono\lib\mono\2.0\System.Windows.Forms.dll然后再把System.Windows.Forms.dll导入Un...

2019-10-14 17:16:52 3013 1

原创 AES加解密

using System;using System.Security.Cryptography;using System.Text;using UnityEngine;public class Test : MonoBehaviour{ void Start() { string key = GetRandomString(32); s...

2019-10-10 17:56:18 310

原创 Unity UGUI同时支持点击和拖拽的组件

今天整理需求,有一些UI拖拽的功能,之前看到项目是用Rect.Contains()来判断UI的区域,但是这个方法需要根据分辨率处理。我看到很多文章写得都有点复杂了,各种计算各种转换,我的脚本非常简单,同事支持点击和拖拽,希望可以帮到需要的小伙伴。using System;using System.Collections;using System.Collections.Gener...

2019-09-24 10:50:20 1593 1

原创 Unity GUI图片渐变过渡添加抖动算法降低白条分层

由于之前的项目背景运用了大量的渐变过渡效果的大图,使用RGB16压缩格式表现效果很差,特别是渐变过渡的地方出现了很多条纹,最后使用了RGB32的压缩格式,浪费大量内存。TexturePacker Pro里面有个给图片添加抖动的算法FloydSteinberg,表现效果还不错,虽然噪点有点多,但是可以忍受。打开软件TexturePacker,导入图片,在抖动Dithering选择F...

2019-04-29 16:14:44 918

原创 Excel表格转Json和CSharp导表工具

Excel2Json是一款帮助游戏开发人员使用Excel表格来导出数据和数据结构的工具。主要功能支持读取 .xlsx格式的Excel表格; 支持Excel表格多Sheet结构; 直接预览Excel目录,双击可以直接打开Excel表格; 在线预览Json; 在线预览CSharp; 一键导出Json和CSharp;Excel2Json_V1.0.1支持了Excel表...

2019-04-23 17:38:05 2095 1

原创 Unity3D游戏框架之dll反编译和混淆

随着Visual Studio 2019正式版的发布,加上Unity2018.3.x版本的更新迭代,我又有了尝新的欲望了,哈哈哈!借着这个契机,我有了重新整理框架的想法了,就是把框架编译成动态链接库dll,并且我把电脑系统还原了,所有的环境都将是最新的。安装所有最新的环境Visual Studio 2019正式版 Unity2018.3.10(现在不是最新的了) JDK1.8...

2019-04-17 02:29:18 4253 2

原创 Unity3D UGUI Toggle的onValueChanged拦截拓展

Toggle真的是让人又爱又恨,它既有和ToggleGroup组合搭配的方便,又有一些不可控的情况,我就在项目中遇到了一个棘手的问题。我们常常用到Toggle的onValueChanged改变事件,它很方便,即可改变自己状态,又可以通知同一个分组内的Toggle改变对应的状态,但是有时候我们需要判断点击的时候它是否可以被有效的点击并且执行对应的操作,令人失望的是,当你点击的时候onValueC...

2019-04-11 11:50:38 4591 1

原创 Unity性能优化之对象池管理器PoolManager

简介什么是对象池?顾名思义,就是存放实例对象的池子,即缓冲区。一般对象池在初始化时会包含着若干个实例对象,当我们需要时便从池子里取出来,当不需要时便放回对象池里面。使用对象池不需要频繁的产生和销毁实例对象,当对象池中的实例对象不够用时才会继续产生实例对象,这大大的节省了性能。所以在很多频繁使用实例对象的场景中,我们常常可以看到对象池的身影,比如数据库连接池、线程池、任务队列池和大量的游戏场景。...

2019-04-09 15:40:09 3592 1

原创 Unity2018新功能之Packages介绍

博主怀着激动的心情更新了一下Unity2018.2.0版本,听说这个版本很牛逼,更新了很多新的功能。安装完后,打开Unity首先发现和之前版本有所不同的是,Project窗口多了一个Packages的目录,里面有好几个熟悉的名字,像ads,TextMesh。我一开始表示不懂为什么会有个东西:这是什么鬼?!原来这是Unity给我们免费提供的工具包,只要导进来就可以直接用,不用可以删掉,说...

2019-04-02 09:33:29 24182 3

原创 Unity2018新功能之Tiny Mode介绍

目录介绍安装使用创建实体组创建实体创建自定义组件创建预设项目资源的生成报告和常规的Unity开发模式的差别脚本介绍Unity 2018.3.0发布之后我便迫不及待的体验了一把Tiny Mode。那什么是Tiny Mode呢?Unity的Tiny Mode提供了一个全新特性的运行时,让我们可以在UnityEditor中创建小型轻量级HTML 5游戏...

2018-12-15 23:30:45 12492 4

原创 优质代码编程

这篇文章是 夏桑老中医(巨人网络的帧同步大佬) 整理分享给我的,我觉得有必要分享一下,都是经验,大学的课本根本没有的。 1. 保持松散耦合1.1 耦合度表示类与类之间或者子程序与子程序之间的紧密程度。1.2 松散耦合设计创建出小的,直接的,清晰的类或者子程序,使它们与其他类或者子程序之间的关系尽可能的灵活。(如火车车厢之间的连接就是松耦合)1.3 松耦合设计的标准规...

2018-11-23 11:59:18 1258 2

原创 Unity2018新功能之Entity Component System(ECS)二

在上一篇文章里,我们简单的介绍了ECS的概念和Entities的使用方法,我将在这篇文章中继续深入讲解ECS的框架。Unity2018新功能之Entity Component System(ECS)一首先我们先来看下面这一张图。这是我通过ECS框架创建出来的5万个Cube,FPS基本稳定在30左右,因为默认是实时光照,所以渲染压力有点大,这不是我们这篇文章的讨论范围。 为什么E...

2018-09-21 18:13:21 7608 7

原创 Unity2018新功能之Entity Component System(ECS)一

Entities介绍Entities是Unity2018新引入的一个全新游戏设计框架,我们称之为实体组件系统(Entity Component System,简称ECS),它的出现使我们能够集中精力解决实际问题:构成游戏的数据和行为。它利用了C# Job System和Burst,使我们能够充分利用当今的多核处理器。通过从面向对象的设计转向面向数据的设计,我们将更容易重用代码,也更容易让其他人...

2018-08-30 14:21:32 13457 3

原创 Unity2018新功能之2D Pixel Perfect 2D完美像素

2D Pixel Perfect介绍2D Pixel Perfect(2D完美像素),包含一个Pixel Perfect Camera(完美像素相机),可以确保像素图片在不同的分辨率下都能保持清晰的像素效果。2D Pixel Perfect的安装点击菜单Window > Packages Manager > All,选择2D Pixel Perfect,然后点击Instal...

2018-07-25 20:23:43 20401 5

原创 Unity2018新功能之2D Animation2D动画

新版本中引入不少2D的新功能,我们打开资源包管理器,可以看到2D Animation,2D IK,2D Pixel Perfect,2D SpriteShape等等。我们先来讲讲2D Animation的功能。2D Animation的安装点击菜单Window > Packages Manager > All,选择2D Animation,然后点击Install按钮安装。...

2018-07-21 15:21:49 29196 5

原创 Unity2018新功能之Preset预设

Preset(预设)我们都知道,Unity里面的预设叫Prefab,它保存了一个对象所有的属性,包括所有子对象的属性。新版本中添加了一个叫做Preset的预设,Preset保存了该属性的信息,包括Component,Asset Importer和Scriptable objects。创建和使用Preset点击Preset小图标后弹出一个Select Preset的窗口,我们可以点击...

2018-07-20 17:37:53 8053

原创 Unity3D UGUI Button同时监听点击事件和长按事件

有些游戏都会有这样一个需求,比如一个按钮点击可以进行攻击,长按又可以释放技能的需求。我们做一个类似Button的组件,只需要挂载到相应的按钮上面,即可像Button一样注册长按事件。1.我们新建一个脚本RepeatButton,继承接口IPointerDownHandler, IPointerUpHandler, IPointerExitHandler,获取相应的按下,抬起,结束等事件。using...

2018-06-28 16:25:50 7283

原创 Unity3D简单的帧同步方案

公司的游戏准备上线了,我呢也在准备新项目,这几天看了一下策划文档,写了整体流程和需求接口的代码,终于有一点点时间来写自己的博客了。今天我们就来讲讲帧同步吧。...

2018-06-04 11:05:44 6838 1

原创 Unity3D基于事件机制的消息系统

又到了周末时间,今天没有去公司赚加班费,在家里好好休息一下?不存在的,这辈子不写代码是不存在的!今天我们来讲讲消息系统。很多刚入行的小白同学在处理类与类之间的关系时,总是比较简单除暴的处理,直接把那个类引用到这个类,把这个类引用到那个类,最后造成很多类相互引用,形成一个复杂的蜘蛛网式的引用关系,这就是代码的耦合。那这个又有什么关系呢?那么我们就通俗的讲一下这个问题。打个比方,同学们的期末成绩出来了...

2018-05-26 22:37:05 9414 3

原创 Unity3D简单的UI系统

Unity3d的ugui如果用得不好,非常的影响性能,可能很多人都不知道,其实ugui是基于网格模型渲染的,一个ugui组件就是一个Mesh,ui组件的Material为空,其实他是用了默认的Material,我们在运行游戏的时候Canvas回把所有ui的Mesh合并成一个大的ShareMesh,用于渲染。所以一般情况下,ui的DrawCall会比较少,但是不一般的情况下,我们会用到动态的ui,导...

2018-05-24 21:47:52 10347 1

原创 Unity3D用状态机制作角色控制系统

为了让读者对本文知识点有一个比较清晰的了解,我制作了一张图结构图,如下图,图中以移动为例子简单的描述了状态机的基本结构,本文不对角色控制系统做全面的讲解,只对状态机的在角色控制系统中是如何运用的。1.我们先从Actor讲起。Actor作为角色脚本的基类,承载着角色的基本属性,包括角色id,移动速度,坐标等等,因为我们这里讲的是用状态机来控制角色,所以角色的属性还包括角色的当前状态,所有状态,状态类...

2018-05-24 11:42:41 17830

原创 设置JDK和SDK的环境变量

===================================JDK=======================================1.系统变量→新建 JAVA_HOME 变量 。变量值填写jdk的安装目录(本人是 E:\Java\jdk1.7.0)2.系统变量→寻找 Path 变量→编辑在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin...

2018-05-24 10:16:36 1797

原创 UGUI获取Text文本的绘制长度

/// <summary> /// 获取文本的绘制长度,不同于text的rectTransform.sizeDelta /// </summary> /// <param name="str">文本</param> /// <returns></returns&gt

2018-05-24 09:58:09 3339

原创 Unity3D开发中操作SVN

using UnityEditor;using UnityEngine;public class SVNExpand : Editor{ /// <summary> /// 项目资源地址 /// </summary> static string SVNProjectPath = Application.dataPath; s...

2018-05-23 17:03:06 677

原创 Unity3D打印拓展XMDebug

unity3d自带的Debug用起来是在是恶心,打印多个变量需要用“+”来连接,还要用空格来区分隔开,简直恶心到不要不要的。我自己写个Debug的拓展,方便代码打印。1.自定义打印颜色;2.可变参数;3.全局控制打印输出。// **********************************************************************// Copyright (C...

2018-05-21 16:38:16 522 1

原创 Unity3D创建C#自定义模板快速实现基类接口

根据模板类,我们可以快速的创建一些我们想要的脚本内容,比如我们有接口要在子类上实现,就可以写一个对应的模板,每次创建脚本就会帮我自动实现接口,特别是在UI脚本上经常需要用到这个需求。c#模板类// **********************************************************************// Copyright (C) XM// Author:...

2018-05-21 16:23:26 2422

Excel2Json导表工具

Excel2Json是一款帮助游戏开发人员使用Excel表格来导出数据和数据结构的工具。 主要功能: 1支持读取 .xlsx格式的Excel表格; 2直接预览Excel目录,双击可以直接打开Excel表格; 3在线预览Json; 4在线预览CSharp; 5一键导出Json和CShgrp;

2019-04-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除