Documente Academic
Documente Profesional
Documente Cultură
com Scripts
• Processo básico:
1. Criar um script
2. Anexar a um ou mais objetos do jogo
3. Definir quaisquer propriedades do script com valores
ou com referências a outros objetos do jogo
Criando Scripts
• Importante guarda-los em uma pasta específica
• Opções de linguagem:
• Nativas – C# e UnityScript (baseada em JavaScript)
• Extensões – possibilidade de utilizar outras linguagens
.NET compilando para uma DLL compatível
Criando Scripts
• Ao clicar no script na
visão de projeto, na visão
do inspetor é exibido o
conteúdo do mesmo
• Definição de variáveis:
<variable type> <name>;
• Exemplo:
int num1;
Variáveis/Atributos
• Tipos de escopo: de classe e de método/bloco
• Exemplo:
int x = TakeDamageFromFireball();
print ("Player health: " + x);
Entrada do Usuário
• A entrada do usuário pode acontecer a partir de
diferentes meios – teclados, controles, toque, etc.
• Entrada básica:
• Com o Unity, podemos programar uma ação interativa
quando for detectado que uma dada tecla foi pressionada
• Porém, é mais aconselhado utilizar um sistema de
mapeamento genérico de controles
• São configurados através do Input Manager
Entrada do Usuário
• Para gerenciar a entrada do usuário, utilizamos
Edit > Project Settings > Input
• Pode ver os vários eixos associados as ações de entrada
• Exemplo:
Propriedades dos Eixos
Propriedade Descrição
Name Nome do eixo – como é referenciado em código
Nome que será exibido ao jogador na configuração
Descriptive Name/
do jogo – o nome “negativo” é equivalente ao nome
Descriptive Negative Name
do eixo oposto
Negative Button/ Os botões que passam os valores, negativos e
Positive Button positivos, para o eixo (ex.: setas esquerda e direita)
Alt Negative Button/ Botões alternativos que passam valores para o eixo
Alt Positive Button (ex.: as teclas A e D para o eixo horizontal)
Gravity Quão rápido o eixo irá retornar ao zero
Dead Entradas menores que esse valor serão ignoradas
Sensitivity Quão rapidamente o eixo responde à entrada
Propriedades dos Eixos
Propriedade Descrição
Quando marcada, fará que o eixo vá imediatamente a
Snap
zero quando a direção oposta for pressionada
Invert Irá inverter os controles, quando marcada
O Tipo da entrada. Se será botões do mouse, teclado,
Type
movimento do mouse ou movimento do joystick
O Eixo correspondente do dispositivo de entrada
Axis
(não se aplica aos botões)
Qual o joystick será utilizado para a entrada. Por
Joy Num
padrão, receberá entrada de todos os joysticks
Programando a Entrada
• Uma vez que os eixos foram definidos, trabalhar
com os mesmos no código é simples
• Será utilizada a classe Input, mais especificamente o
método GetAxis() – informando o nome do eixo
bool isButtonDown;
//se o botão esquerdo do mouse foi pressionado
isButtonDown = Input.GetMouseButtonDown(0);
//se o botão direito do mouse foi pressionado
isButtonDown = Input.GetMouseButtonDown(1);
//se o botão central do mouse foi pressionado
isButtonDown = Input.GetMouseButtonDown(3);
Entrada do Mouse
• O movimento do mouse se dá nos eixos X e Y, o
movimento é capturado com o método GetAxis()
float value;
//movimento no eixo X
value = Input.GetAxis("Mouse X");
//movimento no eixo Y
value = Input.GetAxis("Mouse Y");
Start () {
lightComponent = GetComponent<Light> ();
lightComponent.type = LightType.Directional;
}
Acessando Componentes Locais
• Acessando a transformada (como objeto implícito):
• Alterando esse componente, você move o objeto na cena
• Métodos – Translate(), Rotate() e localScale()
void Start() {
target = GameObject.FindWithTag("TargetCube");
}
}
Acessando Outros Objetos
• Buscando objetos por tipo (script associado):
void Start () {
target = GameObject.FindObjectByType
<CubeScript>();
}
}
Modificando Componentes do Objeto
• Uma vez com uma referência a um outro objeto –
podemos manipular seus componentes