unity

Unity Surface Shader 示例分析

好久不见. 提交于 2019-11-27 08:39:41
Unity Surface Shader 示例分析 对于Unity中的表面着色器(Surface Shader),它的代码整体结构如下所示: Shader "name" { Properties { // 第一部分 } SubShader { // 第二部分 } Fallback "Diffuse" // 第三部分 } 第一部分 Properties 数据块 它的作用是充当数据的接口,将外部的数据(资源)引入进来,以供着色器内部使用。在这里,我们可以定义的数据类型如下所示: (1) _MainTex ( "Base (RGB)", 2D ) = "white" {} 2D类型,主要指我们所使用的纹理贴图。 _MainTex是自定义的变量名称,我们在编写shader的代码时将使用它,它会显示在shader的属性面板上,下同; "Base (RGB)"也是一个名称,它会在绑定该shader的材质属性面板上显示。 (2) _CubeTex ( "3D Map", Cube ) = "white" {} Cube类型,表示三维纹理。三维纹理具有宽度、高度以及深度三个维度的信息。 (3) _Color ( "Main Color", Color ) = (1,1,1,1) Color类型,表示一种颜色,包含( R, G, B, A )4个颜色值成分。 _Color是自定义的变量名称

Unity池内存,碎片

冷暖自知 提交于 2019-11-27 08:33:00
池内存最基础的原理 1.FiFo 队列 全称 First - in / First - out 2.FiLo 栈 全称 First - in / Last - out 栈的顺序是存储。 举个例子:在一个桶里持续往里放东西,最底下的永远在最底下,是有序的,数组持续往后加。 栈是有序的所以说它是不会出现碎片的。 从而引出来一个问题,什么是内存碎片呢?又是怎么产生的呢? 栈内存,栈内存是永远不会出现内存碎片的,因为它会叠加相当于它是无缝的所以说它是不会产生碎片。 接下来我说一下碎片是怎么产生的呢? 它是从堆内存出来的。 堆内存如同一个大大的棉花糖,我要拿一份内存吃掉它,系统会随机找到满足要求的地方抠出来,像一个蛀虫一样吃掉,当内存区域内存饱和的时候,它们中间狭小的缝隙就是内存的碎片,因为你永远都无法拿到。 下图就是一个堆内存的图,中间狭小的地方就是内存碎片 当然怎么才能去除内存碎片呢?? 只能把你所有所占用的内存空间,重新整理,重新排序,一个一个标识好之后我以一个存续的方式声明我的空间划分我的内存,这时候,重新排列后才会把内存碎片干掉。 上面讲的就是一个池,池内存的过程。 池的概念就是我们内存的生成和分配的概念。 来源: https://www.cnblogs.com/CourageWei/p/11354718.html

第04组 Alpha冲刺(5/6)

亡梦爱人 提交于 2019-11-27 07:48:00
队名:new game 组长博客: 戳 作业博客: 戳 组员情况 鲍子涵(队长) 燃尽图 过去两天完成了哪些任务 才两天,也就是实现一些功能而已 复习了一下SuffixAutomata 接下来的计划 实现更多的功能 周末shanghai冲冲冲 还剩下哪些任务 让游戏人物动起来 能正确完成事件判断 遇到了哪些困难 如何触发事件,事件的先后关系逻辑如何处理 和上次一样?还没解决啊 有哪些收获和疑问 进一步了解Unity事件管理 钟博 过去两天完成了哪些任务 学习NGUI 研究界面交互 制作完成绝大部分游戏界面的图片展示 Github签入 接下来的计划 学习UI界面的交互 进行UI对接 还剩下哪些任务 和组员进行数据交接 部分交互功能还在研究 燃尽图 遇到了哪些困难 有些想实现的功能网上视频没有,只能自己琢磨 对UI和后端的交接了解不多 交互方面对c#的不了解导致有些困难 收获和疑问 收获:经过多方面尝试,图形界面基本设计完成 疑惑:和后端的功能交接了解不是特别清楚,对交互的实现要琢磨一下 刘俊杰 过去两天完成了哪些任务 学习Unity 学习C# 暂无代码签入 接下来的计划 完善脚本 场景挂载脚本 还剩下哪些任务 完善脚本并与场景结合 遇到了哪些困难 Unity学习运用较困难 Unity Scripting API 有哪些收获和疑问 学习了UnityEngine相关 高鹏

第04组 Alpha冲刺(5/6)

梦想与她 提交于 2019-11-27 07:47:41
队名:new game 组长博客: 戳 作业博客: 戳 组员情况 鲍子涵(队长) 燃尽图 过去两天完成了哪些任务 才两天,也就是实现一些功能而已 复习了一下SuffixAutomata 接下来的计划 实现更多的功能 周末shanghai冲冲冲 还剩下哪些任务 让游戏人物动起来 能正确完成事件判断 遇到了哪些困难 如何触发事件,事件的先后关系逻辑如何处理 和上次一样?还没解决啊 有哪些收获和疑问 进一步了解Unity事件管理 钟博 过去两天完成了哪些任务 学习NGUI 研究界面交互 制作完成绝大部分游戏界面的图片展示 Github签入 接下来的计划 学习UI界面的交互 进行UI对接 还剩下哪些任务 和组员进行数据交接 部分交互功能还在研究 燃尽图 遇到了哪些困难 有些想实现的功能网上视频没有,只能自己琢磨 对UI和后端的交接了解不多 交互方面对c#的不了解导致有些困难 收获和疑问 收获:经过多方面尝试,图形界面基本设计完成 疑惑:和后端的功能交接了解不是特别清楚,对交互的实现要琢磨一下 刘俊杰 过去两天完成了哪些任务 学习Unity 学习C# 暂无代码签入 接下来的计划 完善脚本 场景挂载脚本 还剩下哪些任务 完善脚本并与场景结合 遇到了哪些困难 Unity学习运用较困难 Unity Scripting API 有哪些收获和疑问 学习了UnityEngine相关 高鹏

第04组 Alpha冲刺(1/6)

夙愿已清 提交于 2019-11-27 07:47:11
队名:new game 组长博客: 戳 作业博客: 戳 组员情况 鲍子涵(队长) 过去一段时间对项目的精度和分工进行了更加细致的划分,并初步进行了GamePlay逻辑部分的框架设计 GitHub签入记录: 接下来的计划:整理场景事件和事件逻辑 α还剩下的任务:让游戏能运行起来 遇到了哪些困难:事件逻辑的设计和搭建,已经与游戏框架的协调 有哪些收获和疑问: 后缀自动机是字符串算法的精华 游戏底层的逻辑究竟是怎样运行的 钟博 过去两天完成了哪些任务 安装NGUI插件 学习NGUI 完善了UI的原型设计 Github签入 接下来的计划 继续学习UI界面的交互 开始着手设计登录,注册,开始界面 还剩下哪些任务 大部分界面设计还没完成 燃尽图 遇到了哪些困难 NGUI网上的版本都太老了,和2019+的Unity不兼容,正版插件又要95刀,尝试了很多版本的插件安装都失败了 网上的视频资源也是很老的资源,很多组件要靠自己才能完全摸透,但是有部分知识网上查找不到资料的时候还是很绝望的 收获和疑问 收获:经过多方面尝试,对NGUI这个插件的了解更加深入了,对Unity一些组件也有了更深的理解 对页面的交互的代码部分还有很多疑惑,对一些少见但是这次游戏设计用得上的组件了解还是不多 刘俊杰 过去两天完成了哪些任务 学习unity 简单建立游戏场景 构想脚本 暂无代码签入 接下来的计划 继续学习unity

【Unity打包】Android Asset Packaging Tool Failed 解决方法

时光毁灭记忆、已成空白 提交于 2019-11-27 07:41:59
今天在Unity的安卓平台打包时,莫名打包失败,报的错误为 CommandInvokationFailure:Android Asset Packaging Tool Failed 如下图: 搜到一篇博客: Android Asset Packaging Tool Failed解决方法 ,博客中的评论解决了这个问题,原来是因为StreamAssets路径下不能含有带有中文字符文件名的文件。 删除掉这些文件或者将文件名中的中文字符改成英文即可。 来源: https://blog.csdn.net/weixin_43017662/article/details/99552429

Unity AsyncGPUReadback 接口测试

一个人想着一个人 提交于 2019-11-27 07:34:45
Unity2018新加入了该接口,可以做到异步RenderTexture->Texture2D和异步的ComputeBuffer.GetData 那么写了几个例子来测试下。 1.RenderTexture->Texture2D 异步: IEnumerator Start() { var rt = new RenderTexture(512, 512, 0); //Graphics.xxx... var req = AsyncGPUReadback.Request(rt); yield return new WaitUntil(() => req.done); var tex = new Texture2D(512, 512, TextureFormat.RGBA32, false); var colorArray = req.GetData<Color32>().ToArray(); tex.SetPixels32(colorArray); tex.Apply(); } 同步: RenderTexture.active = rt; var tex = new Texture2D(512, 512, TextureFormat.RGBA32, false); tex.ReadPixels(new Rect(0, 0, 512, 512), 0, 0, false); tex

Unity3D中的组合模式

落花浮王杯 提交于 2019-11-27 07:19:28
1、建立节点抽象基类。 using System.Collections.Generic; public abstract class DMComponent { public List<DMComponent> componentSonList; protected string mName; public string Name { get { return mName; } } public DMComponent(string name) { mName = name; } public abstract void AddComponent(DMComponent component); public abstract void RemoveComponent(DMComponent component); public abstract DMComponent GetComponent(int index); } 2、建立叶子节点类。 public class DMLeaf : DMComponent { public DMLeaf(string name) : base(name) { } public override void AddComponent(DMComponent component) { return; } public override

unity 2d 项目屏幕适配

[亡魂溺海] 提交于 2019-11-27 06:41:30
Unity2d屏幕适配 从示意图中可以看出这两种模式都有可能会出现将图片裁切,导致我们实际的游戏内容显示不完整,影响用户体验,所以此处我们选择使用expand模式。 为什么要做屏幕适配 因为现在市场上的手机厂商很多,屏幕分辨率也有很多,分辨率(屏幕分辨率)是屏幕图像的精密度,是指显示器所能显示的像素有多少.分辨率的单位有:(dpi点每英寸)、lpi(线每英寸)和ppi(像素每英寸)。图像的分辨率越高,所包含的像素就越多,图像就越清晰,印刷的质量也就越好。 但是也出现了问题,如果同样的图放到不同分辨率的手机上,展示出来的大小会与开发时想要展示的大小不同。如果想要在不同的分辨率显示相同的UI则需要根据每一个分辨率做相应的UI,但是这种方法会导致需要的资源很多,所以,我们是不是可以只用一套资源来让所有的分辨率都能以我们想要的方式展示出来,就需要给程序做屏幕适配。 如何实现屏幕适配 首先我们先搞明白 Canvas (实际上就是所支持的设备屏幕,调节 Game 视图里面的分辨率就是调节 Canvas 的大小,也就是选择所支持的设备屏幕大小) : 确切的说是搞明白 Canvas 提供的缩放方案,然后 应该确定一套分辨率作为我们的设计分辨率,然后在不同的手机上进行相应的缩放并确保我们游戏的有效内容区域都可以展示在屏幕上。 Unity提供的屏幕适配方案 expand:

Unity显示到多个扩展屏

笑着哭i 提交于 2019-11-27 06:41:00
1.PlayerSetting发布设置 2.启动时设置分辨率和位置 public class MainDisplay : MonoBehaviour { //导入设置窗口函数 [DllImport("user32.dll")] public static extern bool SetWindowPos(System.IntPtr hWnd, int hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags); //导入当前活动窗口 [DllImport("user32.dll")] public static extern IntPtr GetActiveWindow(); //显示窗口 public const uint SWP_SHOWWINDOW = 0x0040; void Start () { //最后一个参数必须为false,不能直接全屏 Screen.SetResolution(7560, 1920, false); //-30为了隐藏标题栏,+50是为了遮挡任务栏,任务栏需要设成自动隐藏 SetWindowPos(GetActiveWindow(), -1, 0, -30, 7560, 1920 + 50, SWP_SHOWWINDOW); } } 来源: CSDN 作者: 北京易悦科技 链接: