Работаем с Stencil в Unity3D ShaderLab

Приветы. Встала вот такая задача: сделать затемнение всего экрана, но в каком-то участке сделать как бы «дырку».

Как такое можно сделать?

1 Вариант — «Латать» экран
Заделываем экран кусками — тут думаю понятно) У нас есть одна текстура круга, а остальную часть мы заделываем кусками. Реализовывать дополнительно ничего не нужно, достаточно сверстать. НО! Как только понадобиться несколько «дыр», верстка усложнится. А если нужно динамически подсвечивать часть экрана?

Читать дальше →

NGUI Unity: наследование прозрачности

На днях столкнулся с такой задачкой — нужно делать кнопку прозрачной при наведении, но иконку на ней оставлять не прозрачной. В NGUI альфа кумулятивная, т. е. у ребенка конечная альфа будет = parent.alpha * child.alpha. Чтобы не затрагивать альфу иконки, нужно перегруппировать элементы. Подробнее в видосе.

NGUI Unity обрабатываем нажатие на слово в тексте



Если вам нужно обработать нажатие на слово в тексте, то самый простой способ — использовать встроенные средства в NGUI 3.5.6+

вот скрипт:

using UnityEngine;
using System.Collections;

[RequireComponent(typeof(BoxCollider))]
public class TapLabel : MonoBehaviour
{
	private UILabel _label;

	private string _text = "My cool text";

	// Use this for initialization
	void Start ()
	{
		_label = GetComponent<UILabel>();

		_label.text = _text;

		UIEventListener.Get(_label.cachedGameObject).onPress = OnLabelPress;
	}
	
	// Update is called once per frame
	private void OnLabelPress(GameObject sender, bool pressed)
	{
		_label.text = _text;

		if(!pressed)
			return;

		Vector2 screenPos = Input.mousePosition; //grab screen coords where you tapped
		Camera cam = NGUITools.FindCameraForLayer (gameObject.layer);
		Vector3 worldPos = cam.ScreenToWorldPoint (screenPos);//fancy unity convert screen coords to world coords

		var word = _label.GetWordAtPosition(worldPos);
		
		if(!string.IsNullOrEmpty(word))
		{
			_label.text = _text.Replace(word,"[u][ff0000]" + word + "[-][/u]");
		}
	}
}


NGUI Next-Gen UI 3.8.0



В данной теме буду публиковать обновления для плагина NGUI для Unity3. Если хотите получать сообщение об обновлении, подписывайтесь на тему.

Ссылка на assetstore — перейти

NGUI 3.8.0: скачать

Если вам понравился плагин, рекомендую купить его!

NGUI + NData: Урок 5 - Коллекция. Работа с коллекцией.

В пятом уроке по NData речь пойдет о коллекциях. С ними приходится сталкиваться, когда нужно реализовать список каких-то вещей(магазин, инвентарь, рейтинг и т.д.).



Список уроков:
Урок 1
Урок 2
Урок 3
Урок 4
Урок 5
Урок 6