根据我的调试日志的问题是我的int计数没有问题,但int到字符串转换继续应用于原始值而不是运行时更新的计数器。 (这里有一些未使用的私人用于测试)&帧值都很好。 我的调试日志的屏幕截图: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()
{
}
}
答案 0 :(得分:0)
这是因为首先你的下一帧是"frame_000"
所以如你所见,替换方法会将000
替换为21
,但之后你的nextFrame变量是"frame_21"
所以你的字符串中没有"000"
所以你的替换方法不会做任何事情,所以nextFrame
会留在frame_21
Nextframe = Nextframe.Replace ("000", framestring);
在第一次替换后不会执行任何操作,因为其字符串不会包含000
答案 1 :(得分:0)
非常感谢,所以我对替换功能的理解不正确,我认为在每次更新时都会重置为frame_000。非常感谢你们。 是的,我会尝试提高效率。 还有,抱歉,我还不能投票;不够' rep'。