Загрузка текстур WWW

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Загрузка текстур WWW

Сообщение Алексей_ 12 авг 2018, 19:13

Всем привет.

Хочу загрузить 4 текстуры с локального диска C и наложить их

https://yadi.sk/i/GeZAVSAj3aA2ix

В сцене есть GameObject MamaPedestal и у этого объекта есть дети MamaPedestalBorder, MamaPedestalBottom, MamaPedestalStairs, MamaPedestalStairsBorder
На MamaPedestal висит скрипт TextureLoader представленый ниже

В этом скрипте я хочу загрузить текстуры на MamaPedestalBorder, MamaPedestalBottom, MamaPedestalStairs, MamaPedestalStairsBorder
Текстуры лежать на диске C:/Textures и имеют вид MamaPedestalBorder.jpg, MamaPedestalBottom.jpg, MamaPedestalStairs.jpg, MamaPedestalStairsBorder.jpg

У меня запинка в строчке GetComponent<Renderer>().material.mainTexture = www.texture;

не знаю как сделать чтобы ребенок MamaPedestalBorder получил текстуру MamaPedestalBorder.jpg и так далее
ребенок MamaPedestalBottom текстура MamaPedestalBottom.jpg
ребенок MamaPedestalStairs текстура MamaPedestalStairs.jpg
ребенок MamaPedestalStairsBorder текстура MamaPedestalStairsBorder.jpg

Кто может помочь наставить на путь истинный

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class TextureLoader : MonoBehaviour
{      
        void Start()
        {
                foreach (Transform child in transform)
                {
                        StartCoroutine(LoaderTexture(""+child+""));
                }              
        }

        public IEnumerator LoaderTexture(string childName)
        {
                WWW www = new WWW("file:///C:/Textures/"+childName+".jpg");
                yield return www;
       
                GetComponent<Renderer>().material.mainTexture = www.texture;
        }
}      
 
Алексей_
UNец
 
Сообщения: 24
Зарегистрирован: 30 авг 2013, 16:28

Re: Загрузка текстур WWW

Сообщение Anonymyx 12 авг 2018, 19:56

Из-за оператора конкатенации вызывается Transform.ToString(), который возвращает не только имя, но и тип объекта. Попробуйте child.name.
Тогда пустые строки вокруг будут не нужны.
А GetComponent не надо каждый раз у родителя получать.
И WWW лучше обернуть в using.

Синтаксис:
Используется csharp
void Start ()
    {  
        foreach(Transform child in transform)
            StartCoroutine(LoadTexture(child));
        }

    IEnumerator LoadTexture(Transform trn)
    {
        using (WWW www = new WWW("file:///C:/" + trn.name + ".jpg"))
        {
            yield return www;
            trn.GetComponent<Renderer>().material.mainTexture = www.texture;
        }
    }
Аватара пользователя
Anonymyx
Адепт
 
Сообщения: 1973
Зарегистрирован: 05 апр 2015, 15:55

Re: Загрузка текстур WWW

Сообщение Алексей_ 12 авг 2018, 20:45

Большое вам человеческое
Это то что нужно благодарю
Алексей_
UNец
 
Сообщения: 24
Зарегистрирован: 30 авг 2013, 16:28


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19