Buffer icon Проекты
13 заметок с тегом

графика

Позднее Ctrl + ↑

Рисование кривых в Unity

Как нарисовать линию в Unity? А как кривую Безье? Очень просто! В Unity уже есть достаточно продвинутый компонент LineRenderer, его то я и использовал в одном из своих проектов. После упаковки в один скрипт, я бы даже сказал — в одну функцию, получилось вот что:

Можно настраивать количество сегментов в линии (качество), начальный и конечный цвет, и конечно ширину.

Исходник на Github

 Нет комментариев    1272   2016   unity   графика   разработка

2D графика для игр

Суперский блог про создание 2D графики для игр. Отличные видео и пошаговые уроки про то, как создать персонажа и подготовить его для анимации, как нарисовать камни и горы, фон и все остальное для вашей игры.

Если вы из тех, кто хочет сделать (и делает) игру полностью сам, то это то, что вам надо.

 Нет комментариев    1842   2016   графика   игры   ссылки   уроки

Загрузка спрайтов в iOS

Бывает нужно дозагрузить какие-нибудь картинки с сервера и показать их в игре, например, чтобы сделать размер установочного файла меньше.

Для загрузки спрайта из внешнего файла, я использовал такую функцию:

public static Sprite LoadSprite (string folder, string image) {
	string path = string.Format ("{0}/{1}/{2}.png", Application.temporaryCachePath, folder, image);
	if (!System.IO.File.Exists (path))
		return null;
	else {
		byte[] data = System.IO.File.ReadAllBytes (path);
		Texture2D texture = new Texture2D(2, 2);
		texture.LoadImage(data); 
		return Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(.5f, .5f));
	}
}
...
MyIcon.sprite = LoadSprite ("loaded_images", "new_icon");

Ничего необычного — читаем файл в текстуру, из текстуры делаем спрайт и применяем его к картинке. Если запустить этот код в редакторе или на android устройстве, то все будет в порядке. Но запустив его на iPhone или iPad — спрайт загрузится некорректно. Это происходит потому iOS не поддерживает формат сжатия DXT. Нужно использовать PVRTC_RGBA4.

Поэтому, немного изменяем функцию и теперь все картинку будут показываться правильно:

public static Sprite LoadSprite (string folder, string image) {
	string path = string.Format ("{0}/{1}/{2}.png", Application.temporaryCachePath, folder, image);
	if (!System.IO.File.Exists (path))
		return null;
	else {
		byte[] data = System.IO.File.ReadAllBytes (path);
		Texture2D texture;
		#if UNITY_ANDROID 
			texture = new Texture2D(2, 2);
		#elif UNITY_IOS
			texture = new Texture2D(2, 2, TextureFormat.PVRTC_RGBA4, false);
		#endif
		texture.LoadImage(data); 
		return Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(.5f, .5f));
	}
}
 Нет комментариев    366   2016   ios   unity   графика