zoukankan      html  css  js  c++  java
  • unity3d 幻灯片效果实现

    上一篇使用的是静态方式进行的加载,采用的数据结构为 数组

    该篇文章则是使用动态加载的方式实现:

    this.objsOfRouses = Resources.LoadAll("images",typeof(Texture));

    该方法会安排图片在文件在顺序进行加载。

    如图:

    加载顺序如下:

    using UnityEngine;

    using System.Collections;


    public class imageAnimation : MonoBehaviour {
    //
    private Object[] objsOfRouses;

    private Texture2D[] texturesLoaded;

    private Material materialOfPanel;

    private int frameCounter =0;

    public float delayTime =0.5f;

    private float currentTime=0.0f;
    private float endTime =0.0f;

    public GameObject dongWu;
    void Awake()
    {
    //get the material of this panel
    this.materialOfPanel = this.renderer.material;


    }

    // Use this for initialization
    void Start () 
    {
    //set the starting time
    currentTime =Time.time;//0.0s
    //get images form the Resourse floder
    //the return value is object
    this.objsOfRouses = Resources.LoadAll("images",typeof(Texture));
    int theLength =objsOfRouses.Length;

    //put the images into material arrary 
    texturesLoaded =new Texture2D[theLength];
    for (int i=0; i<theLength; i++)
    {
    this.texturesLoaded[i] =(Texture2D)this.objsOfRouses[i];
    Debug.Log("the image'name is -->"+this.texturesLoaded[i].name);
    }
    }
     
    // Update is called once per frame
    void Update () {
     
    changePic();
     

    }

    //
    void changePic(){
    endTime = Time.time;
    float timeOffset = endTime - currentTime;
    if (timeOffset>0.3){
    if (this.frameCounter<this.objsOfRouses.Length){
    this.materialOfPanel.mainTexture = texturesLoaded[frameCounter];
    ++frameCounter;
    }else{
    frameCounter=0;
    this.materialOfPanel.mainTexture = texturesLoaded[frameCounter];
    }
    //when changge one image,get the new time
    currentTime =Time.time;
    }

     
    }


    }

    最后效果如下:

  • 相关阅读:
    C++小知识之Vector用法
    云计算和大数据入门
    C++解析JSON之JsonCPP
    OSS研究
    linux内核--进程地址空间(三)
    学习笔记:修改网吧计费系统
    学习笔记:找回电脑开机密码
    例说C#深拷贝与浅拷贝
    JBossESB教程(一)——开发环境的搭建
    Java集合---ConcurrentHashMap原理分析
  • 原文地址:https://www.cnblogs.com/alongu3d/p/3252668.html
Copyright © 2011-2022 走看看