
unity
文章平均质量分 69
HelloMingo
既然天注定,我们各自修行。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Unity URP SRPBatcher踩坑记录
SRPBatcher是对相同shader材质进行渲染优化的一种方式,这里不介绍使用方式,只针对在使用过程中遇到的坑点进行记录。关于:Node use different shader keywords因为使用了不同的keywords导致了batch中断,首先应该检查mat设置使用的keywords是否一致。但既然是坑,就不可能这么简单解决。状况1:检查以后发现mat设置相同,把shader中的所有keywrod都关掉,保证shader只有一个变体,结果也还是报这个信息。问题原因:美术在制原创 2021-10-13 17:28:26 · 6830 阅读 · 3 评论 -
Unity特效性能测试小工具
闲来准备了一个批量自动化测试特效性能的小工具,导出的是txt文本,后续有时间升级到excel表格。using System.Collections;using System.Collections.Generic;using UnityEngine;using System.IO;using System;using Random = UnityEngine.Random;public class EffectProfTest : MonoBehaviour{ /// <原创 2021-09-19 21:53:07 · 762 阅读 · 1 评论 -
Unity+Android替换默认启动类UnityPlayerActivity.java
*本文中的方案,适用于支持Java文件打包的Unity2018.2及以上版本。Android项目都会有一个默认启动类,通过Unity打包成AndroidStudio项目后,可以看到,在主包下面会有一个文件UnityPlayerActivity.java,这个就是Unity打包的工程的默认启动类。一般来说,这个类是不需要修改的,但是我就遇到了特殊情况...在接入第三方平台SDK的时候,因为某些原因,需要设置Activity的启动模式为sigleTop(Unity默认设置为sigleTask)。然而原创 2020-06-04 20:59:12 · 7006 阅读 · 0 评论 -
Unity+.NET3.5+Android的TcpClient的一个BUG
如果你遇到了以下描述的情况,很可能是这个Bug导致的:客户端在断开上一个连接以后,开启下一个连接,新连接读取到的数据发生错误 条件同上,Stream一直处在read阻塞中,所需要的数据读取不全 条件同上,网络通信奇奇怪怪问题的具体原因经过两天的秃顶式测试,现总结如下:使用TcpClient进行Socket连接以后,通过Read方法进行数据的读取,Read方法属于同步操作,当缓冲区没有...原创 2020-04-16 20:05:52 · 500 阅读 · 0 评论 -
Unity内存管理之GC
Unity中的System.GC是.Net提供给开发人员用以控制垃圾回收的方式。但是GC(garbage collection)的发展历程并不是从.Net开始,相比于.Net,GC的历史要悠久的多。虽然在本篇中我们要讨论的是.Net的GC,但是有必要强调的是,GC是一种思想,一种机制。GC是什么Garbage consists of objectsthat are dead....原创 2019-12-18 14:14:38 · 1528 阅读 · 0 评论 -
Unity脚本生命周期总结——内置事件方法执行顺序详解
前言这篇贴子的内容主要信息来源是Unity的官方文档Version2019.2:https://docs.unity3d.com/Manual/ExecutionOrder.html也会根据这些年自己的开发经验,谈一些自己的看法和小技巧。就算初级Unity程序员也应该知道的Unity的内置事件方法很多,最基础的也是最常用一些,列举如下:方法名(按单次执行顺序排列) ...原创 2019-12-13 18:29:47 · 1195 阅读 · 0 评论 -
Unity的静态批处理和动态批处理
什么是批处理为了将物体绘制到屏幕上,引擎必须向图像API(例如OpenGL、Direct3D)发送一个draw call指令。每一次draw call就可以大致理解为一个渲染批次(batch)。Draw call属于资源密集型的指令,图形API要为每个Draw call做大量的工作。造成CPU性能消耗的主要是渲染状态的切换导致的,例如切换到不同的材质,这会导致在图形驱动中产生密集的资源验证和切...原创 2019-12-05 18:32:49 · 5983 阅读 · 1 评论 -
Unity渲染流程概述
本篇的任务是回答:在Untiy的渲染流程中CPU和GPU分别做了什么。渲染到设备屏幕显示的每一帧的画面,都经历几个阶段的加工过程:应用程序阶段(CPU):识别出潜在可视的网格实例,并把他们及其材质提交给GPU以供渲染。 几何阶段(GPU):进行顶点变换等计算,并将三角形转换到齐次空间并进行裁剪。 光栅化阶段(GPU):把三角形转换为片元,并对片元执行着色。片元经过多种测试(深度测试,a...原创 2019-12-04 19:58:29 · 12659 阅读 · 0 评论 -
面向对象与设计模式概述
从宏观理解面向对象的特点:提到封装,在身边最常听到的就是为了把功能相似(重复)的代码进行“封装”(伴随着封装往往产生了继承),甚至对类的封装听到的都很少,更不用提抽象层次的封装。封装的目的是使得外部调用只关注使用而非实现过程。但在这里我想强调的是宏观层面的,并不是将功能的实现整理成统一调用的方法和类这么简单,而是通过抽象对类与类或模块与模块之间的关系进行约束。 对于继承,码农想到的就是子类继...原创 2019-11-28 13:35:08 · 907 阅读 · 0 评论 -
Unity拓展Inspector面板之添加自定义Button
Unity拓展Inspector面板之添加自定义Button原创 2017-03-09 17:20:34 · 8483 阅读 · 0 评论 -
unity ugui对场景中鼠标点击事件的遮挡
unity ugui对场景中鼠标点击事件的遮挡原创 2017-04-03 16:47:44 · 5036 阅读 · 0 评论 -
从Quaternion.LookRotation()和Quaternion.AngleAxis()开始
Quaternion提供的这两个方法用起来非常简单,比之前自己用欧拉角计算方便很多。一直以来习惯了使用欧拉角,对Quaternion一直没怎么上心,今天用了一下,还是很爽的。兴致一下子就高涨起来了。也算是从这两个方法开始吧,好好研究一下矩阵和四元数,为后面Shader的学习打下良好的数学基础。原创 2017-04-17 18:34:22 · 5058 阅读 · 0 评论 -
UnityShader太空中的大气层效果
在Unity中实现宇宙中的大气层效果原创 2017-04-21 14:04:20 · 3499 阅读 · 0 评论 -
UnityShader常用设置标签和命令
这篇帖子纯粹是为了记录一下最近的学习内容。并不会讲解什么内容。关于多个Pass执行的疑惑在没有设置标签Tag(如"LightMode"(暂时不知道还有没有其他的))的情况下,全部的Pass都会执行。如果有设置Tag内容,比如"LightMode"=“ForwardBase”,那么就会根据条件进行选择性的执行了。至于怎么选择的,网上帖子很多,不作为本篇重点。关于半透明材质原创 2017-04-23 20:26:23 · 1317 阅读 · 0 评论 -
解析Unity中transform.positon.x不能赋值的原因
用C#实现的代码中,transform.positon的分量不能单独赋值修改,必须对position进行整体修改。这算是个常识,但是至于为什么却从来没有考虑过。有人说是因为xyz分量是只读的。这样的解释纯属瞎猜。进入Vector3里面看一下就知道了,并不是只读的。并且Js实现的代码中是允许单独修改transform.position的分量的。做一组对照试验PositionTe...原创 2017-04-25 20:07:19 · 6320 阅读 · 0 评论 -
Unity Shader之TRANSFORM_TEX方法
TRANSFORM_TEX方法比较简单,就是将模型顶点的uv和Tiling、Offset两个变量进行运算,计算出实际显示用的定点uv。原创 2017-12-13 11:42:37 · 28346 阅读 · 0 评论 -
Unity Shader 自定义SurfaceShader
这里只做记录用,不进行详细的讲解。Shader "Custom/SurfaceShader" { Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Albedo (RGB)", 2D) = "white" {} _Glossiness ("Smoothness", Range(0,1)) = 0.5原创 2017-12-15 18:13:48 · 1482 阅读 · 0 评论 -
Unity 镜头烟雾特效的笔记贴
效果:烟雾缭绕实现思路的探索:最直接的思路就是用粒子模拟,粒子特效特效跟随摄像机,然后布拉布拉的往外喷。效果还可以接受,但是用默认shader实现的粒子特效,会跟墙体地面等场景物品产生明显的接缝。这个问题起始解决起来也比较方便,把默认的粒子shader复制一遍,然后关闭ZTest。但是,虽然这个效果也可以接受,但是,为了压缩这一点点的性能开销,还是像尝试使用UV实现。PS4上看到一款游戏《路弗兰的...原创 2018-06-02 21:59:43 · 6542 阅读 · 4 评论 -
Unity地形切割后打包成AssetsBundle再进行加载的笔记
1.TerrainData文件切割成小块以后,分别打包成单独的AssetsBundle文件,如果不对依赖的资源进行bundleName进行设置,就会出现这部分依赖资源重复打包的问题。单独设置bundleName以后,所有依赖的资源都打包成了单独的文件。解决了资源重复打包的问题。2.资源依赖的信息是记录在.manifest文件里的,但是记录的是绝对路径。因为项目制作过程中是分为1:资源整合项目,2正...原创 2018-05-16 16:22:55 · 2279 阅读 · 2 评论 -
Unity对应各平台的路径配置,跟别人不一样的写法
这是我自己用的一个获取资源路径的方法,跟网上能查到的有些不一样,如果按照其他人的写法不能实现,可以尝试下我这个。原创 2016-06-01 20:34:39 · 1301 阅读 · 0 评论 -
Unity在Scene中自定义3D ICONS
关于方法OnDrawGizmos的初次探索原创 2017-03-13 17:43:16 · 1305 阅读 · 0 评论 -
关于Lerp插值的基本原理和在Unity中的应用
简单的讲解一下其实也很简单的Lerp插值运算。通过这个讲解,希望能传达一种积极的严谨的程序思维。原创 2017-03-22 12:35:09 · 10444 阅读 · 1 评论 -
Unity NGUI对特效的显示范围进行控制
在ngui的ScrollView中如果有特效存在,特效是不受panel裁剪的影响的。那么怎么限制特效的显示范围呢?原创 2017-03-08 13:55:44 · 3281 阅读 · 3 评论 -
Unity Shader实现跳动的心脏
通过shader控制定点,实现心跳效果。原创 2016-07-08 21:02:37 · 3480 阅读 · 0 评论 -
unity游戏在安卓按home或者锁屏键后不能后台运行的结局方案
unity游戏在安卓按home或者锁屏键后,重新打开游戏后,游戏会执行OnCreat()方法,导致重新开始游戏原创 2016-07-19 15:14:38 · 13491 阅读 · 1 评论 -
大光头的shader学习之路-自己写的一个消融效果
一个简单的消融效果和另一个简单的消融效果原创 2016-07-22 23:56:46 · 1756 阅读 · 0 评论 -
unity通过android adb查看真机日志
前几天跑某大公司面试,问我会不会在android真机调试的时候直接输出到控制台,当时有点懵逼,居然不知道控制台是什么东西了,居然理解成了输出到eclipse...我觉得程序没有通过eclipse打包,怎么可能输出到它里面去呢...等面试完了,回公司的路上才回过神来,那个黑框框不就是控制台么!!!adb是androidSDK的一个工具,位置就在sdk目录下的platform-tools文原创 2016-06-23 22:34:16 · 20174 阅读 · 1 评论 -
Unity让调试更加简单(一)
“重视能够节约时间的工具,高效率的程序猿都把时间花在制作工具上“。——Bobby Johnson(原FaceBook技术总监)原创 2016-05-31 21:24:12 · 4255 阅读 · 1 评论 -
unity 调用安卓系统摄像机和相册并对图片进行裁剪(二)
unity 调用 Android 方法,打开系统默认相机app和系统相册。原创 2016-05-17 16:30:36 · 2756 阅读 · 4 评论 -
unity 调用安卓系统摄像机和相册并对图片进行裁剪(一)
这是本人从事这个行业以来的第一篇技术博客,一直以来,都是需要什么直接从网上找现成的。但是最近遇到的问题,使我感慨颇多,需求如标题所言,从网上找出来的基本都是雨凇momo的,其他也都是做的微调。但是在做了一些抄袭的尝试后,最终放弃。 作为项目组客户端的主城,一直在抄别人的东西,总感觉有些不上档次,正好借此机会,从安卓开发入手,自己实现如题所示功能。 在进入正题前,原创 2016-05-14 17:59:40 · 6263 阅读 · 0 评论 -
关于游客账户创建的问题
游客账户的创建需要与设备进行绑定,这样才不会再更新或者玩家误删文件时导致的信息丢失原创 2016-07-05 11:37:36 · 7134 阅读 · 1 评论 -
Unity Shader自定义光照模型
前几天去一家公司面试,因为简历上写着“能写简单的Shader”,就被问了一个问题:怎么自定义一个光照模型?直接懵逼了,隐隐约约能联想到的什么漫反射光+镜面反射光+环境光...难道是这个?光照模型就是#pragam surface surf Lambert里面的那个Lambert呗?这不都是写好的吗?还能自定义啊?!本着“程序是严谨的”的心态,宁可说不知道,也不能瞎说。。。今天有空,抓紧学习原创 2016-08-14 23:38:48 · 4894 阅读 · 0 评论 -
Unity实现自己的事件机制(简单实现)
事件机制广泛应用于mvc模式中,灵活的事件机制能够弥补Unity中的一些缺陷,比如协程的执行。因为协程不能返回值,也不能通过out或者ref传递。通过事件机制,可以知道协程执行进度并且返回执行结果。当然,这只是个举例,也只是我习惯用的一种方式。如果有更好的实现方式,希望不吝赐教。所有要接受事件的脚本,都要继承这个事件手柄的接口/// /// 事件手柄/// public原创 2016-09-26 12:36:50 · 10786 阅读 · 0 评论 -
Unity+NGUI 的层级和深度的各种关系及调整
unity和NGUI的各种层级关系整理原创 2016-05-31 20:36:02 · 10005 阅读 · 1 评论 -
Unity中对C#泛型<T>的使用
Unity中对C#泛型<T>的使用原创 2017-03-01 13:13:09 · 3098 阅读 · 0 评论 -
Unity中的ForceMode——纠正《UnityAPI解析——陈泉宏》一书 关于ForceMode的注解
在从网上查找FoceMode的四种方式的不同时,找到的这个内容。看完前面的公式,基本上就明白了官方注释中的continuous和instant的区别。但是自己按照书中的设置写了个例子,却发现结果出入很大。本身我是个文科生,动量定理根本没学过,所以就懵圈了!原创 2017-02-28 21:29:38 · 4819 阅读 · 1 评论 -
Unity根据条件控制Inspector面板中的属性显示
很多情况下,一个组件可调整的属性比较多,但是属性之间又有一定的联系,最简单的,当属性type是类型typeA时,属性width和height才会起作用。这时候,为了界面的整洁和直观,如果type的属性不是typeA,那我们就没必要暴露出width和height属性。原创 2017-02-18 21:04:09 · 17054 阅读 · 10 评论 -
Unity透明材质&(内侧)描边
Unity透明材质&(内侧)描边原创 2016-12-24 17:44:45 · 2589 阅读 · 0 评论 -
关于Unity的LayerMask的实现原理
首先,来确定一件事情,Unity中的Layer只能是32个。不能多,也不能少。因为LayerMask使用的是Int32的32位来标记这32个层。如果是1,就使用这个层,如果是0,就不使用这个层。这样就理解了为什么 1同样~(1注:1.这样写,希望有对位运算一点都不了解的,也大概能明白什么意思,再看不懂,那就自己去看一下位运算的知识吧2.所有的计数都是从0开始的(作原创 2016-08-18 21:10:30 · 2018 阅读 · 0 评论 -
UnityWWW加载文件时下载到了网页内容而非文件内容
重新描述一下问题:本来通过www加载下来的应该是文本里的内容,但是取到的文本内容居然是个html的网页...用浏览器打开输出的网址,可以取到目标信息。一般情况下是不会遇到的,而我已经遇到过好几回了。记下来以便以后提醒自己:一定是地址内容有问题!我遇到的就是因为地址中多了一个\r...事情是这样的,网络请求的地址是从txt文件中读取的,没有原创 2016-11-08 13:15:24 · 1210 阅读 · 0 评论