自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Unity打开Package目录下cs代码显示杂项文件的解决办法

Unity2018以后,很多功能都是以package的形式添加到项目里的。但是我们经常需要查看package中的代码,来查看unity内部的实现。但是当我们直接打开使用VS来打开这些文件的时候,往往它们都是杂项文件。这样对我们查看这些代码的结构会很不方便。 首先,我们要明确几个目录和文件: 1...

2020-02-10 19:41:45 227 0

原创 Unity Compute Shader的一个简单完整的示例

代码示例简介 这个例子是 新建一个数组,这个数组里的值在GPU中进行一次计算,并把结果保存回CPU,最终输出出来。代码如下: c#脚本: using System.Collections; using System.Collections.Generic; using UnityEn...

2020-01-08 14:17:05 133 0

转载 转 针对移动端TBDR架构GPU特性的渲染优化

TBDR(Tile-Base-Deffered-Rendering)是现代移动端gpu的设计架构,它同传统pc上IR(Immediate-Rendering)架构的gpu在硬件设计上是差别很大的。手游正是运行在这些移动端的TBDR架构上,所以手游的渲染优化在硬件的角度上讲有其独特之处,甚至一些特点...

2019-11-23 14:06:29 29 0

原创 项目性能优化记录随笔

内存 初始打出包后,发现闪退极其严重 。在手机上实测发现是内存问题。 1.开始查美术资源。发现因为项目要快速出效果,美术制作场景时使用了各种尺寸超大的贴图,且并未压缩,导致内存轻松超过警戒线。 2.代码框架。因为之前资源AB包卸载的时机是监控当前手机内存红线,而这个红线是一个配置值。其他时候加载过...

2019-08-15 11:32:52 37 0

原创 官方AnimationInstancing功能使用小结

AnimationInstancing插件是官方推出用来处理GPU渲染骨骼动画的一个插件。具体不表。 由于项目需要,目前需要有同屏将近200个单位同时上场战斗,每个单位都使用了骨骼动画。由于传统的SkinnedMeshrenderer组件是不能合批的。如果使用传统的方式,势必会有draw cal...

2019-07-02 21:42:01 577 1

原创 Unity 可编程渲染管线 LWRP 的详细步骤

这篇文章的主要内容是讲Unity的内置可编程渲染管线LWRP的渲染流程。即这一帧内从开始到结束所经过的渲染步骤。 由于版本时效性,我写博文时所用的Unity版本和LWRP的package版本分别是: Unity版本:2018.3.0f2 LWRP的版本为:4.1...

2019-03-04 20:48:11 4512 0

原创 一些编码经验总结随笔

这篇博文的内容是关于在平时实现需求时,如何写出易于理解和阅读的代码的一些总结。这篇总结是基于最近读了《代码整洁之道》这本书而有感而发。讲道理,我自己平时在写代码的时候也是图快,求快,面对频繁变化的需求,有时候也会只求完成需求,而让代码越来越一团糟,导致后面几乎很难维护。希望写这篇博客能够督促自己以...

2019-02-15 15:16:16 96 0

原创 Unity2017 优化总结

Unity2017游戏优化总结 前言          “过早的优化是万恶之源”。 在问题成为真正的性能瓶颈之前,不要为了优化而优化。首先定位到了真正的性能问题,再从相应的问题出发,去解决性能问题。          在Unity中,我们可以通过引擎提供的工具Profile 和 Frame...

2018-08-30 15:20:50 2499 0

原创 四元数的学习笔记

        在平时的开发中,经常会遇到旋转的操作,也因此经常会接触到四元数的相关概念。但是,这个概念说难不难,但是理解起来也挺费劲的。        我经常会使用到四元数,但是每次使用时都会查资料,当时理解了概念,但是过两天又忘记了,当再次使用的时候,又要重新查资料。挺蛋疼。于是就写一篇博客,...

2018-05-25 22:03:18 653 0

原创 深入浅出Timeline之Timline的编辑器扩展

        自unity2017发布以来,Unity的内置Timeline功能被应用到游戏开发中的各个领域环节,对于制作过场动画,连续的游戏剧情表现或者某些演示动画都有非常重要的作用。        一般Timeline里面,除了最常用的Animation Track , Activation...

2018-05-17 20:58:37 2124 1

原创 加载prefab来替换加载烘焙后的场景

    平时在项目开发过程中,要加载游戏对象时,经常使用加载一个prefab来代替加载整个场景。做法是:把场景里的所有对象都放置到一个根GameObject上,然后将这个GameObject保存成为一个Prefab。然后再在代码中加载这个prefab来达到生成切换场景的作用。    但是,如果如果...

2018-03-15 11:49:38 1387 0

原创 Unity游戏换装

原理:  将一个模型拆分成多个skinmesh renderer,然后写一个脚本将它们分别赋值。最终通过零散的skinmesh最终组合成一个全新的 mesh,最终达到实现一个新的模型,达到换装的目的。参考代码如下: using UnityEngine; using System.Collec...

2018-02-06 22:20:06 547 0

原创 Unity游戏开发优化事项

此篇博客内容均根据Unity官方文档内容翻译并总结而来。官方文档的目录为: UnityManual ---->Bset Practice Guide ----> Understanding Optimization in Unity ----> General Optimiza...

2017-12-16 16:38:55 314 0

原创 Unity 全局雾效Shader:基于摄像机距离的雾效渲染

写在前面的话: 这个雾效大部分代码源自 冯乐乐的书籍:Unity shader 入门精要。 在书中的示例代码中,主要基于了屏幕高度,而对屏幕进行雾效的渲染。我将其中的部分shader代码修改后,实现了基于摄像机距离的雾效渲染。先解释雾效shader代码的原理: 雾效的...

2017-12-14 16:59:47 2094 0

原创 Unity中SetPassCall, Batches的区别,它们与Draw call 的关系

先放官方对于Draw call batch的解释:https://docs.unity3d.com/Manual/DrawCallBatching.html   在Unity 的优化中,我们经常说要优化Draw call。但是我们在Unity 的视图里的 stats窗口里,看到的与dra...

2017-11-29 21:46:48 11304 0

原创 玩转Unity中的ML-Agents 机器学习(三):BallacceBall 案例训练

转载注明出处,QQ群:142617170 , 欢迎进群交流!运行Unity 的ML-Agents所需要的环境都搭好之后,就可以实际探索工程内的官方案例。这一篇我们以官方工程内的3D BallanceBall 案例来说明整个机器学习的流程以及在这个过程中博主所遇到的一些问题。随着新的ML-Agent...

2017-10-11 18:48:20 4280 4

原创 玩转Unity中的ML-Agents 机器学习(二):Unity环境搭建

转载注明出处Unity 机器学习交流群:142617170    欢迎大家入群交流随着ML-Agent v0.3 版本的更新,对博文中的许多内容做出修改这篇博文是根据Unity ML-Agents 的官方github中的readme里总结而来,英文好的同学可以直接移步github,具体网址如下:h...

2017-10-10 20:26:30 3127 0

原创 玩转Unity中的ML-Agents 机器学习(一):系统环境安装

2018年4月17日更新--------------------------------------------------------目前github官方主页上ml-agents已有中文翻译,传送门是:    https://github.com/Unity-Technologies/ml-ag...

2017-10-09 11:28:42 7311 1

转载 玩转Unity资源,对象和序列化(下)

本文将从Unity编辑器和运行时两个角度出发,主要探讨以下两方面内容:Unity序列化系统内部细节以及Unity如何维护不同对象之间的强引用。另外还会讨论对象与资源的技术实现差别。 译注:除非特别说明,下文中所有的“资源”均指代“Asset”。 本文内容是理解在Unity中如何高效加载...

2017-09-29 15:38:05 275 0

转载 玩转Unity资源,对象和序列化(上)

本文将从Unity编辑器和运行时两个角度出发,主要探讨以下两方面内容:Unity序列化系统内部细节以及Unity如何维护不同对象之间的强引用。另外还会讨论对象与资源的技术实现差别。 译注:除非特别说明,下文中所有的“资源”均指代“Asset”。 本文内容是理解在Unity中如何高效加载...

2017-09-29 15:37:06 420 0

原创 Unity接入安卓SDK方法

接入SDK的本质上,就是我们需要在Unity中开发游戏时,用到别人提供的功能,比如说:QQ登录,微信分享,支付,广告等功能。因此,我们需要在Unity中调用别人开发的功能,来嵌入到自己的游戏中。这里,我们接入SDK的方法使用Unity的Plugin方式。其本质类似于我们将安卓的库导入到unity中...

2017-08-10 21:34:09 997 0

原创 Unity开发游戏优化相关

这篇文章的内容就是从群里的朋友截图那里看到的。顺便保存在博客里

2017-07-27 13:07:18 284 0

原创 Unity2017 Timeline使用初探

转载请注明出处。 有任何问题可以留言或者在我的微博中留言。 新浪微博: @圣毛毛Timeline功能 是 Unity2017 版本中非常重要的一个功能,它的功能也十分强大,我们在这里只是初步的介绍我们在游戏开发中Timeline的基本使用方法。需求Unity版本: Unity2017 版...

2017-07-15 15:52:09 15829 3

原创 c#中利用结构体进行socket传输数据

using System.Collections; using System.Collections.Generic; using System; using System.IO; using System.Runtime.Serialization; using System.Runt...

2017-06-27 15:05:38 866 0

原创 深入浅出计算机系统运行原理

计算机的作用对现在所有人来说都是非常重要了,我们的平时生活片刻都离不开它,但是我们谈到计算机原理的时候,又总是一头雾水,想了解时碰到那么多专业名词又两眼一抹黑,不知道计算机运行的原理到底是啥。今天我们就用非常贴近生活的例子来类比计算机的运行原理,帮助我们更好的了解它。     也许我们大...

2017-06-15 21:59:54 10573 5

原创 Unity2D 官方骨骼动画Anima2D使用方法

转载请注明出处。

2017-05-20 12:44:11 28648 8

转载 【转】Unity 协程

作者ChevyRay ,2013年9月28日,snaker7译 原文地址:http://unitypatterns.com/introduction-to-coroutines/ 在Unity中,协程(Coroutines)的形式是我最喜欢的功能之一,几乎在所有的项目中,我都会使用它来控制运动...

2017-05-16 17:22:53 617 0

原创 Unity切换场景淡入淡出效果

在制作游戏时,我们在切换场景时经常需要增加一个淡入淡出的效果。这里,我们利用Unity自带的动画系统制作一个场景的淡入淡出的效果。步骤如下: 1.在游戏中新建一个游戏对象,给游戏添加一个GUITexture组件,并设置好相关的参数后,制作成prefab。如下图:![这里写图片描述](http://...

2017-05-03 16:54:47 7185 0

原创 堆和栈的功能简述

我们在进行语言学习时,经常碰到内存的问题,这篇博文是简要的阐述内存中堆和栈的相关知识。 通过今天的学习,我们知道,运行时,内存一般分为若干部分,但是最重要的两部分是堆和栈。首先说堆。在代码执行的过程中,堆中主要存放引用类型的对象。简单的来说,任何需要new出来的对象,都是存放在堆内存中。再次说栈。...

2017-04-25 00:22:12 415 0

原创 Unity自定义Inspectors

在Unity中,有时候需要自定义脚本在inspector中的显示,具体操作如下: 1.首先我们要在Editor文件夹下建立一个脚本,范例如下:using UnityEngine; using UnityEditor; using System.Collections;[CustomEditor ...

2017-04-22 16:55:54 458 0

原创 GameObject.instantiate 生成继承自其他的gameobject的问题

假如我们目前有A和B两个gameobject,其中B继承自A。 此时,如果我们在游戏中用GameObject.Instantiate方法来克隆一个B时,程序会执行A中的Awake方法。 这是一个unity 的底层的实现问题,没法改变。因此得紧记。

2017-04-07 13:35:28 655 0

原创 简易的EventManager实现

首先,这篇博文是参考了http://blog.sina.com.cn/s/blog_5b6cb9500102uypp.html 这个文章作者的思路而设计的。经过自己的理解后,模仿了一个消息系统给自己用,下面谈谈对这个系统的认识和看法。我所制作的EventManager的核心是: 1.把我...

2017-03-30 15:27:24 552 0

原创 Source Tree与Coding.net进行异地开发

Source Tree 是一个git工具,可以用来异步开发以及异地开发。 SourceTree用来作为客户端,Coding.net网站作为服务器。 首先在Coding.net上新建一个项目,然后在本地下载一个SourceTree软件,然后将Coding.net上的项目地址输入到SourceTr...

2017-03-28 17:35:31 460 0

原创 简易的AudioManager实现

功能描述: 1.此AudioManager做成1个单例,在使用单例的时候会先判断场景中有没生成对应的GameObject,若没有,则生成一个。 2.建立2个AudioSource,一个用于播放游戏背景音乐,一个用于播放游戏音效 3.AuidioManager中制作如下...

2017-03-24 18:10:00 284 0

原创 c# 监控一个变量数据改变之Get;SET

在平时编程中,我们总是想着监控一个变量的值,当它的值到达一定条件时,我们就执行一些操作。虽然我们在Unity的Update()函数中时刻监控也能达到这样的效果,但是太浪费效率了,因为那样每帧都会执行一次判断和检测,那有没有什么方法可以只在变量改变的时候才检测它的值有没有达到我们所设定的条件呢。 答...

2017-03-23 15:58:22 6515 0

原创 新知识点:EventHandler学习

EventHandler 是事件定义的的一种,它拥有两个参数,一个是Object 类型的sender , 另 一个是继承自EvebtArgs的参数e,一般它的写法如下:using UnityEngine; using System.Collections; using System;/// <...

2017-03-22 23:39:40 605 0

原创 Roguelike游戏设计(一)

Roguelike类型的游戏是最古老的游戏类型之一,玩家只有一条命,死亡了,游戏就重新开始。比较出名的类似游戏有《魔塔》等。 这类游戏的随机性非常强,玩家不知道会发生什么事情,这样也会是游戏的乐趣所在。并且玩家也会随着游戏的进行会有很多选择。 但是要设计该类型游戏的数值,必须先定位这类型游戏的...

2017-03-17 00:15:35 1924 0

原创 简易的SaveManager实现

简述:这里我们使用c#中的序列化来实现数据的存储和读取。 功能简述:保存时,我们将我们要保存的数据序列化后,新建一个文件保存起来。 读取时,我将我们要读取的数据反序列化,然后读取出来,代码如下:using UnityEngine; using System.Co...

2017-03-15 23:40:07 467 0

原创 实现简易的PoolManager

简述:实现一个简易的PoolManager为游戏中生成对象节省内存。PoolManager做成一个单例。 功能简述:游戏中需要生成某些对象时,会先从pool中查看有没有这个对象。如果有的话就,就直接设置池子里这个对象的状态;若没有,则将该对象的状态设置成false。下面就是一个最最最基本的Pool...

2017-03-14 22:55:05 507 0

原创 第一篇博文

Hello World!

2017-03-13 21:00:07 164 0

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