0

根据我的调试日志,问题是我的整数计数没有问题,但是整数到字符串的转换继续适用于原始值,而不是运行时更新的计数器。(这里有一些未使用的私有用于测试)并且帧值都很好。我的调试日志的屏幕截图: http: //c2n.me/39GlfuI - 你可以看到计数器增加但“框架”没有。

希望这是不言自明的

using UnityEngine;
using System.Collections;
public class imagecycle : MonoBehaviour
{
    public string Startingframe;
    private string Nextframe;
    private int framecomp = 0;
    private int frameint;
    private int framestep = 1;
    private int maxframe = 119; 
    private string framestring;

    // Use this for initialization
    void Start ()
    {
        Nextframe = ("frame_000");
        frameint = 20;   // currently adding one to this and resetting on update
    }

    // Update is called once per frame
    void Update ()
    {
        frameint += framestep;

        //Converts framestring to int of frameint -updating frame  
        framestring = frameint.ToString();

        Debug.Log (frameint);

        // replaces loaded texture recourse with frame string:
        Nextframe = Nextframe.Replace ("000", framestring);
        // Loads texture into Currentframe:
        Texture Currentframe = Resources.Load (Nextframe) as Texture;
        // Applies texture:
        renderer.material.mainTexture = Currentframe;
        Debug.Log (Currentframe);

        if (frameint > 119) 
        {
            frameint = 1;
        }
    }   

    void LateUpdate()
    {
    }
}
4

2 回答 2

0

那是因为首先你的下一帧是 "frame_000"替换方法00021如你所见,但之后你的 nextFrame 变量是"frame_21",所以你的字符串中没有"000",所以你的替换方法不会做任何事情,所以nextFrame会留在frame_21

Nextframe = Nextframe.Replace ("000", framestring);第一次替换后不会做任何事情,因为它的字符串不包含000

于 2014-12-30T08:14:54.853 回答
0

非常感谢,所以这是我对替换功能的理解不正确,我认为它会在每次更新时重置为 frame_000。非常感谢你们。是的,我会努力提高效率。另外,对不起,我还不能投票;没有足够的“代表”。

于 2014-12-30T12:56:40.913 回答