首先,给出圣典的解释:

Material.mainTextureOffset 主纹理偏移量

var mainTextureOffset : Vector2

Description描述

The texture offset of the main texture.

主纹理中的纹理偏移量

The same as using GetTextureOffset or SetTextureOffset with "_MainTex" name.

这个与带有"_MainTex"名称的 GetTextureOffset和 SetTextureOffset相同

参考:SetTextureOffset, GetTextureOffset.

 using UnityEngine;
using System.Collections; public class example : MonoBehaviour
{
public float scrollSpeed = 0.5F;
void Update()
{
float offset = - Time.time * scrollSpeed; //这里的Time.time和我例子中 Time.detalTime不一样 但这句话的意思是一样的 都是不断递减的一个数
renderer.material.mainTextureOffset = new Vector2(offset, );
}
}

从上面我们知道,TextureOffset是纹理偏移的意思,通过renderer.material.mainTextureOffset = new Vector2(offset, 0);函数实现Unity中物体材质的偏移,
通过这个函数 可以在游戏中实现背景循环滚动的效果(也可以通过两个相同的背景交替上下实现这个效果,这里不做细讲) 我们知道编程中一个函数体不变的函数,能影响输出结果
的就是函数的参数, 那么这个函数中的参数代表着什么呢?
笔者在Unity中进行试验:
float m_offset;     //物体材质的偏移量

float m_speed= 0.1f;     //物体材质偏移的速度

 void Update ()

{       

     m_offset =m_offset  -  m_speed * Time.deltaTime;    //这里物体材质的偏移量 就是 每帧的时间乘以自己定义的速度

     this.GetComponent<Renderer>().material.mainTextureOffset = new Vector2(, m_offset);    //通过这个函数实现物体材质的偏移和滚动

 }

!!!这里注意  材质偏移只有(x,y)两个参数 分别代表材质在横向和纵向的偏移!!!

在上述例子中,
1.我首先把 new Vector2(0, m_offset)中的0改为10000,编译后在Unity中调试 发现物体材质的偏移速度并没有发生改变
2.然后我又把 new Vector2(0, m_offset)中的0和m_offset进行了互换,发现由上下偏移变成了左右偏移,说明常量没有效果 一个每帧都改变的量才能实现函数的偏移
3.我又把 1.步骤中加了一步:把m_offset前面乘以10000,这样就变成了 new Vector2(10000, 10000*m_offset); 然后调试发现 物体材质偏移左右依然岿然不动 然后上下快了好多好多,
这说明函数中的"10000"是有效果的,而且只有在参数是变量的基础上才会发生作用,而且10000变成100000000的话 物体材质偏移的速度会更快 这样,我们对renderer.material.mainTextureOffset = new Vector2(offset, 0);就有一个全面深刻的了解了,以后用到也会更加灵活了.
     

Unity3D 纹理偏移(TextureOffset)浅析的更多相关文章

  1. unity3d 纹理动画

    不知道大家有没有玩过赛车游戏 赛车游戏的跑道有路标,如下图 玩过赛车游戏的都知道,大多数赛车游戏的路标是会动的,如上图,它会从右往左运动 不会发动态图,大家脑补一下吧 没有玩过赛车游戏的也不要紧,大家 ...

  2. [原]unity3d 纹理旋转

    纹理旋转实现思路:纹理坐标*平移矩阵*旋转矩阵(类似顶点旋转): 矩阵一般要求中心点为(0,0) 而纹理中心点默认(0.5,0.5);所以先得平移到(0,0):可以考虑乘以平移矩阵[1,0,0,0,1 ...

  3. Unity3D~纹理格式

    因为之前自己从来没有好好看过这部分,一直都是用的DXT压缩图片,结果发现原来ios是不支持DXT的, 还不知道我项目那么卡是不是这部分引起的, 但愿是~这样应该就可以解决游戏在ios上只有6.8帧的问 ...

  4. Unity3d纹理压缩格式表

  5. Unity3D ShaderLab 模拟纹理运动

    Unity3D ShaderLab 模拟纹理运动 这一篇,我们要说到着色器上的uv贴图的滚动效果,这样的场景可以用在河流,瀑布,熔岩等效果.算是创建纹理动画的基础技术之一. 所以 准备一个新的着色器文 ...

  6. ThreeJS模拟人沿着路径运动-路径箭头使用纹理offset偏移

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Processing 网格(棋盘格)无限偏移纹理动画

    过火 再度出击!这次我们要玩得更火一点---把静帧变动画.没错,将棋盘格动起来!看一下效果: 这是一个经典的无限偏移动画,在很多2d横版射击游戏中都会采用的技术.如何在Processing中实现,有两 ...

  8. Unity3D脚本中文系列教程(十三)

    http://dong2008hong.blog.163.com/blog/static/469688272014032334486/ Unity3D脚本中文系列教程(十二) ◆ function G ...

  9. 基于unity3d和leap motion的拼图游戏

    近期用unity3d引擎做了一个拼图游戏,会分几次写完,以此作为总结. 本文基本查找了网上能查到的全部资料作为參考.也算是大家节省了时间. 眼下仅仅完毕了拼图部分,leap motion手势控制部分会 ...

随机推荐

  1. SQL Server 2008 删除数据库帐号失败问题

    SQL Server 2008 中单独为一个项目建立了一个账号zdhsa,结果发现无法删除. 问题:删除zdhsa失败. 解决:首先从"安全性"-"架构"中删除 ...

  2. 将数据导出到Excel2007格式。

    增加数据格式 public static void TableToExcel2(DataTable table, string filename, string sheetname) { XSSFWo ...

  3. Cocos2dx.3x入门三部曲-软件环境配置(一)

    一.环境: Win7 32位 二.必备软件: l  Java JDK 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/inde ...

  4. Selenium 3 -how to locate the chromedriver and geckodriver place?

    Maybe you met these exceptions sometimes: 1. Chrome Driver The path to the driver executable must be ...

  5. PreparedStatement ResultSet

    public int searchProblemDistinctCount() throws Exception { DBOperator dbo = getDBOperator(); try { P ...

  6. JAX-RS(基于Jersey) + Spring 4.x + MyBatis构建REST服务架构

    0. 大背景 众所周知,REST架构已经成为现代服务端的趋势. 很多公司,已经采用REST作为App, H5以及其它客户端的服务端架构. 1. 什么是JAX-RS? JAX-RS是JAVA EE6 引 ...

  7. FoLlow 的技术博客

    酷壳 http://coolshell.cn 老赵点滴- 追求编程之美 http://blog.zhaojie.me/ Pixel-In-Gene Blog

  8. 【分享】分享一个压缩 PNG 的网站 TinyPNG

    TinyPNG 能做什么? TinyPNG 采用智能的有损压缩技术来减少你的 PNG 文件的文件大小.通过选择性地减少图像中的颜色数量,更少的字节用于存储数据.效果几乎是看不见的,但它在文件大小方面差 ...

  9. WCF实例上下文模式与并发模式对性能的影响

    实例上下文模式 InstanceContextMode 控制在响应客户端调用时,如何分配服务实例.InstanceContextMode 可以设置为以下值: •Single – 为所有客户端调用分配一 ...

  10. android studio 中查找代码中的硬编码

    在Android Studio中同时按下Ctrl + Shift+ F  或者其他自定义的快捷键,打开全局搜索,在全局搜索中输入 ^((?!(\*|//)).)+[\u4e00-\u9fa5] 并打勾 ...