[TUTORIAL] Scripts Básicos para Iniciantes
+3
Deiverson
SammyBr
AndyShow
7 participantes
Página 1 de 1
[TUTORIAL] Scripts Básicos para Iniciantes
Bom Galera Resolvi Postar Alguns Scripts que Fiz e acho que Podem Servir pra Alguém!
Não sei se Funciona na Unity 4 Uso a 5.3.5f1
Preste Atenção no Nome dos Scripts senão vai dar Erro!
AI_Random
Pequeno Sistema de AI que Anda por Points e se Assusta Quando Player Chega Muito Perto Serve Bem para Animais.
Aqui um Script que Fiz para o Som dos Passos do AI
SomPassos
Aqui um Script de Sons Aleatórios para seu AI ou para qualquer outra Coisa
SonsAleatorios
Esse Script aqui vc pode Usar para Varias Coisas,até para os Passos do AI fazer um Efeito de poeira os Algo assim,Serve para Balas tambem!
Impact_Efeito
Esse Script aqui Deleta qualquer Obj que For instanciado no Jogo com ele, ou que estiver já no Começo do Jogo com esse Script (Uso para Deletar os Efeitos depois de um Tempo)
DestruirObjEmSeg
Esse Script aqui uso Para Plantar Arvores ele Faz Uma Escala Desde 0,0,0 até quanto vc quiser! Só Jogar na Arvore ou no Obj que vc quer que Escale!
ArvoreCrescer
Ta Bem Comentado os Scripts Espero que Entendam!
Bom, Vou Postando mais Assim que Der Tempo!
Espero que Ajude Alguém!
Não sei se Funciona na Unity 4 Uso a 5.3.5f1
Preste Atenção no Nome dos Scripts senão vai dar Erro!
AI_Random
Pequeno Sistema de AI que Anda por Points e se Assusta Quando Player Chega Muito Perto Serve Bem para Animais.
- Código:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(NavMeshAgent))]
public class AI_Random : MonoBehaviour {
public GameObject[] Locais; // AQUI SÃO OS LOCAIS POR ONDE O AI VAI ANDAR ALEATORIAMENTE
public float VelocidadeAndando = 2; // Velocidade do AI Andando
public float VelocidadeFugindo = 7; // Velocidade do AI Quando ele esta Fugindo
public float DistanciaPraAssustar = 20; // Distancia que ele vai se Assustar de Vc
public float TempoQueFicaAssustado = 300; // Tempo em que ele vai ficar Assustado depois Volta a Caminhar
private int tempo;
private float Distancia;
private bool EstaAssustado;
private GameObject Jogador;
private NavMeshAgent Nav;
void Start () {
Jogador = GameObject.FindWithTag ("Player");
Nav = GetComponent<NavMeshAgent> ();
Nav.speed = VelocidadeAndando;
Nav.destination = Locais [Random.Range (0, Locais.Length)].transform.position;
EstaAssustado = false;
tempo = 0;
}
void Update (){
Distancia = Vector3.Distance (Jogador.transform.position, transform.position); // FAZ O AI ANDAR PELOS PONTOS QUE VC COLOCOU EM LOCAIS
if (Nav.remainingDistance < 5 && EstaAssustado == false) {
Nav.destination = Locais [Random.Range (0, Locais.Length)].transform.position;
Nav.speed = VelocidadeAndando;
}
if(Distancia == DistanciaPraAssustar && EstaAssustado == false){ // FAZ O AI CORRER QUANDO SE ASSUSTA
Nav.destination = Locais [Random.Range (0, Locais.Length)].transform.position;
Nav.speed = VelocidadeFugindo;
EstaAssustado = true;
}
if (EstaAssustado == true) { // VERIFICA SE O AI ESTA ASSUSTADO AI ELE FOGE POR UM TEMPO
tempo += 1;
if (tempo >= TempoQueFicaAssustado) {
Nav.destination = Locais [Random.Range (0, Locais.Length)].transform.position;
Nav.speed = VelocidadeAndando;
tempo = 0;
EstaAssustado = false;
}
}
}
}
Aqui um Script que Fiz para o Som dos Passos do AI
SomPassos
- Código:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(AudioSource))]
public class SomPassos : MonoBehaviour {
public GameObject AI; // O AI QUE VC QUER COLOCAR O SOM DOS PASSOS
public AudioClip[] SomDosPassos; // OS AUDIOS DOS PASSOS POE COLOCAR QUANTOS QUISER
public int TempoMinPassos = 10; // TEMPO MIN ENTRE OS PASSOS
public int TempoMaxPassos = 30; // TEMPO MAX ENTRE OS PASSOS
private int RandonPassos; // RANDOMIZA OS PASSOS,VOLUME E PITCH PRA FICAR BEM LEGAL
private float TempoPassos;
private float Velocidade;
void Start () {
TempoPassos = 0;
}
void Update () {
Velocidade = AI.GetComponent<NavMeshAgent> ().velocity.magnitude;
TempoPassos += 1;
if (TempoPassos > TempoMaxPassos) {
TempoPassos = 0;
}
if (TempoPassos == RandonPassos && Velocidade > 0.2f) {
GetComponent<AudioSource> ().PlayOneShot (SomDosPassos [Random.Range (0, SomDosPassos.Length)]);
}
if (Velocidade > 0.2f) {
RandonPassos = Random.Range (TempoMinPassos, TempoMaxPassos);
GetComponent<AudioSource> ().pitch = Random.Range(0.7f, 2f);
GetComponent<AudioSource> ().volume = Random.Range(0.4f, 1f);
}
}
}
Aqui um Script de Sons Aleatórios para seu AI ou para qualquer outra Coisa
SonsAleatorios
- Código:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(AudioSource))]
public class SonsAleatorios : MonoBehaviour {
public AudioClip[] Sons; // OS SONS QUE VC QUER QUE TOQUE ALEATORIAMENTE
public int RandomMax = 3500; // O TEMPO ALEATORIO QUANTO MAIOR MAIS VAI DEMORAR PRA TOCAR OS SONS
private int RandonSom;
void Update (){
RandonSom = Random.Range (1, RandomMax);
if (RandonSom == RandomMax/2) {
AudioRandom ();
}
}
void AudioRandom (){
if (GetComponent<AudioSource>().isPlaying) return;
GetComponent<AudioSource>().clip = Sons[Random.Range(0, Sons.Length)];
GetComponent<AudioSource>().Play();
}
}
Esse Script aqui vc pode Usar para Varias Coisas,até para os Passos do AI fazer um Efeito de poeira os Algo assim,Serve para Balas tambem!
Impact_Efeito
- Código:
using UnityEngine;
using System.Collections;
public class Impact_Efeito : MonoBehaviour {
// VOCE PODE IR DUPLICANDO ESSAS LINHAS E COLOCAR QUANTOS EFEITOS QUISER
public string TagTerra = "Terrain"; // AQUI VC COLOCA A TAG DO SEU OBJETO "Terrain" é só um "Exemplo"
public GameObject EfeitoTerra; // O Efeito quando Colidir na Terra por "Exemplo"
public string TagSangue = "Animal"; // AQUI VC COLOCA A TAG DO SEU OBJETO "Animal" é só um "Exemplo"
public GameObject EfeitoSangue; // O Efeito quando Colidir num Animal por "Exemplo"
public string TagMadeira = "ARVORE"; // AQUI VC COLOCA A TAG DO SEU OBJETO "ARVORE" é só um "Exemplo"
public GameObject EfeitoMadeira; // O Efeito quando Colidir em uma Madeira por "Exemplo"
void OnCollisionEnter(Collision col) {
if (col.gameObject.CompareTag (TagTerra)) {
Instantiate (EfeitoTerra, transform.position, EfeitoTerra.transform.rotation);
Destroy (this);
}
if (col.gameObject.CompareTag (TagSangue)) {
Instantiate (EfeitoSangue, transform.position, EfeitoSangue.transform.rotation);
Destroy (this);
}
if (col.gameObject.CompareTag (TagMadeira)) {
Instantiate (EfeitoMadeira, transform.position, EfeitoMadeira.transform.rotation);
Destroy (this);
}
}
}
Esse Script aqui Deleta qualquer Obj que For instanciado no Jogo com ele, ou que estiver já no Começo do Jogo com esse Script (Uso para Deletar os Efeitos depois de um Tempo)
DestruirObjEmSeg
- Código:
using UnityEngine;
using System.Collections;
public class DestruirObjEmSeg : MonoBehaviour {
public float TempoDeletar = 5;
void Start () {
Destroy (transform.gameObject, TempoDeletar);
}
}
Esse Script aqui uso Para Plantar Arvores ele Faz Uma Escala Desde 0,0,0 até quanto vc quiser! Só Jogar na Arvore ou no Obj que vc quer que Escale!
ArvoreCrescer
- Código:
using UnityEngine;
using System.Collections;
public class ArvoreCrescer : MonoBehaviour {
public float TamanhoFinalArvore = 1; // Scala Final da Arvore Depois disso esse Script é Deletado e Ela Para de Crescer!
public float TantoQueCresce = 0.01f; // Quanto Menor mais Tempo Demora Ex: 0,00001f Lembrando que 1.0f é a Escala Máx da Arvore
private Vector3 Scala;
private float TamX;
private float TamY;
private float TamZ;
void Start () {
TamX = 0;
TamY = 0;
TamZ = 0;
}
void Update () {
Scala = new Vector3 (TamX, TamY, TamZ);
transform.localScale = Scala;
if(TamX < TamanhoFinalArvore){
TamX += TantoQueCresce;
TamY += TantoQueCresce;
TamZ += TantoQueCresce;
}
if (TamX || TamY || TamZ >= TamanhoFinalArvore) { // Depois que ela Atingiu o Tamanho que vc Definiu isso Faz Excluir esse Script!
Destroy (this);
}
}
}
Ta Bem Comentado os Scripts Espero que Entendam!
Bom, Vou Postando mais Assim que Der Tempo!
Espero que Ajude Alguém!
SammyBr- Iniciante
- PONTOS : 3068
REPUTAÇÃO : 2
Idade : 24
Áreas de atuação : modelagem 3D, programação C#.Ambos eu sou iniciante
Respeito as regras :
Re: [TUTORIAL] Scripts Básicos para Iniciantes
Obrigado pelos scripts!
Só para alertar bug no script ArvoreCrescer:
ArvoreCrescer.cs(28,22): error CS0019: Operator `||' cannot be applied to operands of type `float' and `float'
3 formas de resolver:
1 - if (TamX >= TamanhoFinalArvore && TamY >= TamanhoFinalArvore && TamZ >= TamanhoFinalArvore) {
2 - Daria tambem para verificar ((TamX + TamY + TamZ)/3) >= TamanhoFinalArvore)... Como eles estão aumentando na mesma proporção, acho que não daria erro nessa formula de soma com divisão por 3...
3 - Só verificar 1 variavel em vez das 3, por que estão somando proporcionalmente igual
Depois vou testar com calma...
Só para alertar bug no script ArvoreCrescer:
ArvoreCrescer.cs(28,22): error CS0019: Operator `||' cannot be applied to operands of type `float' and `float'
3 formas de resolver:
1 - if (TamX >= TamanhoFinalArvore && TamY >= TamanhoFinalArvore && TamZ >= TamanhoFinalArvore) {
2 - Daria tambem para verificar ((TamX + TamY + TamZ)/3) >= TamanhoFinalArvore)... Como eles estão aumentando na mesma proporção, acho que não daria erro nessa formula de soma com divisão por 3...
3 - Só verificar 1 variavel em vez das 3, por que estão somando proporcionalmente igual
Depois vou testar com calma...
Última edição por Deiverson em Seg Dez 05, 2016 1:49 pm, editado 1 vez(es) (Motivo da edição : verificando outras soluções)
Deiverson- Iniciante
- PONTOS : 3514
REPUTAÇÃO : 3
Respeito as regras :
Re: [TUTORIAL] Scripts Básicos para Iniciantes
Man muda o script faz mais simples o da árvore
- ArvoreCrescer:
- Código:
using UnityEngine;using System.Collections;
public class ArvoreCrescer : MonoBehaviour {
public float TamanhoFinalArvore = 1; // Scala Final da Arvore Depois disso esse Script é Deletado e Ela Para de Crescer! public float TantoQueCresce = 0.01f; // Quanto Menor mais Tempo Demora Ex: 0,00001f Lembrando que 1.0f é a Escala Máx da Arvore private Vector3 Scala; private float Tamanho; void Start () {Tamanho = 0; }
void Update () { Scala = new Vector3 (Tamanho, Tamanho, Tamanho);
transform.localScale = Scala; if(TamX < TamanhoFinalArvore){ Tamanho += TantoQueCresce; } if (Tamanho >= TamanhoFinalArvore) { // Depois que ela Atingiu o Tamanho que vc Definiu isso Faz Excluir esse Script! Destroy (this); } }}
RC0D3- Iniciante
- PONTOS : 3570
REPUTAÇÃO : 5
Idade : 23
Respeito as regras :
RC0D3- Iniciante
- PONTOS : 3570
REPUTAÇÃO : 5
Idade : 23
Respeito as regras :
Re: [TUTORIAL] Scripts Básicos para Iniciantes
Muito bom, testei eles é funciona perfeitamente, parabéns :D
rafaelllsd- ProgramadorMaster
- PONTOS : 5241
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Scripts Básicos para Iniciantes
Por acaso não teria algum bem comentado de um First Personal Controller? ficaria muito feliz :D
Weslley- Moderador
- PONTOS : 5726
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Tópicos semelhantes
» [TUTORIAL] AI que cria scripts para você, inclusive scripts para Unity !!!!
» [TUTORIAL] Animação customizável (Por scripts)
» [Curso Grátis para iniciantes] Um Ótimo Lugar para aprender Unity
» [TUTORIAL] Como Mudar o Editor de scripts
» [RESOLVIDO] Inventário para iniciantes
» [TUTORIAL] Animação customizável (Por scripts)
» [Curso Grátis para iniciantes] Um Ótimo Lugar para aprender Unity
» [TUTORIAL] Como Mudar o Editor de scripts
» [RESOLVIDO] Inventário para iniciantes
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos