Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Ответ
 
Опции темы
Старый 27.08.2013, 01:28   #1801
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

seaman, я не хочу его реализовывать. Мне просто нужен энумератор, который типа будет пробегать по 3д массиву. Надоело все время писать кучу вложенных циклов.
(Offline)
 
Ответить с цитированием
Старый 27.08.2013, 09:42   #1802
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Сообщение от WISHMASTER35 Посмотреть сообщение
seaman, я не хочу его реализовывать. Мне просто нужен энумератор, который типа будет пробегать по 3д массиву. Надоело все время писать кучу вложенных циклов.
Немного не понял как анонимный класс поможет сделать перебор многомерного массива. В C# есть анонимные классы без методов, они используются как промежуточные структуры данных.

var pax = new {name "PAX"age 30};

print(
pax.name); 
Имхо тебе просто надо написать метод расширения для IEnumerable

http://stackoverflow.com/questions/2...t-ienumerablet
один из ответов:
public static class ArrayExtensions
{
    public static 
IEnumerable<TToEnumerable<T>(this Array target)
    {
        foreach (var 
item in target)
            yield return (
T)item;
    }

__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 27.08.2013, 17:37   #1803
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

pax, в java можно было создавать анонимные классы с методами.
Например:
var obj = new ArrayExtensions() {
   public override void F() {...}
}
Можно было создать такое в самом методе, чтобы оно больше нигде не мешалось. Это было бы удобно.
(Offline)
 
Ответить с цитированием
Старый 27.08.2013, 18:15   #1804
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Трудно написать один раз, зато не трудно в каждом методе писать анонимные классы с вложенными методами? Я чет запутался.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 27.08.2013, 20:36   #1805
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

pax, зачем его в каждом методе писать? Это можно в одном методе написать, который будет возвращать объект анонимного класса.
И таких методов я хотел несколько, которые будят немного отличатся в реализации. Ну да черт с ним.
(Offline)
 
Ответить с цитированием
Старый 30.08.2013, 01:11   #1806
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Вопросы от новичка

Бесплатная юнити поддерживает только sm 2.0?
(Offline)
 
Ответить с цитированием
Старый 30.08.2013, 08:56   #1807
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Сообщение от dsd Посмотреть сообщение
Бесплатная юнити поддерживает только sm 2.0?
Все поддерживает.
#pragma target 3.0 - по моему так
__________________
Blitz3d to Unity Wiki

Последний раз редактировалось pax, 30.08.2013 в 11:33.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
dsd (30.08.2013)
Старый 01.09.2013, 00:25   #1808
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

Как определить объекты, которые мешают обзору главного объекта?
Т.е. камера кружится вокруг объекта и могут попадаться между камерой и объектом другие объекты, которые мешают обзору.
(Offline)
 
Ответить с цитированием
Старый 01.09.2013, 02:18   #1809
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Вопросы от новичка

Пустить луч
(Offline)
 
Ответить с цитированием
Старый 01.09.2013, 13:13   #1810
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

seaman, и сколько лучей мне пускать?
Как найти область которую объект занимает на экране?
Уж лучше искать пересечение этих областей.
(Offline)
 
Ответить с цитированием
Старый 01.09.2013, 13:55   #1811
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

пускай не луч, а сферу в сторону от игрока до камеры.
http://docs.unity3d.com/Documentatio...phereCast.html
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 02.09.2013, 01:21   #1812
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Вопросы от новичка

и сколько лучей мне пускать
5
Прекрасно давным-давно работает оклюжн камеры на этом:
УРОК
(Offline)
 
Ответить с цитированием
Старый 02.09.2013, 02:21   #1813
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

seaman, ну в камере у меня тоже так коллизия работает.
Но чтобы определить перекрывает ли собой один объект, другой объект, лучше проверять 2д bounds.
Только не пойму как найти 2д описывающий квадрат.
Точнее не пойму как спроэцировать точку на экран в систему координа т GUI.
Vector3 min = bounds.min;
		Vector3 max = bounds.max;
		Vector3[] pts = new Vector3[] {
			new Vector3(min.x, max.y, min.z),
			new Vector3(min.x, max.y, max.z),
			new Vector3(max.x, max.y, min.z),
			new Vector3(max.x, max.y, max.z),
			
			new Vector3(min.x, min.y, min.z),
			new Vector3(min.x, min.y, max.z),
			new Vector3(max.x, min.y, min.z),
			new Vector3(max.x, min.y, max.z),
		};
		
		foreach(Vector3 v in pts) {
			Vector2 v2d = Camera.main.WorldToScreenPoint(v);
			v2d = GUIUtility.ScreenToGUIPoint(v2d);
			GUI.Box( new Rect(v2d.x, v2d.y, 10, 10), GUIContent.none );
		}
В результате боксы рисуются не на своих местах, а буд-то ScreenToGUIPoint не работает.
(Offline)
 
Ответить с цитированием
Старый 02.09.2013, 02:36   #1814
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Вопросы от новичка

чтобы определить перекрывает ли собой один объект, другой объект
Но вопрос по перекрытию одного объекта другим не решаем без камеры. Т.е. нужно точка зрения - откуда смотришь. Отсюда - перекрывают, с другой точки зрения - нет. А если говорить о камере - никаких Bounds не надо. Все решается как написано по ссылке выше.

Или Вы хотите сделать свой собственный Occlusion Culling?
(Offline)
 
Ответить с цитированием
Старый 02.09.2013, 19:54   #1815
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

Сообщение от seaman Посмотреть сообщение
Но вопрос по перекрытию одного объекта другим не решаем без камеры. Т.е. нужно точка зрения - откуда смотришь. Отсюда - перекрывают, с другой точки зрения - нет. А если говорить о камере - никаких Bounds не надо. Все решается как написано по ссылке выше.

Или Вы хотите сделать свой собственный Occlusion Culling?
Да я же с помощью камеры проецирую вершины на экран.
Да и не OcclusionCulling я делаю. Мне просто надо делать прозрачными объекты, которые закрывают главный объект - цель.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 22:39.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com