Um recurso que vemos em muitos jogos por aí, são labels ou imagens sob alguns objetos.
Olhe o código a seguir:
import UnityEngine.UI;
var icone:Image;
function Start (){
icone.enabled = false;
} function Update () {
var screenPos:Vector3 = Camera.main.WorldToScreenPoint(transform.position);
icone.transform.position = screenPos;
} function OnMouseOver(){
icone.enabled = true;
} function OnMouseExit(){
icone.enabled = false;
}
No código acima podemos ver que primeiro fazemos o import da biblioteca UI da Unity, para poder trabalhar com a interface gráfica. Em seguida criou-se a variável icone do tipo Image, essa imagem será a imagem qeu ficara sob nosso gameObjet, e ela é um gameObjet Image, filho do Canvas, na nossa interface da unity.
Por padrão iniciamos nossa imagem desabilitada. Na função update usou-se o método WorldToScreenPoint, que retorna a posição do gameObject em relação a tela e em seguida colocamos nossa imagem(icone) na posição da gameObject.
Os métodos OnMouseOver e OnMouseExit, são executado quando o mouse entra e sai consecutivamente do nosso gameObject, nesse exemplo, quando o mouse está sobre nosso gameObject, habilitamos o icone, e quando o mouse sai, desabilitamos.
Dessa forma, nossa imagem será mopstrada sobre nosso gameObject, somente quando o mouse estiver sobre ele. Isso pode ser usado para dar dicas ao usuário em NPCs ou sobre teclas de ação, por exemplo:
Em um jogo, ao passar o mouse sobre algum objeto, pode-se fazer aparecer uma imagem com uma tecla de ação específica para aquele objeto.
É isso aí, explore e modifique os códigos a vontade, criando assim jogos muito mais interativos.
Comentários
Postar um comentário