[TUTORIAL] Como fazer um TELEPORTE
+5
SouDOido513532
Gabriel César CORINTHIANS
Zecandy
dstaroski
MarcosSchultz
9 participantes
Página 1 de 1
[TUTORIAL] Como fazer um TELEPORTE
Fala galera, fiz um tutorialzinho simples mostrando como fazer um teleporte com destinos aleatórios, destroy e tudo mais.
Vídeo:
Script:
Vídeo:
Script:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(BoxCollider))]
[RequireComponent(typeof(AudioSource))]
public class Teleporte : MonoBehaviour {
public Transform[] destinos;
public AudioClip audioTeleporte;
[Space(10)]
public bool destruirAoColidir = false;
AudioSource emissorDeSom;
bool rotinaIniciada = false;
void Awake () {
emissorDeSom = GetComponent<AudioSource> ();
emissorDeSom.playOnAwake = false;
emissorDeSom.loop = false;
GetComponent<BoxCollider> ().isTrigger = true;
}
void OnTriggerEnter (Collider other) {
if (destinos.Length > 0 && !rotinaIniciada) {
int destino = Random.Range (0, destinos.Length);
if (destinos [destino]) {
other.transform.position = destinos [destino].position;
other.transform.rotation = destinos [destino].rotation;
if (destruirAoColidir) {
StartCoroutine ("EsperarParaDestruir");
}
}
if (audioTeleporte) {
emissorDeSom.clip = audioTeleporte;
emissorDeSom.PlayOneShot (emissorDeSom.clip);
}
}
}
IEnumerator EsperarParaDestruir(){
rotinaIniciada = true;
MeshRenderer mesh = GetComponent<MeshRenderer> ();
if (mesh) {
mesh.enabled = false;
}
yield return new WaitForSeconds (5);
Destroy (gameObject);
}
}
Re: [TUTORIAL] Como fazer um TELEPORTE
Muito bom cara, como nosso amigo acima disse vai ajudar muito
Zecandy- Mestre
- PONTOS : 3258
REPUTAÇÃO : 155
Idade : 41
Respeito as regras :
Re: [TUTORIAL] Como fazer um TELEPORTE
UOUUUUUU!!!!!!! QUE TOP MARCOS! MUITO BOM MESMO! ^^
Gabriel César CORINTHIANS- Membro
- PONTOS : 2454
REPUTAÇÃO : 11
Áreas de atuação : 0
Respeito as regras :
Re: [TUTORIAL] Como fazer um TELEPORTE
Vlw mesmo, em breve meu joguinho estará completo, mas eu queria saber, aonde vc aprendeu tudo isso!
SouDOido513532- Iniciante
- PONTOS : 1830
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Como fazer um TELEPORTE
SouDOido513532 escreveu:Vlw mesmo, em breve meu joguinho estará completo, mas eu queria saber, aonde vc aprendeu tudo isso!
No YouTube, heueheuehe.
Canais como o do Paulo(Wemakeagame), GamesIndie, xxxgutoxxx, dentre outros... Tudo no YouTube
Re: [TUTORIAL] Como fazer um TELEPORTE
Teria como adaptar esse script para quando eu chegasse no ponto de onibus os passageiros se teletransportavam para os bancos sentados?
mama2401- Avançado
- PONTOS : 2145
REPUTAÇÃO : 2
Respeito as regras :
Re: [TUTORIAL] Como fazer um TELEPORTE
mama2401 escreveu:Teria como adaptar esse script para quando eu chegasse no ponto de onibus os passageiros se teletransportavam para os bancos sentados?
sim... na verdade, é só fazer um "objeto.transform.position = novaposicao" em vez do "transform.position = novaposicao"
Re: [TUTORIAL] Como fazer um TELEPORTE
Daniel Dória escreveu:é possivel fazer isso funcionar no modo Multiplayer?
Sim... é um transform.position, então o que se move vai ser sincronizado no cliente também. É 100% funcional
Re: [TUTORIAL] Como fazer um TELEPORTE
Como colocar nesse script aí pra ele teleportar se apertar E?
em que parte devo colocar?
[list=linenums]
[*]using System.Collections;
[*]using System.Collections.Generic;
[*]using UnityEngine;
[*][RequireComponent(typeof(BoxCollider))]
[*][RequireComponent(typeof(AudioSource))]
[*]public class Teleporte : MonoBehaviour {
[*] public Transform[] destinos;
[*] public AudioClip audioTeleporte;
[*] [Space(10)]
[*] public bool destruirAoColidir = false;
[*] AudioSource emissorDeSom;
[*] bool rotinaIniciada = false;
[*] void Awake () {
[*] emissorDeSom = GetComponent<AudioSource> ();
[*] emissorDeSom.playOnAwake = false;
[*] emissorDeSom.loop = false;
[*] GetComponent<BoxCollider> ().isTrigger = true;
[*] }
[*] void OnTriggerEnter (Collider other) {
[*] if (destinos.Length > 0 && !rotinaIniciada) {
[*] int destino = Random.Range (0, destinos.Length);
[*] if (destinos [destino]) {
[*] other.transform.position = destinos [destino].position;
[*] other.transform.rotation = destinos [destino].rotation;
[*] if (destruirAoColidir) {
[*] StartCoroutine ("EsperarParaDestruir");
[*] }
[*] }
[*] if (audioTeleporte) {
[*] emissorDeSom.clip = audioTeleporte;
[*] emissorDeSom.PlayOneShot (emissorDeSom.clip);
[*] }
[*] }
[*] }
[*] IEnumerator EsperarParaDestruir(){
[*] rotinaIniciada = true;
[*] MeshRenderer mesh = GetComponent<MeshRenderer> ();
[*] if (mesh) {
[*] mesh.enabled = false;
[*] }
[*] yield return new WaitForSeconds (5);
[*] Destroy (gameObject);
[*] }
[*]}
[/list]
em que parte devo colocar?
[list=linenums]
[*]using System.Collections;
[*]using System.Collections.Generic;
[*]using UnityEngine;
[*][RequireComponent(typeof(BoxCollider))]
[*][RequireComponent(typeof(AudioSource))]
[*]public class Teleporte : MonoBehaviour {
[*] public Transform[] destinos;
[*] public AudioClip audioTeleporte;
[*] [Space(10)]
[*] public bool destruirAoColidir = false;
[*] AudioSource emissorDeSom;
[*] bool rotinaIniciada = false;
[*] void Awake () {
[*] emissorDeSom = GetComponent<AudioSource> ();
[*] emissorDeSom.playOnAwake = false;
[*] emissorDeSom.loop = false;
[*] GetComponent<BoxCollider> ().isTrigger = true;
[*] }
[*] void OnTriggerEnter (Collider other) {
[*] if (destinos.Length > 0 && !rotinaIniciada) {
[*] int destino = Random.Range (0, destinos.Length);
[*] if (destinos [destino]) {
[*] other.transform.position = destinos [destino].position;
[*] other.transform.rotation = destinos [destino].rotation;
[*] if (destruirAoColidir) {
[*] StartCoroutine ("EsperarParaDestruir");
[*] }
[*] }
[*] if (audioTeleporte) {
[*] emissorDeSom.clip = audioTeleporte;
[*] emissorDeSom.PlayOneShot (emissorDeSom.clip);
[*] }
[*] }
[*] }
[*] IEnumerator EsperarParaDestruir(){
[*] rotinaIniciada = true;
[*] MeshRenderer mesh = GetComponent<MeshRenderer> ();
[*] if (mesh) {
[*] mesh.enabled = false;
[*] }
[*] yield return new WaitForSeconds (5);
[*] Destroy (gameObject);
[*] }
[*]}
[/list]
Triskal- Avançado
- PONTOS : 1211
REPUTAÇÃO : 7
Respeito as regras :
Re: [TUTORIAL] Como fazer um TELEPORTE
- Código:
void Update () {
if (Input.GetKey("e")) {
if (destinos.Length > 0 && !rotinaIniciada) {
int destino = Random.Range (0, destinos.Length);
if (destinos [destino]) {
transform.position = destinos [destino].position;
transform.rotation = destinos [destino].rotation;
if (destruirAoColidir) {
StartCoroutine ("EsperarParaDestruir");
}
}
if (audioTeleporte) {
emissorDeSom.clip = audioTeleporte;
emissorDeSom.PlayOneShot (emissorDeSom.clip);
}
}
}
}
TIKO- Avançado
- PONTOS : 1544
REPUTAÇÃO : 29
Idade : 16
Áreas de atuação : Modelagem 3D (Básico), Programação (Mais básico ainda), Unity 3D, C#
Respeito as regras :
Tópicos semelhantes
» [TUTORIAL]Como fazer kitMedico (C#)
» [TUTORIAL] Como fazer um Sol Realista na Unity 5 ( Sun Shafts )
» [TUTORIAL] Unity 3D - Como fazer um imã simples.
» [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5
» [TUTORIAL] Como fazer Espelhos na unity FREE
» [TUTORIAL] Como fazer um Sol Realista na Unity 5 ( Sun Shafts )
» [TUTORIAL] Unity 3D - Como fazer um imã simples.
» [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5
» [TUTORIAL] Como fazer Espelhos na unity FREE
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos