Изменение текстуры - Страница 2 - Форум Игроделов
Пт, 03 Май 2024, 17:50 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Форум Игроделов » UNITY3D » HELP & FAQ » Изменение текстуры
Изменение текстуры
seamanДата: Пн, 30 Мар 2015, 07:42 | Сообщение # 21
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Цитата
Правда сравнивать текстуры - не самое лучшее решение для производительности.

С чего вдруг. Сравнить два целых числа - что тут может тормозить? Или что, ты думаешь текстуры сравниваются попиксельно?
 
Сообщение
Цитата
Правда сравнивать текстуры - не самое лучшее решение для производительности.

С чего вдруг. Сравнить два целых числа - что тут может тормозить? Или что, ты думаешь текстуры сравниваются попиксельно?

Автор - seaman
Дата добавления - 30 Мар 2015 в 07:42
игнатДата: Пн, 30 Мар 2015, 09:00 | Сообщение # 22
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Да? Ну хорошо тогда...


Правила форума · участник GCC
 
СообщениеДа? Ну хорошо тогда...

Автор - игнат
Дата добавления - 30 Мар 2015 в 09:00
GSTДата: Пн, 30 Мар 2015, 12:20 | Сообщение # 23
Нет аватара
 
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline
Немного не так, не текстуру материала, а полностью весь материал менять на другой smile
А с этим скриптом что-то не так. Как минимум он не работает. Если прошлые работали, то этот вообще нет.


Сообщение отредактировал GST - Пн, 30 Мар 2015, 12:24
 
СообщениеНемного не так, не текстуру материала, а полностью весь материал менять на другой smile
А с этим скриптом что-то не так. Как минимум он не работает. Если прошлые работали, то этот вообще нет.

Автор - GST
Дата добавления - 30 Мар 2015 в 12:20
игнатДата: Пн, 30 Мар 2015, 13:30 | Сообщение # 24
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Скрипт вешать на меняемый объект - ссылку с элемента UI тоже на него поставить, соответственно (что бы не плодить ссылки на объекты - одна уже есть у Button).

Код

using UnityEngine;
using System.Collections;

public class СменаМатериала : MonoBehaviour {
       public Material m1; //назначаете свой материал
       private Material m0; //---

       void Start()    
       {
           m0 = GetComponent<Renderer>().material;//запоминаем "родной" материал
       }

       public void ПоменятьМатериал()
       {
           if (GetComponent<Renderer>().material == m0)//если настоящие материал - это "родной" материал, то:
           {
               GetComponent<Renderer>().material = m1;//назначаем материал m1
           }
           else//иначе:
           {
               GetComponent<Renderer>().material = m0;//назначаем "родной" материал
           }
       }
}



Справка: http://docs.unity3d.com/ScriptReference/Material.html



Правила форума · участник GCC
 
СообщениеСкрипт вешать на меняемый объект - ссылку с элемента UI тоже на него поставить, соответственно (что бы не плодить ссылки на объекты - одна уже есть у Button).

Код

using UnityEngine;
using System.Collections;

public class СменаМатериала : MonoBehaviour {
       public Material m1; //назначаете свой материал
       private Material m0; //---

       void Start()    
       {
           m0 = GetComponent<Renderer>().material;//запоминаем "родной" материал
       }

       public void ПоменятьМатериал()
       {
           if (GetComponent<Renderer>().material == m0)//если настоящие материал - это "родной" материал, то:
           {
               GetComponent<Renderer>().material = m1;//назначаем материал m1
           }
           else//иначе:
           {
               GetComponent<Renderer>().material = m0;//назначаем "родной" материал
           }
       }
}



Справка: http://docs.unity3d.com/ScriptReference/Material.html

Автор - игнат
Дата добавления - 30 Мар 2015 в 13:30
GSTДата: Пн, 30 Мар 2015, 15:26 | Сообщение # 25
Нет аватара
 
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline
А как он работает? Просто скрипт я повесил, ссылку сделал, но когда нажимаю на кнопку, ничего не происходит.
 
СообщениеА как он работает? Просто скрипт я повесил, ссылку сделал, но когда нажимаю на кнопку, ничего не происходит.

Автор - GST
Дата добавления - 30 Мар 2015 в 15:26
игнатДата: Пн, 30 Мар 2015, 17:21 | Сообщение # 26
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
Материал назначили?
Странно, я вреде докомментил потом... перекомментировал.



Правила форума · участник GCC
 
СообщениеМатериал назначили?
Странно, я вреде докомментил потом... перекомментировал.

Автор - игнат
Дата добавления - 30 Мар 2015 в 17:21
GSTДата: Пн, 30 Мар 2015, 17:34 | Сообщение # 27
Нет аватара
 
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline
Всё назначил, не работает. У меня такое подозрение, что здесь нет операции для смены материала, скрипт просто запоминает его, но ничего не делает.
 
СообщениеВсё назначил, не работает. У меня такое подозрение, что здесь нет операции для смены материала, скрипт просто запоминает его, но ничего не делает.

Автор - GST
Дата добавления - 30 Мар 2015 в 17:34
игнатДата: Пн, 30 Мар 2015, 17:40 | Сообщение # 28
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
На Button жмякали?


Правила форума · участник GCC
 
СообщениеНа Button жмякали?

Автор - игнат
Дата добавления - 30 Мар 2015 в 17:40
seamanДата: Пн, 30 Мар 2015, 17:52 | Сообщение # 29
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Как я понимаю - он не может привязать кнопку к скрипту.
 
СообщениеКак я понимаю - он не может привязать кнопку к скрипту.

Автор - seaman
Дата добавления - 30 Мар 2015 в 17:52
GSTДата: Пн, 30 Мар 2015, 18:06 | Сообщение # 30
Нет аватара
 
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline
Нет, просто скрипт не работает.



Я использую не button, а toggle. Там видно. Когда программа запускается, скрипт отключен. Потом, когда ставишь флажок, скрипт активируется. Но ничего не происходит.

Добавлено (30 Мар 2015, 18:06)
---------------------------------------------
А, всё, я понял, когда отправил картинку, нужно использовать ПоменятьТекстуру()... Ясно. Но это Static Parameter, мне он не нужен. Если галочку потом убрать, он остаётся. А мне нужно, чтобы всё возвращалось на место.
Можно ли сделать так, чтобы скрипт запускался через dynamic boоl?


Сообщение отредактировал GST - Пн, 30 Мар 2015, 18:42
 
СообщениеНет, просто скрипт не работает.



Я использую не button, а toggle. Там видно. Когда программа запускается, скрипт отключен. Потом, когда ставишь флажок, скрипт активируется. Но ничего не происходит.

Добавлено (30 Мар 2015, 18:06)
---------------------------------------------
А, всё, я понял, когда отправил картинку, нужно использовать ПоменятьТекстуру()... Ясно. Но это Static Parameter, мне он не нужен. Если галочку потом убрать, он остаётся. А мне нужно, чтобы всё возвращалось на место.
Можно ли сделать так, чтобы скрипт запускался через dynamic boоl?

Автор - GST
Дата добавления - 30 Мар 2015 в 18:06
игнатДата: Пн, 30 Мар 2015, 19:23 | Сообщение # 31
 
Сообщений: 706
Награды: 0
Репутация: 107
Статус: Offline
А зачем такие сложности?
P.S.: лично мне как-то сложно придумать логику без update. В таком тяжёлом случае - меняйте материал там, где выключаете скрипт.
P.P.S.: что Button, что Toggle - мне без разницы.

Или можно с изменением значения добавить вызов той функции (плюсик там нажмите).



Правила форума · участник GCC
 
СообщениеА зачем такие сложности?
P.S.: лично мне как-то сложно придумать логику без update. В таком тяжёлом случае - меняйте материал там, где выключаете скрипт.
P.P.S.: что Button, что Toggle - мне без разницы.

Или можно с изменением значения добавить вызов той функции (плюсик там нажмите).

Автор - игнат
Дата добавления - 30 Мар 2015 в 19:23
GSTДата: Пн, 30 Мар 2015, 21:18 | Сообщение # 32
Нет аватара
 
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline
В общем я пошёл через долгий и муторный путь, но другого выхода не вижу. Сделал много дублирующихся моделей, наложенных друг на друга, и кнопкой включаю нужную мне, выключая остальные.
 
СообщениеВ общем я пошёл через долгий и муторный путь, но другого выхода не вижу. Сделал много дублирующихся моделей, наложенных друг на друга, и кнопкой включаю нужную мне, выключая остальные.

Автор - GST
Дата добавления - 30 Мар 2015 в 21:18
seamanДата: Вт, 31 Мар 2015, 00:15 | Сообщение # 33
Гуру
 
Сообщений: 1748
Награды: 10
Репутация: 660
Статус: Offline
Цитата
другого выхода не вижу

Скажем так - видеть не хочешь. Слышать тоже...
 
Сообщение
Цитата
другого выхода не вижу

Скажем так - видеть не хочешь. Слышать тоже...

Автор - seaman
Дата добавления - 31 Мар 2015 в 00:15
GSTДата: Вт, 31 Мар 2015, 13:01 | Сообщение # 34
Нет аватара
 
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline
Цитата seaman ()
Скажем так - видеть не хочешь. Слышать тоже...


Могли бы и при себе свои комментарии оставить. Я тут не за этим, а за помощью. И помог реально только игнат. Другое дело, что я этой помощью не смог воспользоваться, потому что мне трудно в этом разобраться. А намекать мне на мои коммуникативные, и, косвенно, умственные способности, прошу не надо.
 
Сообщение
Цитата seaman ()
Скажем так - видеть не хочешь. Слышать тоже...


Могли бы и при себе свои комментарии оставить. Я тут не за этим, а за помощью. И помог реально только игнат. Другое дело, что я этой помощью не смог воспользоваться, потому что мне трудно в этом разобраться. А намекать мне на мои коммуникативные, и, косвенно, умственные способности, прошу не надо.

Автор - GST
Дата добавления - 31 Мар 2015 в 13:01
settipДата: Сб, 26 Ноя 2016, 11:23 | Сообщение # 35
Нет аватара
 
Сообщений: 4
Награды: 0
Репутация: 0
Статус: Offline
Вот простенький скрипт по смене одного материала на другой кликом по объекту.

Код
using UnityEngine;
using System.Collections;

public class ReplaseMat : MonoBehaviour {
public Material[] materials;
public int count = 0;

void OnMouseDown() {
if (count == materials.Length - 1)
count = 0;
else
count++;

  GetComponent<Renderer <img src="/.s/sm/23/angry.gif" border="0" align="absmiddle" alt="angry" /> ).material = materials[count];
    }
}


Сообщение отредактировал settip - Сб, 26 Ноя 2016, 11:32
 
СообщениеВот простенький скрипт по смене одного материала на другой кликом по объекту.

Код
using UnityEngine;
using System.Collections;

public class ReplaseMat : MonoBehaviour {
public Material[] materials;
public int count = 0;

void OnMouseDown() {
if (count == materials.Length - 1)
count = 0;
else
count++;

  GetComponent<Renderer <img src="/.s/sm/23/angry.gif" border="0" align="absmiddle" alt="angry" /> ).material = materials[count];
    }
}

Автор - settip
Дата добавления - 26 Ноя 2016 в 11:23
Форум Игроделов » UNITY3D » HELP & FAQ » Изменение текстуры
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024