 |
Общие вопросы вопросы не попадающие ни в один из доступных разделов |
05.06.2012, 16:58
|
#331
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от pie
Как поменять шейдер материала на лету?
if(Input.GetKey(KeyCode.A)) { brakeLights[0].renderer.material[0].shader = тут нужно обратиться к стандартному шейдеру self-illumin/diffuse; }else{ brakeLights[0].renderer.material[0].shader = а тут к обычному diffuse; }
Как обращаться к стандартным шейдерам?
|
Я думаю проще бедет сделать так:
Public Material lol_1; Public Material lol_2;
void Update() { if(Input.GetKeyDown(KeyCode.A)) renderer.material=lol_1; else renderer.material=lol_2; }
Надо кусок одной текстуры затайлить на другой(квадратная карта), как это можно сделать не Texture.setPixel()? (надо циферки из текстуры нарисовать на другой всего раз)
|
(Offline)
|
|
05.06.2012, 22:42
|
#332
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от Костян
Надо кусок одной текстуры затайлить на другой(квадратная карта), как это можно сделать не Texture.setPixel()? (надо циферки из текстуры нарисовать на другой всего раз)
|
А вот это не подойдет (вторая перегрузка)?
Texture2D.GetPixels
Texture2D.SetPixels
Только обе текстуры должны поддерживать чтение и запись пикселей (можно включить в режиме Advanced).
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
06.06.2012, 11:27
|
#333
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Вопросы от новичка
using UnityEngine; using System.Collections;
public class Numbers : MonoBehaviour {
public Texture2D NumberTex; public int Num=0; public Vector2 Pos; public bool alignRight=true; public Texture2D RenderTo; private int Block_x=0; private int Block_y=0; private Color[,] Pixels=new Color[10,128*128]; void Start () { if(NumberTex) { Block_x=(int)NumberTex.width/10; Block_y=NumberTex.height; for(int i=0;i<10;i++){ Color[] tmp=NumberTex.GetPixels(i*Block_x,0,Block_x,Block_y); for(int n=0;n<tmp.Length;n++) Pixels[i,n]=tmp[n]; } } } void Update () { char[] tmp_1=Num.ToString().ToCharArray(); if(RenderTo) { for(int i=0;i<tmp_1.Length;i++) { Debug.Log(int.Parse(tmp_1[i].ToString())); if(alignRight) -----------ТУТ------------->RenderTo.SetPixels(Pos.x-(i*Block_x),Pos.y,Block_x,Block_y,---->Pixels[int.Parse(tmp_1[i].ToString())]); } } } }
Я так понял среда .NET вообще не дружит с массивами?
Как мне получить к внутренний массив в двумерном массиве?
//Например как в С:
int lol[10,512];
int 2lol[512]=lol[0];
?
|
(Offline)
|
|
06.06.2012, 11:48
|
#334
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от Костян
Я так понял среда .NET вообще не дружит с массивами
|
ну да, тысячи проектов обходятся вообще без массивов, потому что "среда .NET c ними не дружит", всё верно 
|
(Offline)
|
|
06.06.2012, 13:25
|
#335
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от Костян
Pixels[int.Parse(tmp_1[i].ToString())]);
|
Что это за страсть такая?
Сообщение от Костян
Как мне получить к внутренний массив в двумерном массиве?
|
Объяви массив по другому:
private Color[][] Pixels=new Color[10][];
|
(Offline)
|
|
06.06.2012, 21:57
|
#336
|
Бывалый
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений (для 357 пользователей)
|
Ответ: Вопросы от новичка
Я конечно понимаю, что работа из другого потока может создать ошибки. Но зачем запретили даже со своими полями работать, если скрипт наследован от юнитивских классов(
Вот как быть? В префабе, в ScriptableObject храню нужные мне данные. И с этими данными нужно работать в другом потоке. Такой облом аж плачу(
Еще обнаружил, что в префабе не будят хранится данные сериализованного объекта, если ссылка на родительский класс этого объекта.
Хотел сделать [SerializeField] private Figure figure = new Cube(); А в ней хранить разные типы объектов, но хръ!
Не говоря уже, что если не сделать new Cube(), то юнити сам создаст объект Figure не смотря на то, что этот класс абстрактный))
|
(Offline)
|
|
07.06.2012, 12:33
|
#337
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: Вопросы от новичка
Как передать информацию из одного уровня в другой?? Например я из Menu захожу на Level_1 и мне нужно передать настройки игры.
|
(Offline)
|
|
07.06.2012, 13:23
|
#338
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от is.SarCasm
Как передать информацию из одного уровня в другой?? Например я из Menu захожу на Level_1 и мне нужно передать настройки игры.
|
если много, то можно завести одни статичный массив и записать в него конфу, хотя можно все переменные статичить:
public static int lolo
|
(Offline)
|
|
07.06.2012, 13:31
|
#339
|
Разработчик
Регистрация: 14.12.2008
Адрес: Томск
Сообщений: 530
Написано 270 полезных сообщений (для 883 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от is.SarCasm
Как передать информацию из одного уровня в другой?? Например я из Menu захожу на Level_1 и мне нужно передать настройки игры.
|
Есть несколько способов.
1) Можно в меню создать отдельный объект с настройками и добавить на него компонент с простыми строчками:
void Awake() {
DontDestroyOnLoad(gameObject);
}
После этого этот объект не будет удаляться при переходе от одного уровня в другой. В уровне Level_1, допустим, можно написать что-то вроде:
void Start() {
GameObject go = GameObject.Find("OPTIONS");
MyOptions mo = go.GetComponent<MyOptions>();
// и так далее...
}
2) Самый простой, на мой взгляд. Просто создай статичный класс. Его даже на сцену не нужно вытаскивать.
public class Options : MonoBehaviour {
public static int screenWidth;
public static int screenHeight;
public static float soundVolume;
}
И всё! Теперь из любого скрипта можешь обращаться к нему напрямую: Options.soundVolume = 1.0F;
И что-нибудь читать из него: int sw = Options.screenWidth;
При переходе из одного уровня в другой содержимое статичного класса не обнуляется.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
07.06.2012, 16:06
|
#340
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от pax
Что это за страсть такая?
Объяви массив по другому:
private Color[][] Pixels=new Color[10][];
|
Страсть-самый простой способ из числа сделать массив цифр, а выглядит она так:
int lol=122345678; string[] lol_str=Split.(lol.ToString().Replase(""," ")," ");//сплит не держит пустую "" int lol_int= new int[]; for(int i=0;i<lol_str.Length();i++) lol_int[i]=int.Parse(lol_str[i]);
|
(Offline)
|
|
08.06.2012, 09:45
|
#341
|
ПроЭктировщик
Регистрация: 04.11.2011
Сообщений: 176
Написано 19 полезных сообщений (для 64 пользователей)
|
Ответ: Вопросы от новичка
Всем привет! У меня появилось 2 вопроса:
1) Есть ли где нибудь пример палитры которая высвечивается в GUI и при выборе цвета некий объект тоже меняет цвет.
2) Как заставить объект двигаться по поинтам. То бишь по определенному пути.
|
(Offline)
|
|
08.06.2012, 10:26
|
#342
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
1) Найди картинку с палитрой, читай с нее цвет пикселя. В более сложном случае тебе надо работать с HSV/HSL/HSB
2) Тут был хороший пример перемещения по вэйпоинтам. А вообще все зависит от задачи.
|
(Offline)
|
|
08.06.2012, 15:31
|
#343
|
ПроЭктировщик
Регистрация: 04.11.2011
Сообщений: 176
Написано 19 полезных сообщений (для 64 пользователей)
|
Ответ: Вопросы от новичка
У кого есть или кто знает где найти дайте ссылку пожалуйста на пример реализации техники. как то давно сам находил. теперь никак не могу найти. там можно было переключаться между разными средствами передвижения. там был внедорожник, вертолет, самолет, катер, танк.
|
(Offline)
|
|
08.06.2012, 22:41
|
#344
|
Бывалый
Регистрация: 17.05.2009
Адрес: Днепропетровск
Сообщений: 672
Написано 180 полезных сообщений (для 428 пользователей)
|
Ответ: Вопросы от новичка
`System.IO.File' does not contain a definition for `WriteAllLines'
|
WTF?
|
(Offline)
|
|
08.06.2012, 22:49
|
#345
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Вопросы от новичка
Сообщение от is.SarCasm
WTF?
|
Платформа? Какие выбраны настройки Mono? 2.0 или 2.0 Subset? Второй урезанный. Да и не обещал никто, что абсолютно все функции будут реализованы в Mono из Net Framework, который использует Unity.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:13.
|