
[Unity学习记录]
桑来93
time will tell
展开
-
Unity3D Shader 入门学习
Unity3D Shader 入门学习Unity3D 的所有渲染工作离不开着色器.一些基本的概念Shader和MaterialShader 着色器其实是一小段程序,它负责将输入的 Mesh 网格. 以指定的方式和输入的贴图或者颜色等组合作用.然后输出.绘图单元可以依据这个输出来将图像绘制到屏幕上输入的贴图或颜色等,加上对应的shader,以及对Shader的特定参数设置,将这些内容(...原创 2019-01-15 18:57:10 · 306 阅读 · 0 评论 -
【Unity】工具类系列
转载自知乎【Unity】工具类系列教程——对象池!【Unity】工具类系列教程——配置化和规范流程【Unity】工具类系列教程—— 代码自动化生成!转载 2019-06-28 22:42:24 · 1481 阅读 · 0 评论 -
腾讯大咖说:腾讯是如何做Unity手游性能优化的
转载自 腾讯大咖说:腾讯是如何做Unity手游性能优化的一.常见的Unity手游性能问题有哪些?左边是玩家经常会遭遇到的 表面现象 .右边则是 基于Unity引擎深挖后的问题本质 .《王者荣耀》来举例. 先后遇到过的问题和优化方法主要有下面几个:池化技术由于实时对战游戏的数据包数量巨大,早期版本的帧同步策略会导致比较明显的卡顿,通过进行数据包的合并与优化逐渐解决了卡顿问题;...转载 2019-06-29 10:03:00 · 626 阅读 · 0 评论 -
Unity3D 之Mesh
MeshUnity Manual - Mesh Components1 Mesh相关组件Meshes 网格Mesh是Unity内的一个组件,称为网格组件。3D网格是Unity中最重要的图形元素。在Unity中存在多种组件用于 渲染标准网格或者蒙皮网格、拖尾或者3D线条。在Unity-》Component-》Mesh组件内,有Mesh Filter,Text Mesh, Mesh R...原创 2019-06-30 21:29:01 · 1108 阅读 · 0 评论 -
Unity 脚本生命周期流程图
转载自 Unity 脚本生命周期流程图渲染:OnPreCull: 在相机剔除场景之前调用此函数。相机可见的对象取决于剔除。OnPreCull 函数调用发生在剔除之前。OnBecameVisible/OnBecameInvisible: 在对象对于相机可见/不可见时调用此函数。OnWillRenderObject: 如果对象可见,则为每个相机调用一次此函数。OnPreRender:...转载 2019-06-30 21:36:58 · 667 阅读 · 2 评论 -
Unity协程(Coroutine)
Unity协程(Coroutine)原理深入剖析线程与协程协程的作用:延迟(等待)一段时间执行代码;等待某个操作完成后执行后面的代码.总结起来就是一句话:控制代码在特定的时机执行。协程不是线程.也不是异步执行的Unity中协程的执行A coroutine is a function that is executed partially and, presuming sui...转载 2019-07-15 19:55:58 · 224 阅读 · 0 评论 -
网络层 - 剖析数据协议原理
转载自《Unity3D高级编程之进阶主程》第六章,网络层(五) - 剖析数据协议原理0 网络数据协议协议包的格式,json, msgpack, protobuf 以及自定义格式’项目的网路层在建设中,除了 选择长短连接TCP,UDP,HTTP方式 外还需要选择在 传输过程中使用什么样的协议格式 。我的理解在于.1. 链接方式: TCP UDP HTTP Socket2. 协议格式...转载 2019-07-06 18:02:39 · 342 阅读 · 0 评论 -
网络层 - 剖析数据协议原理 - Protobuf
高效的数据压缩编码方式 ProtobufProtocol Buffers(3):阅读一个二进制文件一. protocol buffers 是什么?Protocol buffers 是一种语言中立,平台无关,可扩展的序列化数据的格式,可用于通信协议,数据存储等。Protocol buffers 在序列化数据方面,它是灵活的,高效的。相比于 XML 来说,Protocol buffers...转载 2019-07-06 21:13:16 · 897 阅读 · 0 评论 -
游戏服务器心跳包的作用
游戏服务器心跳包的作用服务端为什么需要心跳(保活)机制TCP-Keepalive-HOWTO闲说HeartBeat心跳包和TCP协议的KeepAlive机制Socket心跳包机制心跳包的作用1 查一下tcp的断线是否真的可靠一个tcp链接很长时间没有数据传送,路由器已经释放tcp链接, 客户端那边close了, 但服务器那边也不会有反应为了避免这种现象,可能需要改协议比如:客...转载 2019-07-12 15:22:59 · 2235 阅读 · 0 评论 -
Unity 之 Graphics Command Buffers
Graphics Command BuffersCommand Buffershow Cameras use the Forward or Deferred pipeline to render a Scene in UnityCamera.AddCommandBufferpublic void AddCommandBuffer(Rendering.CameraEvent evt, ...原创 2019-08-02 19:26:40 · 890 阅读 · 0 评论 -
GPU Instancing
Unity之GPU Instancing什么是GPU Instancing当场景中有大量使用 相同材质和网格 的物体时,通过GPU Instancing可以大幅降低Draw Call数量。GPU Instancing是指由GPU和图形API支持的,用一个Draw Call同时绘制多个Geometry相同的物体的技术。上圖中的場景有數千塊隕石,但只有三種隕石模型,這種情況下使用Ins...转载 2019-08-14 15:11:42 · 877 阅读 · 0 评论 -
游戏中遮挡剔除方案总结
转载自游戏中遮挡剔除方案总结遮挡剔除是当一个物体被其他物体遮挡住而不在摄像机的可视范围内时不对其进行渲染。在3D图形计算中并不是一个自动进行的过程,因为在绝大多数情况下离相机最远的物体首先被渲染,靠近摄像机的物体后渲染并覆盖先前渲染的物体(这种重复渲染又叫做"OverDraw")。它不同于视锥剪裁,视锥剪裁只是不渲染摄像机视角范围外的物体,而对于那些被其他物体遮挡,但是依然在镜头范围内的...转载 2019-08-10 10:43:16 · 2088 阅读 · 0 评论 -
Unity工程中 .Meta 文件的来龙去脉
Unity .Meta如果你在游戏开发过程中使用诸如SVN的版本控制工具,那你必须得理解Meta文件的作用。在游戏场景中引用一个游戏资源,Unity并不直接按照文件路径和名称,而是使用一个独一无二的GUID来指向工程里的该资源文件。这个GUID储存在Unity工程为每个资源和文件夹生成的Meta文件里。使用GUID的好处就是,即使你移动、重命名或者修改资源的内容,这个资源仍然可以通过G...转载 2019-08-10 21:33:38 · 421 阅读 · 0 评论 -
Unity3D资源管理架构
转载自Unity3D资源管理架构在Unity3D引擎中,场景资源文件(.unity)是以2进制格式存储的,但同时它也有一种基于文本的表现格式。可在Edit>Project Setting>Editor 中设置:1.使用binary2text.exe(win下目录:Editor\Data\Tools)可将.unity文件转换成.txt文件,只需将.unity文件拖拽到binar...转载 2019-08-10 21:40:39 · 902 阅读 · 0 评论 -
Unity Asset文件
Asset文件类型Asset文件使用方法Unity 使用自定义资源(.asset)配置数据原创 2019-08-11 10:11:22 · 5165 阅读 · 0 评论 -
UnityException: Texture is not readable
通过C#脚本读取Texutre的像素值.heightMap.GetPixel(i, j).grayscale遇到错误:Texture is not readable查找了一下资料:需要勾选 Read/Write Enabled.原创 2019-08-16 11:40:45 · 1978 阅读 · 0 评论 -
游戏服务器架构通识
转载自游戏服务器架构通识一、早期网游服务器蛮荒时代的服务器只负责存储玩家账号、数据、转发场景内其他玩家的行为。很多移动、使用技能等关键逻辑在服务器上根本没有。随意就能用变速齿轮改变游戏速度。从《传奇》的时代开始,游戏服务器就不再是简单的上传存档、下载存档、访问页面而已。游戏服务器内部出现了游戏逻辑,既能用于同步每个玩家看到的世界,又能让逻辑与客户端分离,避免早期的网络游戏那种毫无防范的逻...转载 2019-06-28 19:39:59 · 483 阅读 · 0 评论 -
【NGUI】点击按钮没反映
转载自 【Unity3D】【NGUI】点击按钮没反映设置正确的Camera的Culling Mask;设置正确的UICamera的Event ReceiverMask。这两个要保证就是你的UI那个Layer。你的Button上面,需要有Box Collider(size也要正确,可以通过alt+shift+c来快速调整size);Button的layer需要是UI的layer...转载 2019-06-28 15:04:30 · 404 阅读 · 0 评论 -
unity之游戏UI界面框架设计实战学习(一)
游戏UI界面框架设计实战精讲视频课程配合上博客 刘老师讲Unity刚开始接触UI界面. 觉得讲得非常好. 做一下笔记.课程总体分为七大部分:一: UI框架设计理念整体简单介绍即将带领大家开发的UI框架的功能设计、核心类设计等,让大家有一个整体、大概的了解。二: 最简版本开发为了简化框架学习的难度,先带领大家开发一个类似"Hello World" 的最简版本,以期达到学员快速理解、...转载 2019-06-06 14:54:39 · 7476 阅读 · 0 评论 -
unity之NGUI 渲染原理
NGUI 渲染原理NGUI内部架构NGUI的核心架构,其实就在于3块:UIPanel、UIWidget、UIDrawcall。其中: Panel和Widget是会显示在Hierarchy层级中的,而UIDrawcall则不会。Panel和WidgetWidget是NGUI中负责界面显示的基础单位。所有需要在屏幕上显示出来的2D UI本质上都是一个Widget——包括Label、S...转载 2019-06-07 17:47:51 · 1115 阅读 · 0 评论 -
unity之开发技巧收录[持续更新]
开发UI过程中隐藏相机点击 Scene 中的 Gizmos.单击Camera. 即可隐藏.C# 添加注释小技巧在函数的上一行输入 ///这样VS会自动添加方法的相关注释,然后你也可以添加和修改注释。...原创 2019-06-09 08:51:45 · 154 阅读 · 0 评论 -
Unity之项目架构
快去实习了. 期间应该会接触很多Unity相关的知识.所以. 先自己学习一些可能会用上的.转载自 UNITY_项目架构设计视频资料:Unity项目架构设计与开发管理EmptyGO将所有的代码放到一个空的游戏对象中使用 GameObject.Find() 来找到目标进行使用项目越来越大的时候难以灵活管理;不适合大型项目。Simple GameManagerGameMana...转载 2019-06-04 16:23:53 · 1786 阅读 · 0 评论 -
Unity Editor扩展
Unity Editor扩展入门(1)1.1 Editor文件夹Editor文件夹是一个特别的文件夹,专门为了Editor API的使用而存在。一般来说,Editor API是不能够在Runtime的时候生效的。在Assets文件夹下直接生成下面的这段代码,然后试一下在Build Settings窗口中进行Build。没有Editor文件夹时的执行方法在Runtime时需要执...转载 2019-06-21 10:56:19 · 422 阅读 · 0 评论 -
Unity3d_基础之GameObject.activeSelf,.activeInHierarchy,.SetActive的区别和关联
Unity APIGameObject. activeInHierarchyDefines whether the GameObject is active in the Scene.定义了这个游戏对象在场景中是否可见.表示物体在层次中是否是active的. 也就是说要使这个值为true.这个物体及其所有父物体(及祖先物体)的activeself状态都为true.GameObjec...转载 2019-06-21 21:12:31 · 1104 阅读 · 0 评论 -
游戏术语[持续整理]
现在在做游戏客户端. 为了更好的学习.整理一下自己碰到的一些游戏术语.游戏术语笔记PVEPVE 指玩家对战环境 (Player VS Environment) .即在游戏中玩家挑战游戏程序所控制的NPC怪物和BOSS.PVE有时候又被称作 PVC (Player Vs Computer).PVP与PVE相对的是PVP (玩家对战玩家,Player versus player...原创 2019-06-22 11:28:10 · 1965 阅读 · 0 评论 -
NGUI 渲染顺序概述
NGUI渲染顺序概述渲染结构NGUI用Panel来管理渲染.一个UIPanel实例表示一个Panel.UIPanel.widgets 表示 Panel 中需要渲染的物体UIPanel.drawCalls 表示 Panel 中的渲染指令.static UIPanel.list 存放所有的 Panel在渲染时,Panel遍历它管理的所有Widgets. 生成DrawCall命令l...转载 2019-07-01 20:37:21 · 591 阅读 · 0 评论 -
【NGUI源码剖析】NGUI的drawcall
转载自【NGUI源码剖析】NGUI的drawcall【NGUI源码剖析】深入理解NGUI的drawcall【NGUI源码剖析】NGUI如何优化drawcall数量NGUI 渲染流程深入研究 (UIDrawCall UIGeometry UIPanel UIWidget)0 前言这篇博客主要介绍NGUI是如何实现渲染的,将UI界面渲染到屏幕上的。在 Unity3D 之Mesh 中,...转载 2019-07-01 21:59:22 · 455 阅读 · 0 评论 -
NGUI 在LateUpdate阶段的操作
NGUI 渲染前做了哪些在Unity的生命周期中。LateUpdate后面应该是真正的渲染。那么LateUpdate这一步呢。NGUI会准备数据更新DrawCall的列表。包括重新创建或者插入。最后设置正确的顺序。...原创 2019-07-02 11:05:07 · 400 阅读 · 0 评论 -
Unity3D中的SendMessage使用(消息传递的三种方法)
转载自 Unity3D中的SendMessage使用(消息传递的三种方法)0 概述Unity提供的消息推送机制可以非常方便我们的脚本开发,它实现的是一种 伪监听者模式,利用的是反射机制。1 常用函数关于消息推送.常用的函数有三个:SendMessageSendMessageUpwardsBroadcastMessage这些函数都是GameObject或者Component...转载 2019-07-03 09:44:48 · 7772 阅读 · 0 评论 -
NGUI源码学习——UICamera
转载自UICameraNGUI源码学习_UICamera0 前言UICamera是NGUI中专门用于捕获和分发交互事件的脚本,和UI渲染无关,需要挂在UI摄像机上。其核心思想是在Update中检测Input的各种输入情况,并对屏幕做raycast投射,以决定是哪个go的collider触发事件,最终将事件分发出去。Q: 检测各种输入在哪里做?Update()中.Q: UIC...转载 2019-07-03 20:11:59 · 795 阅读 · 0 评论 -
NGUI源码剖析之UIRect
NGUI内核大剖析(一) UIRectNGUI源码剖析之UIRect0 概述UIRect是一个抽象类. 不能被实例化.UIRect是UIPanel和UIWidget的基类.它为UIPanel和UIWidget提供了一些公用的方法.1 UIRect.AnchorPointNGUI源码剖析之UIRect.AnchorPointAnchorPoint(锚点)用于 定位对象相对于目标...转载 2019-07-03 22:33:00 · 690 阅读 · 0 评论 -
【NGUI基础知识】——Scroll View(滚动视图)
实习任务: 做一个滚动视图.第一次做UI还是比较麻烦.自己用不够熟悉.用到了ScrollView. 做下记录.0 参考文献Unity3D学习笔记——NGUI之UIScrollViewNGUI ScrollView 回弹控制NGUI学习笔记(六)1 ScrollView 控件介绍ScrollView 即 即滚动视口组件当我们需要对一个或多个对象在一个指定的区域内进行滚动时,...原创 2019-06-28 14:51:52 · 4461 阅读 · 0 评论 -
Unity 常用函数API记录[持续更新]
实例化对象Instantiatevar clone:GameObject=Instantiate(obj,obj.transform.position,obj.transform.rotation);动态加载 prefab 预设Resources.Load()挂在到某个节点上// 挂载到UIroot上.用于测试查看GameObject go = GameObject.Find("U...原创 2019-06-28 14:59:53 · 273 阅读 · 0 评论 -
Unity之Transform组件
Unity官方文档TransformTransform组件一Transform组件二Transform组件三一. Transform组件用途维护场景树对3D物体的平移 缩放 旋转二. 场景树定义在 Hierarchy 视图中.一个 game_scene场景.下面有 MainCamera节点. Directional Light节点. game_root节点.game_...转载 2019-06-05 16:06:40 · 7499 阅读 · 1 评论