游戏开发相关知识与技巧
张伟林_VillainJan
C++开发。
展开
-
Unity Basics
Unity优点提供了极度高效的可视化工作流,并在可视化编辑器中创建所有东西前提下,还包括一系列链接到可运行项目中的自定义代码。多维度的跨平台支持,包括部署目标方面跨平台(PC、Web、移动设备、游戏主机)和开发工具跨平台(Windows、Mac OS)。Unity缺点可高效地组合可视化编辑器和复杂的代码,但是会产生复杂度,即在复杂的场景中很难确认哪个物体被附加了指定组件。虽然有搜索功...转载 2019-03-22 21:09:59 · 345 阅读 · 0 评论 -
Unity UGUI、模型与特效的叠层实现
Unity中UGUI、模型与特效的叠层实现影响层次的因素Camera组件,分为场景和UI。Canvas组件,分层次,一般为Scene,Main,UI,Activity,Top。Camera的Depth属性。Canvas的Sorting Layer属性。Canvas的Order in Layer属性。ReaderQueue属性,Shader中的tags属性,属于Material的属性...原创 2019-06-08 23:17:40 · 2892 阅读 · 0 评论 -
Unity AssetBundle
#AssetBundle作用原理把资源导出成一种叫做AssetBundle的文件,然后打包后可以在Unity程序运行的时候再加载回来用。AssetBundle是采取某一种压缩方式压缩成的资源文件。节省存储空间,控制游戏包的大小,实现游戏的热更新。AssetBundle文件分类AssetBundle文件可以分为两类:序列化文件(serialized file)和资源文件(resource ...原创 2019-06-08 18:12:49 · 3092 阅读 · 0 评论 -
Unity 捕获输入总结
Unity捕获输入总结GetKey类传入参数为KeyCode或String类型的按键名称,而GetButton类、GetAxis类传入参数只能为InputManager中定义的轴键。GetKey类主要有Input.GetKey()、Input.GetKeyDown()、Input.GetKeyUp()。GetMouseButton类方法主要有Input.GetMouseButton()、In...原创 2019-06-08 16:31:48 · 1702 阅读 · 0 评论 -
Unity 移动方法总结
Unity移动方法总结在Unity3D中,有多重方式可以改变物体的坐标,实现移动的目的,其本质是每帧改变物体的position。通过Transform组件移动物体Transform组件用于描述物体在空间中的状态,它包括位置(position),旋转(rotation)和缩放(scale)。其实所有的移动都会导致position的改变,这里所说的通过Transform组件来移动物体,指的是...原创 2019-06-08 15:07:49 · 16902 阅读 · 1 评论 -
游戏项目中的MVC架构(Unity和LuaFrameWork)
MVC模式MVC是(Model、View、Controller)三个单词的首字母简写,其应用的目的是为了将程序分层,便于应用程序的分层开发。Model(模型)代表一个存储数据的对象,它也可以带有少量的逻辑,在数据有变化的时候通知Controller进行更新视图。View(视图)代表模型包含的数据的可视化表现。Controller(控制器)控制器控制数据流向模型对象,并在数据变化时更新视图。...转载 2019-06-06 15:56:14 · 1930 阅读 · 0 评论 -
Unity UGUI图集打包与动态使用(TexturePacker)
TexturePacker在用UGUI时,我们需要将一个个小图打包成图集,然后将图集一次性加载以内存换取图片读取效率,即减小Drawcall。UGUI打包并使用图集有两种方法:一种是使用系统自带的打包工具SpritePacker,这种方法限制比较多;一种是使用TexturePacker打包图片并使用。先打开TexturePacker把小图打包成我们所需要的图集,打包的格式要注意是"Unit...转载 2019-06-06 10:46:49 · 4150 阅读 · 0 评论 -
Unity 分帧加载和分块加载
#分帧加载和分块加载在我们实际做项目的时候,往往会遇见需要创建大量数据的时候,这时如果在一帧里面大量创建数据,那我们的游戏就会发生卡顿从而降低了用户的体验。为了解决这种情况,可以使用使用分帧加载使得每帧只加载固定数量的数据来解决,也可以使用分块加载来实现加载当前场景所需的数据。分帧加载我们得到的信息是来自于服务器的,当我们需要显示信息的时候,不可能从服务器拿了一条显示一条信息。我们应该定义...转载 2019-06-06 10:21:36 · 10472 阅读 · 6 评论 -
Unity PlayerPrefs(数据持久化)
PlayerPrefsUnity3D中的数据持久化是以键值的形式存储的,可以看作是一个字典。Unity3D中值是通过键名来读取的,当值不存在时,返回默认值。目前Unity3D中只支持int、string、float三种数据类型的读取。参考示例: //保存数据 PlayerPrefs.SetString("Name", mName); PlayerPrefs.SetIn...转载 2019-06-06 10:17:35 · 9259 阅读 · 0 评论 -
Unity 动态加载Prefab
Unity动态记载Prefab第一种方法,从Resources文件夹读取PrefabAssets/Resources是Unity中的一个特殊文件夹,放在这个文件夹里的资源包括Prefab可以被代码动态加载。GameObject Prefab = (GameObject)Resources.Load("Prefabs/Character");Instantiate(Prefab);...转载 2019-05-11 14:11:56 · 8100 阅读 · 0 评论 -
Unity WWW的使用
Unity WWWUnity 的WWW 主要支持其中的GET和POST方式。GET 方式会将请求附加在URL后,POST 方式则是通过FORM (表单)的形式提交。GET方式最多只能传输1024个字节,POST方式理论上则没有限制。从安全角度来看POST比GET方式安全性更高,所以在实际使用中可以更多选择POST方式。具体例子如下:文本格式上传IEnumerator IGetDat...原创 2019-05-11 13:21:55 · 631 阅读 · 0 评论 -
Unity 协程用法总结
C#协程的用法协程:协同程序,在主程序运行的同时,开启另外一段逻辑处理,来协同当前程序的执行,注意协程不是线程,只是具有线程特点的“伪协程”。协程的使用需要直接或间接的继承MonoBehavior。协程的执行原理协程函数的返回值必须是IEnumerator,它是一个迭代器,可以把它当成执行一个序列的某个节点的指针,它提供了两个重要的接口,分别是Current(返回当前指向的元素)和Move...转载 2019-05-11 12:53:06 · 2754 阅读 · 0 评论 -
游戏热更新杂谈
游戏热更新杂谈游戏热更新的内容一般可以是美术资源,也可以是代码,但相对来说,美术资源的更新不会受到约束,而代码的更新在实际上是重灾区,以下主要介绍的是代码的热更新。热更新对于开发者来说是一件麻烦事,特别对于看重效率,便捷性和结构的程序员来说,热更新就是运营人员的不懂技术的表现。然而,对于上线才是刚刚开始的网络游戏,特别是手游来说,热更新是极为重要的基础功能。为什么要热更新?客户端适应...转载 2019-05-10 09:23:43 · 602 阅读 · 0 评论 -
Unity Optimize
一些优化常识LOD及其优缺点:LOD为Levels of Detail的简称,简单来说即为多细节层次。LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。在Unity中,LOD是最常用的游戏优化技术,根据物体在游戏画面中所占视图的百分比来调用不同复杂度的模型。简单而言,就是当一个物体距离摄像机比较远的...转载 2019-03-22 21:10:29 · 535 阅读 · 0 评论 -
Unity Shader
渲染流水线/管道/管线渲染流水线的最终目的在于生成或渲染一张二维纹理,即我们在电脑屏幕上看到的所有效果。(shader属于渲染流水线的一个环节)渲染流水线的工作任务在于由一个三维场景出发、生成一张二维图像。计算机需要从一系列的顶点数据、纹理等信息出发,把这些信息最终转换成一张人眼可见的图像。(由CPU和GPU共同完成)渲染流水线的三个阶段应用阶段:由CPU主导,主要工作有加载场景数据(如...转载 2019-03-22 21:10:46 · 454 阅读 · 0 评论 -
Unity 简单实现资源管理类加载AssetBundle
基于Unity用C#语言编写一个资源管理类,要求如下:使用协程加载加载AssetBundle,支持优先级队列,尽量考虑加载新能。设置打包编辑器:#if UNITY_EDITORusing UnityEngine;using UnityEditor;using System.Collections;using System.IO;public class AssetBundle{...原创 2019-06-09 22:02:06 · 470 阅读 · 0 评论