- 博客(89)
- 资源 (9)
- 收藏
- 关注

原创 [引擎]之六:渲染原理和在Unity3D中的应用分析(花屏处理)
在Unity3D的使用过程中,项目中有可能出现花屏现象。并且,有可能是偶现或者必现的,但这真的是个bug,可以被解决的。 参考《3D游戏编程大师技巧》3.2.1帧缓存和视频系统和3.2.3缓存交换,先搞清楚原理,再对照出现的现象进行分析。(1) 相机渲染原理(2) Unity3D中的应用分析和花屏现象处理(1) ClearFlags与颜色缓存和深度缓存的对应(2) Viewp...
2018-02-09 11:43:18
3713

原创 Unity3d花屏处理
Unity3d花屏处理原文地址:4年前遇到的花屏问题,如今又遇到了。这次通过不断的测试、重现、修改、反思,终于得出了最终原因和最终答案!你的界面花屏了? 去检查一下,你游戏中的相机clearFlag的设置,是不是没有clearFlag设置为SolidColor或者SkyBox的相机? 解决方案: 一定要有一个clearFlag设置为SolidColor或者SkyBox的相机,并且这
2017-08-17 19:17:43
16854
3

原创 Unity3d-Android通信:AndroidJavaProxy
http://docs.unity3d.com/ScriptReference/AndroidJavaProxy.html点击打开链接官方文档中给出的例子有一个小问题:(ps.Unity3d 4.x的官方文档,关于AndroidJavaProxy的文档例子问题很多,最新的基本是正确的)关于AndroidJavaProxy的详细使用,请看链接:http://blog.csdn.n
2016-08-20 16:26:03
2052

原创 Unity-Android通信:AndroidJava 使用Unity c#编写Android程序调用任何方法
Unity3d和Android可以直接用c#编写代码调用;今天实现了在Unity3d 中完全用c#调用android java 实现call 对话框的功能;示例代码如下(可以直接使用):using UnityEngine;using System.Collections;using System;public class AndroidProxyExample : MonoBe
2016-08-20 16:16:52
6170

原创 Unity3d-Android 1s短暂黑屏(原因: 两次Creating OpenGL ES 2.0 context (渲染环境))
Unity-Android,游戏运行之后,总是在Pawered byUnity splash之后,先闪一下黑屏,再出现第一个加载的场景View。在logcat中看信息,发现,第一次开启的时候要创建一个openggl 的view,Creating OpenGL ES 2.0 context (RGB16 565 24/8),然后再做别的。闪黑屏的原因是在创建了OpenGL rendering
2013-10-15 22:01:42
6039

原创 Unity3d-Android花屏处理
原文地址:http://blog.youkuaiyun.com/yanchezuo/article/details/12751917原文地址:https://amazer.github.io/2018/04/02/Unity3d%E8%8A%B1%E5%B1%8F%E5%A4%84%E7%90%86/问题:在切换场景的时候,切换的一瞬间会出现花屏的现象。其实不仅仅是在切换场景的时候,在切换相机的时候也有可能出...
2013-10-15 16:48:13
10297
原创 【Unity3D】Animator采样
Animator采样只需要三行代码:Animator anim;void Sample(time){ anim.Play(0,0,0); // 停止播放动画 anim.Update(0); // 更新当前状态 anim.Update(time); // 更新采样时间到time处}完美!
2020-09-20 14:53:40
862
原创 [Unity3D]水族馆游戏教程七
文章目录0.前言1.事件管理器1.添加EventMgr2.事件管理器的设计思路3.事件管理器的实现4.事件管理器的全部内容2.喂食功能1.喂食功能的设计2.喂食功能的实现1.添加FoodMgr.cs2.添加FoodAI.cs3.FoodAI.cs的全部内容4.制作Food预制件5.设置FoodMgr6.生成Food7.添加FeedFlag.cs8.修改FishAI、FoodMgr、FoodAI、MoveFlag、SpeedFlag、RotateFlag1. 修改FishAI脚本2.修改FoodMgr脚本3.
2020-06-21 17:08:51
1039
9
原创 [Unity3D]水族馆游戏教程六
文章目录0.前言1.Swimming:游动状态2.Float:漂浮状态1.修改SpeedFlag2.修改MoveFlag3.添加Float状态4.修改Swimming3.互动:Escape状态1.添加碰撞2.添加Escape状态3.添加CameraMgr4.总结0.前言目前,FishAI中实现了随机游动。为丰富AI的表现,本篇将给AI添加多种状态:游动状态、漂浮状态、逃跑状态。1.Swimm...
2020-05-03 22:11:49
684
原创 [Unity3D]水族馆游戏教程五
文章目录0.接上篇1.组合模式2.转向控制器1.创建转向控制2.修改FishAI3.移动控制器1.添加移动控制器2.修改FishAI4.动画控制器1.创建动画控制器2.修改FishAI5.当前效果6.总结0.接上篇上篇添加了鱼AI的速度控制器,本篇我们将继续丰富AI。1.组合模式得益于上篇的速度控制器,将速度控制从脚本中单独提出来,一方面,可以使得SpeedFlag只专注于处理速度,另一方...
2020-04-19 21:42:33
665
原创 [Unity3D]水族馆游戏教程四
文章目录0.接上篇1.速度控制器2.修改FishAI3.修改后的效果4.总结0.接上篇上一篇,实现了鱼AI的随机游动、自动转向,并且学习了如何分析调试过程中遇到的报错。本篇将继续优化鱼AI。1.速度控制器上一篇虽然实现了鱼的随机游动,但是可以看到,鱼在转向的时候,会显得很突然。因此先要解决这个问题。我们的思路是,让鱼在刚转向的时候,速度由慢到快,等到游动到快要到达目标点的时候,速度减慢...
2020-04-12 23:16:40
888
原创 [Unity3D]灰度图像Shader
昨天是清明节,也是深切哀悼新冠肺炎疫情牺牲烈士和逝世同胞的公祭日,致敬英雄,逝者安息!希望疫情早日过去!!!看到许多网页,以及一些朋友的微信头像都变成了黑白色的,于是在想,复杂吗?是如何实现的?当输出的RGB值相同的时候,就变成了灰度图。由此可以推测,只要在渲染输出颜色值的地方,将RGB输出为相同的值就可以实现了。假定RGB的值是0~1之间的数,彩色变灰度就是是的函数f(R,G,B)=gra...
2020-04-05 10:48:40
1500
原创 [Unity3D]水族馆游戏教程三
文章目录0.前言1.鱼缸脚本修改2.鱼AI脚本0.前言本次内容,将初步实现鱼的AI的游动。鱼AI作为游戏的核心功能,后续将会对AI进行丰富和优化。但首先,我们先让鱼儿游动起来,给自己一小丢丢成就感!1.鱼缸脚本修改我们希望鱼的活动都是在鱼缸内,并且鱼的出生位置随机,因此,需要先计算出鱼缸的边界范围。在Tank.cs脚本中,添加鱼缸边界位置变量,对外只读不能修改,并且在Awake()方法中...
2020-04-04 19:36:37
1202
原创 [Unity3D]水族馆游戏教程二
文章目录1.资源导入2.meta文件设置3.创建水箱背景4.鱼模型资源设置5.总结1.资源导入现在,我们找一些适用于游戏的资源,主要是鱼类的带动作的模型、水箱的背景贴图、水族箱的背景音乐等。资源的链接地址在文章末尾。资源内容:在工程中新建Audios文件夹和Textures文件夹,把bgMusic.mp3放到Audios下,Lake01.png到Lake05.png放到Textures文...
2020-03-29 22:02:23
1291
11
原创 [Unity3D]水族馆游戏教程一
水族箱文章目录水族箱1.工程创建2.创建水箱3.相机1.工程创建本次教程使用Unity3D 5.5.5f1版本首先,打开工程,创建一个名为Aquarium(水族馆)的工程:在工程中,创建Editor、Scenes、Scripts三个文件夹,分别用来放编辑工具、场景和游戏脚本。默认场景中,有主相机Main Camera和一个平行光Directional Light。先保存当前场景到S...
2020-03-22 21:01:06
2100
1
原创 [Unity3D]相机视野范围OutLine小工具
文章目录1.最终代码2.过程方法1.完全手动进行顶点位置的平移和旋转方法2.使用Gizmos.matrix方法3.使用Gzimos.DrawFrustum1.最终代码某些时候,需要根据相机位置,调整游戏物体的位置。但是不选中相机,就看不到相机的视野范围,因此,添加此小工具。首先,获取相机坐标系的视野范围信息,然后,将Gizmos.matrix设置为相机的。绘制的时候,从camera loca...
2020-03-22 17:32:35
1442
原创 [Unity3D]简单的事件管理器
一个简单的事件管理器任意一个枚举就可以定义事件类型。using System.Collections.Generic;using System;public enum GameEvent{ StartGame, GameOver,}public class EventMgr<T> { private static EventMgr<T&g...
2020-03-15 22:30:04
335
1
原创 [Unity3d]保存相机当前渲染内容或者RenderTexture到本地小工具
项目中,遇到需要将相机当前渲染的内容或者是RenderTexture保存到本地的需求,查看渲染结果是否正确。因此,写了一个简单的小工具,按F4就可以保存到Assets上一级目录。先直接贴代码,有时间再详细解释使用方式是直接将脚本挂在需要的camera上,按F4保存截图。using UnityEngine;using System;using System.IO;public cla...
2020-03-13 10:27:23
4791
9
原创 [Shader]模型沙粒化掉落
参考文章。1.知识要点geometry shader 基于 shader model 4.0的Geometry shader. Vertex -> Geometry -> Fragment #pragma geometry:dx10及以上,可以使用。#pragma target 4.0会自动开启。Shader Model 4.0 DX10中加入的新特性,引入...
2018-05-03 18:40:05
2581
1
原创 [引擎笔记]之二:创建资源以及菜单
1.资源概括2.资源类型和资源加载1 .ico图标资源(ICON)2 .cur光标资源(CURSOR)3 字符串资源4 .WAV声音资源(WAVE)3.菜单资源(MENU)1.创建菜单资源2.加载菜单资源3.响应菜单事件(page 82)1.资源概括资源最终将会被打包成.res文件。 - 自定义资源: - 创建...
2018-04-18 13:16:49
389
原创 [引擎笔记]理论:使用矩阵进行变换
1.使用矩阵进行变换2.使用矩阵进行多次变换矩阵可以用来执行2D/3D变换。(平移、旋转和缩放变换) 1.使用矩阵进行变换P为原始点,P’为变换后点,M变换矩阵,则: P′=P∗MP′=P∗MP'=P*M变换矩阵在最右。同理可以推出,当矩阵变换时: M=M1∗M2M=M1∗M2M=M_1*M_2 这里的原始矩阵为M1,变换矩阵为M22....
2018-04-18 13:14:07
428
原创 [引擎笔记]图形及色彩相关概念术语
转载请注明作者及出处,本文作者为延澈左,本文标题为[引擎笔记]图形及色彩相关概念术语 本文链接为https://yanchezuo.com/en-8.html - 像素 - 分辨率 - 色彩深度(色深) - 隔行扫描/逐行扫描 - 显存 - 刷新速率 - 2D加速 - 3D加速像素光栅式设备(eg.显示器)上的单个可寻址的图像元素(图元) 单个,可寻址...
2018-04-18 13:10:38
325
原创 [引擎笔记]数学:矩阵求三变量方程组
方程组如下: ⎧⎩⎨a00∗x+a01∗y+a01∗z=b0a10∗x+a11∗y+a11∗z=b0a20∗x+a21∗y+a21∗z=b0{a00∗x+a01∗y+a01∗z=b0a10∗x+a11∗y+a11∗z=b0a20∗x+a21∗y+a21∗z=b0\begin{cases}a_{00}*x+a_{01}*y+a_{01}*z=b_0\\a_{10}*x+a_{11}*y+a_...
2018-04-09 13:55:57
949
原创 [引擎笔记]之一:windows/3D游戏运行框架
1.工程配置2.创建Windows窗口0.基础准备知识1.创建WNDCLASSEX结构体2.注册WNDCLASSEX3.创建Windows窗口3.窗口事件和游戏主循环1.处理事件2.主动查询事件3. 游戏主循环流程总结4.完整程序1.工程配置配置为win32应用程序 注意,不是console控制台程序。console控制台程...
2018-04-05 16:31:58
898
原创 [引擎]之七:理解资源以及Unity3d资源加载
0.前言1.《3D游戏编程大师技巧》资源加载总结2.U3D资源加载总结3.总结0.前言 看到一篇关于Unity资源加载入门文章(ps.内容很好),虽然我也算是个资深U3D程序了,但是,还从来没有仔细想过加载资源方面的实现原理。最近刚看完《3D游戏编程大师技巧》,借鉴对书中内容的理解,举一反三分析一下U3D的资源加载...
2018-03-30 18:09:55
448
原创 3D向量叉乘的理解和记忆
1.2D向量的叉乘2.3D向量的叉乘1.2D向量的叉乘U × V = Ux * Vy - Uy * Vx2.3D向量的叉乘3D笛卡尔坐标系的三个坐标轴两两垂直,并且有着如下的关系:x轴向量 × y轴向量=z轴向量y轴向量 × z轴向量=x轴向量z轴向量 × x轴向量=y轴向量即:x轴向量=y轴向量 × z轴向量y轴向量=z轴向量 × x轴向...
2018-03-29 19:17:24
11090
1
原创 [引擎]之三:在Unity中自定义CubeMesh
之前的文章mesh在Unity中的简单使用说过,会创建CubeMesh。嗯,来了。1 顶点的生成2 生成三角面3 生成uv坐标4 看看效果5 理论和对比6 修改7 总结8 预告之前已经知道如何创建一个简单的片mesh,那么同理,CubeMesh的创建,同样是从顶点、三角面、uv坐标三个方面生成。(1) 顶点的生成一个cube只需要8个...
2018-02-09 11:46:16
3376
原创 [引擎]之四:unity中查看简单mesh顶点顺序的小工具——修改
1 添加查看顶点位置和uv信息2 兼容顶点数量和uv数量不同的情况3 添加是否显示信息的选项4 完整代码5 最后这里制作的小工具,功能有点单薄,只能查看顶点的顺序。 在写CubeMesh的时候,需要查看顶点的位置信息和uv信息。 因此,添加这两个功能:(1) 添加查看顶点位置和uv信息在MeshViewerEditor中,添加两个方法,来显示顶点位置信...
2018-02-09 11:17:59
4197
2
原创 vs2017 15.5.4 一切恢复正确
15.5.3版本没有更新,今天更新到了vs2017 15.5.4版本。 dll调试问题和跳转问题都ok了。 终于,可以再次使用vs2017了。但是,仍然有内存方面的问题。在我的一个小工程里面,刚打开的时候,vs占内存128M左右,当我添加一个新的代码后,内存变成了200+M。不断的删除和添加代码,能打到400+M…..
2018-01-17 15:16:20
3164
原创 [引擎]之五:CubeMesh的材质设置
前面自定义的CubeMesh中,设置顶点的uv坐标为0或1。 而贴图只需要左上角一部分,如图所示,只需要红框框住的部分: Unity的材质设置中,有两个可以调节的参数:Tiling和Offset: Tiling的意思,和《3D游戏编程大师技巧》(下册p632,9.6 基本纹理采样理论)中的纹理采样的意思联系到一起,x表示水平方向上的采样比例,y表示垂直方向上的采样比例。书中:
2018-01-08 14:04:19
914
原创 [引擎]之二:unity中查看简单mesh顶点顺序的小工具
因为要在Unity3d中检验在《3D游戏编程大师技巧》中学习到的东西,写了一个查看简单mesh的顶点顺序的小工具。 效果如下(当前也可以将uv坐标等其他信息加入到显示中): 工具创建步骤:创建一个脚本,读取mesh中的顶点列表using UnityEngine;using System.Collections.Generic;namespace YanCheZuo{
2018-01-04 13:43:05
3722
3
原创 [引擎]之一:mesh在Unity中的简单使用
读过 《3D游戏编程大师技巧》之后在Unity中的试验理论中,Mesh(网格)的基本组成为顶点,由顶点组成的面,一般情况下,都指定的是三角面。有了顶点之后,三角面的由顶点index顺序指定就可以了。此外,顶点color,uv坐标等信息,也可以存储下来。在Unity中,使用的是左手坐标系,所以顶点顺时针方向为三角形的正面。现在,我有一张贴图,如图所示:哈哈,显然这是一张Min
2018-01-04 13:28:47
3981
原创 VsVim使用教程(以及简要vim介绍)
1. 配置快捷键2.vim的常用命令3.mark和跳转4.VsVim的配置5.寄存器6.宏7.替换8.小技巧tips:
2017-12-13 13:57:29
18948
3
原创 VsVim配置教程
安利visual studio最好用的vim插件vsvim。 1.安装在vs中工具->扩展和更新->联机,搜索vsvim,创建者是Jared Parsons.ps. VsVim是开源的,在github上有源码。作者维护的挺勤的。2.配置文件所有xxVim的配置都有一个配置文件,在linux下点开头.xxvimrc,在pc中是下划线开头_xxvimrc。创建vsvim的配置文件,命名为_vsv
2017-12-13 13:39:01
8113
原创 vs2017 15.5.x dll调试不成功问题
配置:Unity5.5.5f1 + vs2017问题:更新到vs2017 15.5.0之后,项目中用到的dll调试断点进不去了。之后更新到15.5.1,依然进不去。现象:Unity工程下生成的dll文件只有dll.pdb没有dll.mdb文件了。原因:vs生成调试的dll后,同时会生成dll.pdb文件。Unity3d会将.pdb转换为.mdb格式(mono的调试文件)。 Unity自带的转
2017-12-13 12:23:44
1393
原创 VS2017更新后问题解决(跳转定义和构建工程失败)
Vs2017 更新到15.5之后,不能跳转到定义了。 我用的是Unity C#。 之前有个答案里面说,清空一下Vs的用户数据(并且会清除所有插件,慎用),在更新到15.4.x的时候,管用。 但是这次并不管用了。rebuild工程的时候,报了一个错 The “GetReferenceNearestTargetFrameworkTask” task was not found….rebuil
2017-12-06 11:20:27
11194
1
Find Reference2 v2.5.2.unitypackage
2021-11-23
Advanced Inspector 2.00a.unitypackage
2020-10-16
Unity3d 插件 - TNet Tasharen Networking v2.0.3 - 网络游戏多人对战
2020-10-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人