Instantiate e OntriggerEnter Duvida
4 participantes
Página 1 de 1
Instantiate e OntriggerEnter Duvida
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class Instanciar : MonoBehaviour {
private GameObject personagemTAG;
public Vector3 posicao, rotacao;
//[Header("Tempo para Instanciar")]
//public string Tempo;
[Header("Desing")]
public GameObject Texto, Imagem;
// :)
void Start () {
personagemTAG = GameObject.FindGameObjectWithTag ("Oficina");
Texto.gameObject.SetActive(false);
Imagem.gameObject.SetActive (false);
}
void OntriggerEnter (Collider col) {
if (col.gameObject.name == personagemTAG.name) {
Texto.gameObject.SetActive(true);
Imagem.gameObject.SetActive (true);
Input.GetKeyDown (KeyCode.KeypadEnter);
Instantiate (personagemTAG, posicao, Quaternion.Euler (rotacao));
}
}
void OnTriggerExit (Collider col) {
Texto.gameObject.SetActive(false);
Imagem.gameObject.SetActive (false);
}
}
LuizFixa3D- Avançado
- PONTOS : 3287
REPUTAÇÃO : 14
Idade : 24
Áreas de atuação : Programação C#
Respeito as regras :
Re: Instantiate e OntriggerEnter Duvida
[list=linenums]
[*]void OntriggerEnter (Collider col) {
[*] if (col.gameObject.name == personagemTAG.name) {
[*] Texto.gameObject.SetActive(true);
[*] Imagem.gameObject.SetActive (true);
[*] If (Input.GetKeyDown(KeyCode.KeypadEnter)){
[*] Instantiate (personagemTAG, posicao, Quaternion.Euler (rotacao));
[*] }
[/list]
[list=linenums]
[*] }
[/list]
Tenta assim
[*]void OntriggerEnter (Collider col) {
[*] if (col.gameObject.name == personagemTAG.name) {
[*] Texto.gameObject.SetActive(true);
[*] Imagem.gameObject.SetActive (true);
[*] If (Input.GetKeyDown(KeyCode.KeypadEnter)){
[*] Instantiate (personagemTAG, posicao, Quaternion.Euler (rotacao));
[*] }
[/list]
[list=linenums]
[*] }
[/list]
Tenta assim
LuizFixa3D- Avançado
- PONTOS : 3287
REPUTAÇÃO : 14
Idade : 24
Áreas de atuação : Programação C#
Respeito as regras :
Re: Instantiate e OntriggerEnter Duvida
LuizFixa3D escreveu:Galera tentei más não tive sucesso quero que quando o player entre no colisor e aperte enter se instanciado pra posição que foi posta e tbm ter um tempo dps que apertar enter tem um tempo para instanciar
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class Instanciar : MonoBehaviour {
private GameObject personagemTAG;
public Vector3 posicao, rotacao;
//[Header("Tempo para Instanciar")]
//public string Tempo;
[Header("Desing")]
public GameObject Texto, Imagem;
//
void Start () {
personagemTAG = GameObject.FindGameObjectWithTag ("Oficina");
Texto.gameObject.SetActive(false);
Imagem.gameObject.SetActive (false);
}
void OntriggerEnter (Collider col) {
if (col.gameObject.name == personagemTAG.name) {
Texto.gameObject.SetActive(true);
Imagem.gameObject.SetActive (true);
Input.GetKeyDown (KeyCode.KeypadEnter);
Instantiate (personagemTAG, posicao, Quaternion.Euler (rotacao));
}
}
void OnTriggerExit (Collider col) {
Texto.gameObject.SetActive(false);
Imagem.gameObject.SetActive (false);
}
}
Você quer instanciar o próprio jogador em outra posição ? se for isso é melhor usar o Vector3, porque irá ficar 2 jogadores com as mesmas keys de movimento.
Para o tempo é só usar o IEnumerator:
- Código:
public Quaternion rotacao;
public int Tempo;
bool Pode = false;
void Update () {
if (Input.GetKeyDown (KeyCode.KeypadEnter) && Pode == true){
StartCoroutine ("Espera");
Pode = false;
}
}
void OntriggerEnter (Collider col) {
if (col.gameObject.name == personagemTAG.name) {
Pode = true;
Texto.gameObject.SetActive(true);
Imagem.gameObject.SetActive (true);
}
}
void OnTriggerExit (Collider col) {
Pode = false;
Texto.gameObject.SetActive(false);
Imagem.gameObject.SetActive (false);
}
}
IEnumerator Espera () {
yield return new WaitForSeconds (Tempo);
personagemTAG.transform.position = posicao;
personagemTAG.transform.rotation = rotacao;
}
}
Caso você queira instanciar outro é:
- Código:
public Quaternion rotacao;
public int Tempo;
bool Pode = false;
void Update () {
if (Input.GetKeyDown (KeyCode.KeypadEnter) && Pode == true){
StartCoroutine ("Espera");
Pode = false;
}
}
void OntriggerEnter (Collider col) {
if (col.gameObject.name == personagemTAG.name) {
Pode = true;
Texto.gameObject.SetActive(true);
Imagem.gameObject.SetActive (true);
}
}
void OnTriggerExit (Collider col) {
Pode = false;
Texto.gameObject.SetActive(false);
Imagem.gameObject.SetActive (false);
}
}
IEnumerator Espera () {
yield return new WaitForSeconds (Tempo);
Instantiate (personagemTAG, posicao, rotacao);
}
}
Obs:Pode Conter Erros...
Outra Obs: Se o player clicar diversas vezes vai instanciar diversos personagemTAG...
Última edição por PauloFR em Dom Abr 16, 2017 9:15 pm, editado 2 vez(es) (Motivo da edição : Erros no script ;-;)
Re: Instantiate e OntriggerEnter Duvida
é levar o jogador pra posição que é colocada no vector teleportar podemos dizer assim ele entra no colisor aperta enter e vai pra posição um teleporte com um tempo
LuizFixa3D- Avançado
- PONTOS : 3287
REPUTAÇÃO : 14
Idade : 24
Áreas de atuação : Programação C#
Respeito as regras :
Re: Instantiate e OntriggerEnter Duvida
vou ver aqui se vai funcionar
LuizFixa3D- Avançado
- PONTOS : 3287
REPUTAÇÃO : 14
Idade : 24
Áreas de atuação : Programação C#
Respeito as regras :
Re: Instantiate e OntriggerEnter Duvida
Sem Sucesso ;-; erros e mais erros
LuizFixa3D- Avançado
- PONTOS : 3287
REPUTAÇÃO : 14
Idade : 24
Áreas de atuação : Programação C#
Respeito as regras :
Re: Instantiate e OntriggerEnter Duvida
LuizFixa3D escreveu:Sem Sucesso ;-; erros e mais erros
Se for texto e imagem UI tente:
- Código:
using UnityEngine;[size=14][/size]using System.Collections;[size=14][/size]using UnityEngine.UI;[size=14][/size]using UnityEngine.EventSystems;[size=14][/size][size=14][/size][size=14][/size]public class Instanciar : MonoBehaviour { private GameObject personagemTAG;[size=14][/size] public Vector3 posicao;
public Quaternion rotacao; public Text Texto;
public Image Imagem;
public bool Pode = false;
public int Tempo;[size=14][/size][size=14][/size] // [size=14][/size] void Start () {[size=14][/size] personagemTAG = GameObject.FindWithTag ("Oficina");[size=14][/size]
Texto.enabled = false;[size=14][/size]
Imagem.enabled = false;[size=14][/size]
}[size=14][/size] void Update () {
if (Input.GetKeyDown (KeyCode.KeyPadEnter) && Pode == true) {
StartCoroutine ("Espera");
}[size=14][/size] void OntriggerEnter (Collider col) {[size=14][/size] if (col.gameObject.name == personagemTAG.name) {
Pode = true; Texto.enabled = true;[size=14][/size]
Imagem.enabled = true;[size=14][/size] }[size=14][/size][size=14][/size] }[size=14][/size][size=14][/size] void OnTriggerExit (Collider col) {
if (col.gameObject.name == personagemTAG.name) {
Pode = false; Texto.enabled = false;[size=14][/size]
Imagem.enabled = false;[size=14][/size]
}
[size=14][/size]IEnumerator Espera () {[size=14][/size] yield return new WaitForSeconds (Tempo);[size=14][/size] personagemTAG.transform.position = posicao; // Se não funconar vai ser preciso colocar um Vector3[size=14][/size] personagemTAG.transform.rotation = rotacao; // Se não funcionar vai ser preciso colocar um Quaternion
Pode = false;}[size=14][/size]}}
Edit : Tenta arrumar ae :/ pq bugo hehe mas [AQUI] tem uns vídeos sobre oque você quer fazer...
Praticamente é só você mudar o Texto para Text,a imagem para Image,em vez de SetActive coloca .enabled e coloca o Enter na update com uma bool...
Lembre-se de que para objetos 3d é SetActive mas se for UI é .enabled...
Re: Instantiate e OntriggerEnter Duvida
- Código:
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using System.Collections;
public class Instanciar : MonoBehaviour {
private GameObject personagemTAG;
public Vector3 posicao;
public Quaternion rotacao; public Text Texto;
public Image Imagem;
public bool Pode = false;
public int Tempo;
void Start () {
personagemTAG = GameObject.FindWithTag ("Oficina");
Texto.enabled = false;
Imagem.enabled = false;
}
void Update () {
if (Input.GetKeyDown (KeyCode.KeypadEnter) && Pode == true) {
StartCoroutine ("Espera");
}
}
void OntriggerEnter (Collider col) {
if (col.gameObject.name == personagemTAG.name) {
Pode = true;
Texto.enabled = true;
Imagem.enabled = true;
}
}
void OnTriggerExit (Collider col) {
if (col.gameObject.name == personagemTAG.name) {
Pode = false;
Texto.enabled = false;
Imagem.enabled = false;
}
}
IEnumerator Espera () {
yield return new WaitForSeconds (Tempo);
personagemTAG.transform.position = posicao; // Se não funconar vai ser preciso colocar um Vector3
personagemTAG.transform.rotation = rotacao; // Se não funcionar vai ser preciso colocar um Quaternion
Pode = false;
}
}
LuizFixa3D- Avançado
- PONTOS : 3287
REPUTAÇÃO : 14
Idade : 24
Áreas de atuação : Programação C#
Respeito as regras :
Re: Instantiate e OntriggerEnter Duvida
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class Instanciar : MonoBehaviour {
public float delay;
float cdelay;
GameObject clone;
private GameObject personagemTAG;
public Vector3 posicao, rotacao;
//[Header("Tempo para Instanciar")]
//public string Tempo;
[Header("Desing")]
public GameObject Texto, Imagem;
//
void Start () {
personagemTAG = GameObject.FindGameObjectWithTag ("Oficina");
Texto.gameObject.SetActive(false);
Imagem.gameObject.SetActive (false);
}
void OntriggerEnter (Collider col) {
if (col.gameObject.name == personagemTAG.name) {
Texto.gameObject.SetActive(true);
Imagem.gameObject.SetActive (true);
Input.GetKeyDown (KeyCode.KeypadEnter){
cdelay += 1 * Time.deltaTime;
if(cdelay >= delay){
clone = Instantiate(personagemTAG,posicao,rotacao) as GameObject;
cdelay = 0;
}
}
}
}
void OnTriggerExit (Collider col) {
Texto.gameObject.SetActive(false);
Imagem.gameObject.SetActive (false);
}
}
Tópicos semelhantes
» Duvida com Instantiate
» (Duvida) Instantiate e posiçoes
» Duvida sobre instantiate
» Dúvida sobre instantiate!
» OnTriggerEnter duvida
» (Duvida) Instantiate e posiçoes
» Duvida sobre instantiate
» Dúvida sobre instantiate!
» OnTriggerEnter duvida
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos