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

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

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

Unity Мультиплатформенный инструмент для разработки игр

Ответ
 
Опции темы
Старый 05.11.2010, 11:15   #301
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Другого "нормального" способа определить нахождение мышки над GUI не знаю. GUIElement, GUITexture, GUIText, GUILayer - это отдельная часть от GUI. Я с Unity знаком не так долго, но вроде они остались для поддержки старых версий (но утверждать не могу).

С версией Unity 3.1 вроде обещают новый GUI. Возможно там будут универсальные функции для этой задачи. Ждем ее выхода еще по тому, что обещают внедрить новые инструменты по работе с текстурами. И вроде она должна выйти вот вот...
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 05.11.2010, 20:25   #302
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Ответ: Фак по Юнити.

А меж тем все прозаично:
GUIText, GUITexture, GUIElement очень удобны для отрисовки HUD-а, а UnityGUI - для менюшек.
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Старый 05.11.2010, 20:47   #303
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

а GL еще удобнее
http://shgames.ru/unity/font/
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
h1dd3n (05.11.2010)
Старый 06.11.2010, 10:30   #304
Stanis1av
AnyKey`щик
 
Аватар для Stanis1av
 
Регистрация: 23.10.2010
Адрес: UKRAINE,Crimea,Simferopol
Сообщений: 4
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Фак по Юнити.

Сообщение от pax Посмотреть сообщение
Другого "нормального" способа определить нахождение мышки над GUI не знаю.
В общем воспользовался твоей идеей, все отлично работает.

переделал update() , а точнее убрал,сделал так
public static bool mouseOnGUI (Vector2 mp) {
	
mp.y = Screen.height - mp.y; 
			
foreach (var rect in GUIRects) {
		   
if(rect.Value.Contains(mp)) {
			   
return true;
  }
 }		
return false;
}
теперь обращаюсь к этому методу так GUIGame.mouseOnGUI(Input.mousePosition)

да... щас подумал правильней было-бы возвращать было имя GUI для универсальности.

В общем, огромное спасибо.
(Offline)
 
Ответить с цитированием
Старый 06.11.2010, 10:47   #305
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Пожалуйста
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 24.11.2010, 23:44   #306
Pan89
AnyKey`щик
 
Регистрация: 24.11.2010
Сообщений: 7
Написано одно полезное сообщение
Ответ: Фак по Юнити.

Вопросы:
1. Как работать с бинарными файлами (read, write)? Никак не могу найти подходящий класс.
2. Как рендерить в текстуру?
3. Надо ли удалять объект после оператора new? Если да, то где: awake(), start(), update(), ...?

Использую бесплатную версию, JavaScript.
(Offline)
 
Ответить с цитированием
Старый 25.11.2010, 00:58   #307
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Счастье Ответ: Фак по Юнити.

1. Как работать с бинарными файлами (read, write)? Никак не могу найти подходящий класс.
В самом Юнити обертки для этих операций нет, ищи подобное для самого JavaScript

2. Как рендерить в текстуру?
Буквально позавчера (или нет?) разбирался, вот к чему пришел:
var ProjectedText : String = "";

private var cam : GameObject;
private var tObj: GameObject;
private var proj : Projector;
private var shadow_tex:RenderTexture;
static var original_tex:Texture;

function Start () {
	cam = GameObject.FindWithTag("AdditionalCam");
	tObj = GameObject.FindWithTag("ProjectorHelper");
	proj = gameObject.GetComponent(Projector);
	shadow_tex = RenderTexture(Screen.width, Screen.height, 0);
	original_tex = proj.material.GetTexture("_ShadowTex");
	
	shadow_tex.width = 1024;
	shadow_tex.height = 1024;
	shadow_tex.useMipMap = true;
	shadow_tex.Create();
	
	// set special object GUIText to text string
	tObj.guiText.text = ProjectedText;
	tObj.guiText.material.color = Color(0.1, 0.1, 0.1, 1);
	
	// render to texture screen
	cam.camera.enabled = true;
	cam.camera.targetTexture = shadow_tex;
	cam.camera.Render();
	
	// asign texture to material
	proj.material.SetTexture("_ShadowTex",shadow_tex);
	
	// reset to defaults
	cam.camera.enabled = false;
	tObj.guiText.text = "";
}

function OnApplicationQuit() {
	proj.material.SetTexture("_ShadowTex",original_tex);
}
Что делает:
Рендерит в текстуру проектора текст, содержащийся в строке, в соответствии с настройками объекта с GUIText и тегом "ProjectorHelper"

Как работает:
  • находит дополнительную (можно и с основной - поправка 1) камеру, объект с текстом GUIText, устанавливает ссылку на компонент проектора (так было надо), сохраняет оригинальную текстуру проектора в переменную (чтобы потом в редакторе проектор не "испортился")
  • создает рендер-текстуру, задает ее настройки. Обрати внимание, что рендер-текстура не создается моментально - только после проверки IsActive или вызова Create()
  • устанавливается текст для объекта, который будет рендерится (рендерится только он из-за настроек culling layers камеры)
  • включается дополнительная камера (по умолчанию выключена была, чтоб не отвлекала)
  • устанавливается текстура, в которую пойдет рендер
  • делается рендер))
  • применяется отрендереная текстура в материал проектора
  • сбрасываются настройки

Поправка 1.
Если делать это через главную и единственную камеру в сцене, то я думаю нужно не включать-выключать компонент камеры у её объекта и вместо этого устанавливать в конце её targetTexture = 0. Ну и если нужно это делать в рантайме, то все из Start переносится в Update по условию (или без него, если вы мазохист)

3. Надо ли удалять объект после оператора new? Если да, то где: awake(), start(), update(), ...?
Тут точно не скажу... Порой бывает нужно оставлять объекты до конца работы програмы (или сцены), иногда - удалять после пары действий.
Awake и прочие - это уже куски скрипта. А кто на новый GO будет тебе скрипт вешать? Скрипт нужно подготовить для объекта заранее, если хочешь его на создаваемый объект повесить.
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
pax (25.11.2010)
Старый 25.11.2010, 02:21   #308
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

  1. C бинарными файлами работать можно через классы System.IO. Справка по ним тут: http://msdn.microsoft.com/ru-ru/library/system.io.aspx
    Пример подключения классов из этого пространства имен здесь: http://www.unifycommunity.com/wiki/i..._Load_from_XML правда для сохранения текста, но это одно и тоже. Эти классы не работают в WebPlayer. В нем работа с файлами запрещена.
  2. Самый простой способ - создать в ассетах RenderTexture. Создать камеру, камере указать в качестве цели текстуру. Программный способ приведен Taugeshtu, за что ему спасибо. Скажу что камеру включать для функции Render не надо. Цель визуализации так же можно указать как RenderTexture.active.
  3. Если это объекты Unity (унаследованные от UnityEngine.Object), то удалять их надо когда они не нужны функцией Destroy(). Если это другие классы, то сборщик мусора сам позаботится об их удалении. Структуры и ValueType'ы (int, float, Vector3, Rect, Quaternion) удаляются при выходе из области видимости (хотя для js по моему для них конструктор не нужен). Все Object'ы удаляются при загрузке новой сцены, если им принудительно не сказали не уничтожаться.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Taugeshtu (25.11.2010)
Старый 26.11.2010, 21:09   #309
Nuprahtor
Элита
 
Аватар для Nuprahtor
 
Регистрация: 26.07.2008
Сообщений: 1,972
Написано 1,095 полезных сообщений
(для 3,923 пользователей)
Ответ: Фак по Юнити.

Возникла проблема - с недавнего времени не могу зарегистрировать юнити. То есть регистрация идет, но после перезагрузки компьютера юнити просит повторить эту операцию. Проверялся CureIt, вирусов не обнаружил.
В чем может быть проблема?
(Offline)
 
Ответить с цитированием
Старый 26.11.2010, 21:29   #310
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

id диска не меняется после перезагрузки?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 26.11.2010, 21:54   #311
Nuprahtor
Элита
 
Аватар для Nuprahtor
 
Регистрация: 26.07.2008
Сообщений: 1,972
Написано 1,095 полезных сообщений
(для 3,923 пользователей)
Ответ: Фак по Юнити.

Записал id диска
Зарегистрировал юнити. Работает
Перезагрузился - id диска тот же, юнити не работает
(Offline)
 
Ответить с цитированием
Старый 26.11.2010, 21:58   #312
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Тогда не знаю. Попробуй запускать Unity от имени администратора...
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 27.11.2010, 20:07   #313
Nuprahtor
Элита
 
Аватар для Nuprahtor
 
Регистрация: 26.07.2008
Сообщений: 1,972
Написано 1,095 полезных сообщений
(для 3,923 пользователей)
Ответ: Фак по Юнити.

Попробуй запускать Unity от имени администратора...
Пробовал
Черт, и копирование .ilf файла для повторной регистрации не помогает...
(Offline)
 
Ответить с цитированием
Старый 04.12.2010, 12:26   #314
Pan89
AnyKey`щик
 
Регистрация: 24.11.2010
Сообщений: 7
Написано одно полезное сообщение
Ответ: Фак по Юнити.

Еще один вопрос, но больше он относится к программированию по C#:
какие передать параметры, в конструктор GameObject(string name, params Type[] components), для создания камеры?
(Offline)
 
Ответить с цитированием
Старый 04.12.2010, 12:37   #315
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Так наверное:
Camera cam = new GameObject("MyCam"typeof(Camera)).camera
или так:
Camera cam = new GameObject("MyCam").AddComponent<Camera>(); 
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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