unity3d 纹理动画
不知道大家有没有玩过赛车游戏
赛车游戏的跑道有路标,如下图
玩过赛车游戏的都知道,大多数赛车游戏的路标是会动的,如上图,它会从右往左运动
不会发动态图,大家脑补一下吧
没有玩过赛车游戏的也不要紧,大家见过游戏中的瀑布或者湖面吗?如下图:高山流水
当然,我这个贴图的效果不是很好,不过我这里要说的是原理,不妨碍,我们继续
图中的瀑布从上往下流动
我们都知道,如果用粒子的话,有几百个瀑布,在手机上肯定是非常卡的
差一点的手机说不定游戏刚打开就未响应了
除非要求是非常逼真的那种水才用粒子系统,能不用尽量不用
用纹理动画的话虽然达不到粒子那么逼真,但是也是一种不错的解决方案
纹理动画耗费资源还是粒子动画耗费资源呢?我们一探究竟
小二,上图
好勒客官,马上来
这是瀑布的材质球,我们手动修改OffsetX
按每次+0.1这样修改:0.1,0.2,0.3,0.4....
我们会发现,每修改一次材质球就会相应的变动
现在我们归零,修改一下OffsetY,依旧和修改X一样的方法
我们会发现材质球也会有相应的变动,但是方向不一样
如果只观察材质球感觉不容易看出来,那就把材质球挂到物体上,这样看的清楚一些
好了,我们知道如果让材质球动起来了,修改offset即可,那么我们就开始敲代码吧
创建一个 TextureAnimation.cs
定义一个变量:public float XSpeed = 0.1f;//X轴移动速度
然后有了下面的代码
public float XSpeed = 0.1f;//X轴移动速度
void FixedUpdate()
{
renderer.material.mainTextureOffset = new Vector2(Time.time * XSpeed, renderer.material.mainTextureOffset.y);
}
我们挂到瀑布上,然后运行,我们发现瀑布动起来了,但是似乎移动方向和速度不对劲
没关系,我们刚才修改的是X轴,我们在加上Y轴和移动速度不就行了?
依法炮制得出下面的完整代码:
using UnityEngine;
using System.Collections; /// 纹理动画 <summary>
/// 纹理动画
/// </summary>
public class TextureAnimation : MonoBehaviour
{
public bool MoveX = false;//是否移动X
public bool ToUp = false;//往上移动
public float XSpeed = 0.1f;//X轴移动速度
private float offsetX = ; public bool MoveY = false;//是否移动Y
public bool ToLeft = false;//往左移动
public float YSpeed = 0.1f;//Y轴移动速度
private float offsetY = ; void FixedUpdate()
{
if (MoveX)
{
offsetX = Time.time * XSpeed;
if (ToUp) offsetX *= -;
} if (MoveY)
{
offsetY = Time.time * YSpeed;
if (ToLeft) offsetY *= -;
} renderer.material.mainTextureOffset = new Vector2(offsetX, offsetY);
}
}
我就不多解释了,房东一会儿过来收房租了
真烦,我都租了大半年了,想在续租一个月,因为还有一个月我才上班
原来房租是850一个月,现在居然想收我900一个月
原因是我只续租一个月
我教了一千块押金,他怕我跑了不给水电费,非要我在给一千块
我让他来收电费他也不来,说太冷了。。。。
什么人啊这是。。。
不说了,我先闪了
本文链接:http://www.cnblogs.com/shenggege/p/4264463.html
unity3d 纹理动画的更多相关文章
- Unity3D 骨骼动画原理学习笔记
最近研究了一下游戏中模型的骨骼动画的原理,做一个学习笔记,便于大家共同学习探讨. ps:最近改bug改的要死要活,博客写的吭哧吭哧的~ 首先列出学习参考的前人的文章,本文较多的参考了其中的表述: 1. ...
- Unity3d Mecanim动画系统Animator学习笔记
1. unity3d Mecanim学习 Unity3d新版动画系统网上的介绍很多,但多是流水笔记,外人很难看明白,后来我 终于找到介绍的比较明白的两个作者,特别感谢.一个是58开发网的乐天老师,课 ...
- 浅谈Unity3D 骨骼动画
转载请标明出处http://www.cnblogs.com/zblade/ 最近研究了一下游戏中模型的骨骼动画的原理,做一个学习笔记,便于大家共同学习探讨. ps:最近改bug改的要死要活,博客写的吭 ...
- Unity3D Mecanim 动画系统骨骼动画问题解决方法
http://7dot9.com/2014/08/16/unity3d-mecanim%E5%8A%A8%E7%94%BB%E7%B3%BB%E7%BB%9F%E9%AA%A8%E9%AA%BC%E5 ...
- (转)Unity3D - 动作动画忽略timeScale
转自:http://blog.csdn.net/ynnmnm/article/details/46866347 最近在调战斗时的动画与特效,Unity3D对加/减速提供了Time.timeScale支 ...
- Unity3D - 动作动画忽略timeScale
http://blog.csdn.net/ynnmnm/article/details/46866347 最近在调战斗时的动画与特效,Unity3D对加/减速提供了Time.timeScale支持.但 ...
- Processing 网格(棋盘格)无限偏移纹理动画
过火 再度出击!这次我们要玩得更火一点---把静帧变动画.没错,将棋盘格动起来!看一下效果: 这是一个经典的无限偏移动画,在很多2d横版射击游戏中都会采用的技术.如何在Processing中实现,有两 ...
- three.js 纹理动画实现
需求: 1.使用一张长图.分别播放这张长图的不同位置 来达到动态内容的目的 解决方案: 1.纹理创建并指定重复方向:this.texture.wrapS = this.texture.wrapT = ...
- Unity3D骨骼动画的分解(CleanData.Ani详解)
CleanData是什么 CleanData以前没有特定的名字,(在easydown这个开源项目中,作为一个GameObjParser模块存在).在某三国项目中,我们使用GameObjParser将N ...
随机推荐
- 本人常用的Linux bash快捷键(持续更新)
按使用频率由高到低排列: Ctrl + a :移到命令行首Ctrl + e :移到命令行尾 Ctrl + u :从光标处删除至命令行首Ctrl + k :从光标处删除至命令行尾 Ctrl + d :删 ...
- Java小方法
/** * 计算百分比. * @param dividend 被除数 * @param divisor 除数 * @return 结果 */ private String getPercent(lon ...
- tomcat 部署脚本
将一下3个脚本放到一个目录里,做成一个 python 的包即可使用 脚本介绍 操作服务脚本 #!/usr/bin/env python # _*_coding:utf-8_*_ # Author: & ...
- andriod增、删、改、查
将数据库的增删改查单独放进一个包 */ package com.itheima28.sqlitedemo.dao; import java.util.ArrayList; import java.ut ...
- 01_蚂蚁感冒(第五届蓝桥预赛本科B组第8题 nyoj 990)
问题来源:第五届蓝桥预赛本科B组第8题 问题描述:有在一条定长(100cm)的直杆上有n(1<n<50)只蚂蚁(每只蚂蚁的起点都不一样),他们都以相同的速度(1cm/s)向左或者向右爬, ...
- python split()函数使用拆分字符串 将字符串转化为列表
函数:split()Python中有split()和os.path.split()两个函数,具体作用如下:split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list ...
- 调用手机话费充值API的SDK编写思路
思路 通过将SDK方法中返回的数据划分为正常返回数据以及错误返回的数据两部分,让调用者更简单的对接口调用错误进行处理. 将SDK调用第三方服务接口的流程划分为: 数据准备,http请求,结果处理三部分 ...
- javaScript事件(四)event的公共成员(属性和方法)
一.事件 二.事件流 以上内容见:javaScript事件(一)事件流 三.事件处理程序 四.IE事件处理程序 以上内容见javaScript事件(二)事件处理程序 五.事件对象 以上内容见javaS ...
- 九度OJ,题目1089:数字反转
题目描述: 12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转. 输入: 第一行一个正整数表示测试数据的个数n. ...
- HDU 4819 Mosaic --二维线段树(树套树)
题意: 给一个矩阵,每次查询一个子矩阵内的最大最小值,然后更新子矩阵中心点为(Max+Min)/2. 解法: 由于是矩阵,且要求区间最大最小和更新单点,很容易想到二维的线段树,可是因为之前没写过二维的 ...