码迷,mamicode.com
首页 > 编程语言 > 详细

【Unity NGUI游戏开发之六】游戏背景采用UV纹理动画

时间:2015-08-03 16:58:54      阅读:521      评论:0      收藏:0      [点我收藏+]

标签:纹理动画   uv   uitexture   uv动画   unity   

开发背景

游戏中一些背景能采用UV动画,效果更佳。eg.星空、墙壁

因为gif的原因有卡顿,起始播放纹理动画的时候是不会有卡顿的。
技术分享

Unity的NGUI采用纹理动画

NGUI的UITexture允许使用一张纹理
技术分享

有了这个,我们便可以扩展一个脚本来影响【UV Rect】参数了


/**
    基于NGUI的UITexture的纹理动画

    1.图片首尾相接的UITexture,可以播放UV纹理动画
    2.可以根据定制UV动画方向、速度
    3.图片属性: 【Texture Type】:Texture  【Wrap Mode】:Repeat, 图片属性必须基于纹理,不能是Sprite(2D 或 UI)

    Added by Teng.      
 **/
using UnityEngine;
using System.Collections;
public class UVTextureMove : MonoBehaviour
{
    // 纹理对象
    public UITexture uiTexture;

    // 移动速度
    public float speedX = 0.1f;
    public float speedY = 0.1f;

    private float offset_x = 0.0f;
    private float offset_y = 0.0f;
    private float uv_w = 0;
    private float uv_h = 0;

    void Start()
    {
        if (uiTexture == null) {
            uiTexture = gameObject.GetComponent<UITexture>();
        }

        if (uiTexture == null) {
            Debug.LogError("UITexture not exist!");
        }

        uv_w = uiTexture.uvRect.width;
        uv_h = uiTexture.uvRect.height;
    }

    void Update ()
    {
        offset_x += Time.deltaTime * speedX;
        offset_y += Time.deltaTime * speedY;

        uiTexture.uvRect = new Rect(offset_x, offset_y, uv_w, uv_h);
    }
}

注意细节

  1. UITexture 图片属性: 【Texture Type】:Texture 【Wrap Mode】:Repeat, 图片属性必须基于纹理,不能是Sprite(2D 或 UI)
  2. 纹理要做到首尾相接,否则会巨难看

效果预览

技术分享
技术分享

版权声明:本文为博主原创文章,未经博主允许不得转载。

【Unity NGUI游戏开发之六】游戏背景采用UV纹理动画

标签:纹理动画   uv   uitexture   uv动画   unity   

原文地址:http://blog.csdn.net/teng_ontheway/article/details/47257307

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!