Загрузка текстуры с использованием строки, чтобы заменить проблему

Согласно моему журналу отладки проблема заключается в том, что мои целые числа считаются без проблем, однако преобразование int в строку продолжает применяться к исходному значению, а не к обновленному счетчику во время выполнения. (здесь есть несколько неиспользуемых приватных объектов для тестирования) и все значения кадра хороши. снимок экрана моего журнала отладки: http://c2n.me/39GlfuI - как вы можете видеть, счетчик увеличивается, а "frame" - нет.

Надеюсь, это говорит само за себя

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()
    {
    }
}

2 ответа

Решение

Это потому, что в первом ваш следующий кадр "frame_000" поэтому метод замены заменит 000 с 21 как вы можете видеть, но после этого ваша переменная nextFrame "frame_21" так нет "000" в вашей строке, так что ваш метод замены не будет ничего делать так nextFrame останется в frame_21

Nextframe = Nextframe.Replace ("000", framestring); ничего не будет делать после первой замены, потому что его строка не содержит 000

Ах, большое спасибо, поэтому мое понимание функции замены было неверным, я предполагал, что она будет сбрасываться до frame_000 при каждом обновлении. Большое спасибо, ребята. И да, я постараюсь сделать это более эффективным. Кроме того, извините, я не могу голосовать еще; недостаточно реп.

Другие вопросы по тегам