2.滚屏
滚屏概述:
打飞机游戏场景背景设计通常很简单,因为角色敌人道具等都不与背景发生交互事件。开发者只需要根据设定的游戏类型,为游戏制作背景,模拟一个大环境即可。
滚屏原理:
材质UV动画,实现背景图片的滚屏循环。
实现方法:
步骤1:
创建背景载体。创建立方体->适当缩放物体,使物体形状上接近长方形,这样正面在视觉上接近竖版手机屏幕。
步骤2:SS
创建背景材质球。项目视图中创建材质球->将材质球赋给步骤1创建的cube物体->将材质球命名为UVAnim。
步骤3:
3.1为材质球设置Shader文件。将制作好的UV循环播放的Shader文件,导入到项目视图中。这里需要注意,引擎对shader文件识别有一定命名条件,命名原则实例: Common_Diffuse_UVani.wjshader,其中只有VUani可以自由命名。选择UVAnim,common->Diffuse->UVani.wjshader,如下图2-3-1-1所示。

图2-3-1-1
3.2屏幕的滚屏最终效果,屏幕一直像下滚动播放,shader文件如下所示,滚屏效果如图2-3-2-1所示。

图2-3-2-1
shader文件代码:
01 |
WJShader "Surface_Surface_Diffuse" |
05 |
Vector [_diffuseColor]<diffuse color= "" > = "1.0, 1.0, 1.0, 1.0" |
06 |
sampler2D [_diffuseMap]<diffuse map= "" (rgb)= "" > = "sys:white.dds" |
07 |
Vector [_speed] = "0.1, 0.1, 0.1, 0.1" |
10 |
Technique "Surface_Surface_Diffuse" |
22 |
samplerState "g_LightLitMap" [Clamp] [Point] |
23 |
samplerState "_diffuseMap" [Wrap] [Linear] |
24 |
samplerState "g_Lightmap" [Clamp] [Linear] |
28 |
#pragma surface surfMain customlight lightmap:on |
29 |
sampler2D _diffuseMap; |
34 |
float2 _diffuseMap_UV; |
38 |
float4 customlight(SURFACE_OUTPUT sin, float3 viewDir, float lightAtten) |
40 |
float4 diffuse = float4(0.0,0.0,0.0,0.0); |
41 |
float4 specular = float4(0.0,0.0,0.0,0.0); |
42 |
Forward_Shading(sin.Normal,viewDir,sin.Shininess,diffuse,specular,lightAtten); |
43 |
float4 c = diffuse * sin.Diffuse; |
46 |
void surfMain(INPUT p, inout SURFACE_OUTPUT o) |
48 |
p._diffuseMap_UV.x += _speed.x*g_Time; |
49 |
p._diffuseMap_UV.y += _speed.y*g_Time; |
50 |
o.Diffuse.xyz = tex2D(_diffuseMap,p._diffuseMap_UV).xyz*_diffuseColor.xyz; |
53 |
o.Specular = float4(0.0f,0.0f,0.0f,0.0f); |
54 |
o.Normal = float4 ( normalize(mul(g_InvTransModel, float4(p.input_Normal, 1.0f)).xyz), 0.0f ); |
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- 如何创建支持Eclipse IDE的Maven项目
使用Maven创建的项目是不支持任何IDE的,不能导入IDE中,因为项目格式都不符合特定IDE的格式要求,那么如何创建符合IDE要求的项目呢? 1.使用mvn eclipse:eclipse 命令把项 ...
- C#基础(四)
语句 到目前为止,我们的程序还只能按照编写的顺序执行,中途不能发生任何变化 ...
- Control Flow in Async Programs
Control Flow in Async Programs You can write and maintain asynchronous programs more easily by using ...
- 使用 Oracle GoldenGate 在 Microsoft SQL Server 和 Oracle Database 之间复制事务
使用 Oracle GoldenGate 在 Microsoft SQL Server 和 Oracle Database 之间复制事务 作者:Nikolay Manchev 分步构建一个跨这些平台的 ...
- redis状态与性能监控
Redis介绍 Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表.哈希.集合和有序集合5种.支持在服务器端计算集合 ...
- MySQL学习笔记二
Ø function 函数 函数的作用比较大,一般多用在select查询语句和where条件语句之后.按照函数返回的结果, 可以分为:多行函数和单行函数:所谓的单行函数就是将每条数据进行独立的计算,然 ...
- 自己动手实现STL 02:构造析构的基本工具construct()和destroy()(stl_construct.h)
一.前言 上一篇,我先完成了对内存配置器的实现.然而后面在内存上的算法还依赖于两个全局函数,construct()和destroy(),前者负责在指定的内存上调用对象的构造函数,在内存上构造出对象.后 ...
- IT玄幻小说
职业 设计:菜鸟 美工<初级,中级,高级,资深> 设计师<初级,中级,高级,资深> 大神 前端:菜鸟 前端<初级,中级,高级,资深> 架构师<初级,中 ...
- iOS开发:告诉git不要跟踪UserInterfaceState.xcuserstate
在xcode中使用git管理项目的技巧: 在多人协作开发的时候,每个开发者都会在项目中的某个目录生成一个 UserInterfaceState.xcuserstate 文件,这个文件大概每5s会刷新一 ...
- bzoj1877: [SDOI2009]晨跑
挺裸的最小费用最大流... #include<cstdio> #include<queue> #include<cstring> #include<iostr ...