Interação na Cozinha do Unity
3 participantes
Página 1 de 1
Interação na Cozinha do Unity
E Aee Galera!
Testando Alguns Scripts que eu Fiz,to pensando em fazer essa Cozinha Completa, com tudo que tem Direito,
até Consumo de Gás quando se usa o Fogão hehe
Testando Alguns Scripts que eu Fiz,to pensando em fazer essa Cozinha Completa, com tudo que tem Direito,
até Consumo de Gás quando se usa o Fogão hehe
Weslley- Moderador
- PONTOS : 5726
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Interação na Cozinha do Unity
Verdade Amigo,
a Idéia de um estilo "The Sims" em Primeira pessoa me Fascina!
é o Sonho de quase todos Jogadores de The Sims!
weslleyFx
ve se vc pode me Ajudar Amigo,
Criei um Script Baseado naquele que vc Bolou pra Mim de Construir, funciona que é uma Beleza,
Modifiquei o Comando de Acão para um "RayCast com Clique no Mouse",Funciona Certinho,
mas quando Clico pra Fazer Comida o Cafe Começa a Fazer tambem na mesma hora,
sendo que joguei um Script em Cada, até Criei um Script diferente pra Cada,
saberia como Resolver isso?
esse é o Script que eu Fiz:
Pensei em Usar Tags não sei se funciona!
a Idéia de um estilo "The Sims" em Primeira pessoa me Fascina!
é o Sonho de quase todos Jogadores de The Sims!
weslleyFx
ve se vc pode me Ajudar Amigo,
Criei um Script Baseado naquele que vc Bolou pra Mim de Construir, funciona que é uma Beleza,
Modifiquei o Comando de Acão para um "RayCast com Clique no Mouse",Funciona Certinho,
mas quando Clico pra Fazer Comida o Cafe Começa a Fazer tambem na mesma hora,
sendo que joguei um Script em Cada, até Criei um Script diferente pra Cada,
saberia como Resolver isso?
esse é o Script que eu Fiz:
- Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class PrepararCafe : MonoBehaviour {
public GameObject ObjCru;
public GameObject ObjPronto;
public GameObject Barras;
public AudioClip SomIniciado;
public AudioClip SomPronto;
public float RayLength = 3f;
public float ObjetoFinalizado = 100;
public float Progresso = 0;
public bool Construindo = false;
public Image BarraProgresso;
void Start () {
Barras.SetActive (false);
}
void Update (){
RayCastStay ();
BarraProgresso.fillAmount = ((1 / ObjetoFinalizado) * Progresso);
if (Progresso == ObjetoFinalizado) {
Construindo = false;
Progresso = 0;
Destroy(transform.GetChild(2).gameObject);
ObjetoPronto ();
}
if (Construindo == true) {
Progresso += 1;
Barras.SetActive (true);
}
}
void RayCastStay(){
Ray ray = Camera.main.ViewportPointToRay (new Vector3 (0, 0, 0));
RaycastHit hit;
if (Input.GetMouseButtonDown (0))
if (Physics.Raycast (ray, out hit, RayLength))
if (Construindo == false) {
Construindo = true;
GameObject newMesh = Instantiate(ObjCru, transform.position, transform.rotation) as GameObject;
newMesh.transform.parent = transform;
GetComponent<AudioSource> ().PlayOneShot (SomIniciado);
}
}
void ObjetoPronto (){
GameObject newMesh = Instantiate(ObjPronto, transform.position, transform.rotation) as GameObject;
newMesh.transform.parent = transform;
Barras.SetActive (false);
GetComponent<AudioSource> ().PlayOneShot (SomPronto);
}
}
Pensei em Usar Tags não sei se funciona!
Re: Interação na Cozinha do Unity
AndyShow escreveu:Verdade Amigo,
a Idéia de um estilo "The Sims" em Primeira pessoa me Fascina!
é o Sonho de quase todos Jogadores de The Sims!
weslleyFx
ve se vc pode me Ajudar Amigo,
Criei um Script Baseado naquele que vc Bolou pra Mim de Construir, funciona que é uma Beleza,
Modifiquei o Comando de Acão para um "RayCast com Clique no Mouse",Funciona Certinho,
mas quando Clico pra Fazer Comida o Cafe Começa a Fazer tambem na mesma hora,
sendo que joguei um Script em Cada, até Criei um Script diferente pra Cada,
saberia como Resolver isso?
esse é o Script que eu Fiz:
- Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class PrepararCafe : MonoBehaviour {
public GameObject ObjCru;
public GameObject ObjPronto;
public GameObject Barras;
public AudioClip SomIniciado;
public AudioClip SomPronto;
public float RayLength = 3f;
public float ObjetoFinalizado = 100;
public float Progresso = 0;
public bool Construindo = false;
public Image BarraProgresso;
void Start () {
Barras.SetActive (false);
}
void Update (){
RayCastStay ();
BarraProgresso.fillAmount = ((1 / ObjetoFinalizado) * Progresso);
if (Progresso == ObjetoFinalizado) {
Construindo = false;
Progresso = 0;
Destroy(transform.GetChild(2).gameObject);
ObjetoPronto ();
}
if (Construindo == true) {
Progresso += 1;
Barras.SetActive (true);
}
}
void RayCastStay(){
Ray ray = Camera.main.ViewportPointToRay (new Vector3 (0, 0, 0));
RaycastHit hit;
if (Input.GetMouseButtonDown (0))
if (Physics.Raycast (ray, out hit, RayLength))
if (Construindo == false) {
Construindo = true;
GameObject newMesh = Instantiate(ObjCru, transform.position, transform.rotation) as GameObject;
newMesh.transform.parent = transform;
GetComponent<AudioSource> ().PlayOneShot (SomIniciado);
}
}
void ObjetoPronto (){
GameObject newMesh = Instantiate(ObjPronto, transform.position, transform.rotation) as GameObject;
newMesh.transform.parent = transform;
Barras.SetActive (false);
GetComponent<AudioSource> ().PlayOneShot (SomPronto);
}
}
Pensei em Usar Tags não sei se funciona!
cara realmente aconselho fazer um classe base para tudo usando o abstract a sim usando o conceito de polimorfismo assim todos as classes que herdam terão os métodos variáveis desta classe abstrata
claro que terão o mesmo método mais faram coisas diferentes
Weslley- Moderador
- PONTOS : 5726
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Interação na Cozinha do Unity
Legal cara! Interessante!AndyShow escreveu:E Aee Galera!
Testando Alguns Scripts que eu Fiz,to pensando em fazer essa Cozinha Completa, com tudo que tem Direito,
até Consumo de Gás quando se usa o Fogão hehe
JohnRambo- Moderador
- PONTOS : 5171
REPUTAÇÃO : 661
Idade : 24
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
Re: Interação na Cozinha do Unity
Valeu John Rambo :D
Bom weslleyFx, eu não entendi muito Bem porque isso acontece,
Se o Script está no Objeto que tem o Collider, ele não só deveria Funcionar naquele Objeto?
Tentei OnTriggerStay,OnMouseOver e o RayCast, mas todos eles quando Clico,
Ativam Todos os outros OBj com o Mesmo Script da Cena!
Confesso que Estou Confuso!
Re: Interação na Cozinha do Unity
Bom isso acontece pq como dois objetos usam o mesmo script estão chamando os dois métodos ao mesmo tempo
como te falei usando um classe abstrata vc podia chamar o método somente de uma classe mesmo que exista varias classe derivadas em execução
isso tbm pode ser resolvido da forma que vc esta tentando fazer mas com abstração ficaria mais organizado e mais limpo
bom no script do comportamento do seu player vc passar o raycast para ele
e vamos pegar a classe do objeto de onde o raio colídio logo Construindo = true
a sim vc pode pegar somente uma classe
a sim construindo = true ele começara a construir
o script da cafe ficaria a sim
não sei se o script do cafe irar funciona pois não testei leve como uma dica certo
mais o primeiro ira vc pode usar essa logica para fazer funcionar se caso não esteja
a logica e se construindo verdadeiro irar começar o evento certo
como te falei usando um classe abstrata vc podia chamar o método somente de uma classe mesmo que exista varias classe derivadas em execução
isso tbm pode ser resolvido da forma que vc esta tentando fazer mas com abstração ficaria mais organizado e mais limpo
bom no script do comportamento do seu player vc passar o raycast para ele
e vamos pegar a classe do objeto de onde o raio colídio logo Construindo = true
a sim vc pode pegar somente uma classe
- Código:
using UnityEngine;
using System.Collections;
public class Player : MonoBehaviour
{
void Update()
{
Ray ray = Camera.main.ViewportPointToRay(new Vector3(0, 0, 0));
RaycastHit hit;
if (Input.GetMouseButtonDown(0))
{
if (Physics.Raycast(ray, out hit, RayLength))// lançando o raio
{
if (hitInf.collider.tag == "Cafe")// se pegar em um objeto que contem a tag Cafe
{
PrepararCafe cafe = hitInf.transform.GetComponent<PrepararCafe>();//pegaremos o script dele OBS somente dele
cafe.Construindo = true;// Construindo sera verdadeiro
}
}
}
}
}
a sim construindo = true ele começara a construir
o script da cafe ficaria a sim
- Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class PrepararCafe : MonoBehaviour
{
public GameObject ObjCru;
public GameObject ObjPronto;
public GameObject Barras;
public AudioClip SomIniciado;
public AudioClip SomPronto;
public float RayLength = 3f;
public float ObjetoFinalizado = 100;
public float Progresso = 0;
public bool Construindo = false;
public Image BarraProgresso;
void Start()
{
Barras.SetActive(false);
}
void Update()
{
BarraProgresso.fillAmount = ((1 / ObjetoFinalizado) * Progresso);
if (Progresso == ObjetoFinalizado && Construindo == true)
{
Construindo = false;
Progresso = 0;
Destroy(transform.GetChild(2).gameObject);
ObjetoPronto();
}
if (Construindo == true)
{
Progresso += 1;
Barras.SetActive(true);
}
}
// vc pode implementar algo nesse metodo nao sei oque ele faz direito mais e isso
void RayCastStay()
{
GameObject newMesh = Instantiate(ObjCru, transform.position, transform.rotation) as GameObject;
newMesh.transform.parent = transform;
GetComponent<AudioSource>().PlayOneShot(SomIniciado);
}
void ObjetoPronto()
{
GameObject newMesh = Instantiate(ObjPronto, transform.position, transform.rotation) as GameObject;
newMesh.transform.parent = transform;
Barras.SetActive(false);
GetComponent<AudioSource>().PlayOneShot(SomPronto);
}
}
não sei se o script do cafe irar funciona pois não testei leve como uma dica certo
mais o primeiro ira vc pode usar essa logica para fazer funcionar se caso não esteja
a logica e se construindo verdadeiro irar começar o evento certo
Weslley- Moderador
- PONTOS : 5726
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Interação na Cozinha do Unity
Pow Valeu weslleyFx acho q o = if (hitInf.collider.tag == "Cafe") já vai Resolver!
Agora deu pra ter uma Idéia Legal do que vc Falou!
:D
Agora deu pra ter uma Idéia Legal do que vc Falou!
:D
Re: Interação na Cozinha do Unity
AndyShow escreveu:Pow Valeu weslleyFx acho q o = if (hitInf.collider.tag == "Cafe") já vai Resolver!
Agora deu pra ter uma Idéia Legal do que vc Falou!
:D
:D
Weslley- Moderador
- PONTOS : 5726
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
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
» Som ambiente,Interação de objetos unity 3D
» Interação com cenário
» Interação com elementos UI
» interação com objeto
» [TUTORIAL] Interação para FPS com Raycast
» Interação com cenário
» Interação com elementos UI
» interação com objeto
» [TUTORIAL] Interação para FPS com Raycast
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos