[TUTORIAL] Producao de objeto por componentes....estilo PAYDAY 2 (RATS)...
3 participantes
Página 1 de 1
[TUTORIAL] Producao de objeto por componentes....estilo PAYDAY 2 (RATS)...
Sistema Simples de Produção
tentei copiar um sistema parecido com o da fase RATS de PAYDAY 2
funciona mais ou menos assim
precisamos fazer algo, vamos supor que metanfetamina
so que precisamos de tres components para isso
ACID
SODA
HIDROGEN
(components feitos por mim)
entao...vc pega os components
(que seram spawnados sempre que coletados depois de um tempo) = 5 segundos
e coloca eles nas vasilhas de acordo com cada uma
depois que todas as vasilhas tiverem com os componentes
apos passar o TEMPO DE PRODUCAO
spawna o obj meta...que pode ser colhido
no caso eu faco o sistema todo com raycast...o obj meta e destruido (altere no script para seu gosto)
o bom
e que depois que faz o primeiro
vc pode fazer mais quantos quizer..infinitamente...ate o seu gosto...ou acabar os components...que vc pode ajustar para pararem de ser spawnados a certo tempo
VC VAI PRECISAR DE
UM LOCAL PARA SPAWN DA META :(TRANFORM)
O OBJ META (GAMEOBJECT)
3 VASILHAS PARA COLOCAR OS COMPONENTS (GAMEOBJECT)
3 POTES COM OS COMPONENTS (GAMEOBJECT)
UMA UI COMO UMA MIRA NO MEIO DA TELA (UI)
-- o script vai na camera do player --
bom agora precisamos das tags
no objeto AcidComp = ao componet que vc vai pegar coloque a tag = "AcidComp"
no objeto SodaComp = "SodaComp"
no hidrogencomp = "HidrogenComp"
no Acid == ao pote aonde vc vai colocar o component == "Acid"
no Soda == "Soda"
no Hidrogen == "Hidrogen"
as vasilhas tem os nomes dos components
e os componentes tem seus proprios nomes com COMP na frente
faca do objmeta um prefab
e tire ele de cena
oq importa e o spawn no local certo
NAO ESQUECE DE ADCIONAR UM COLIDER EM TODOS OS OBJETOS PARA O HIT.COLLIDER FUNCIONAR
aaaaaaaa sim
o obj smoke
faça 3 objetos ...um para cada vasilha
e nesse objeto faca um particle system parecido com fumaca
link cada um deles no script da camera do player
link o resto das coisas
GG EZ
faz a metanfetamina ate morrer
CAAASO DE ALGUM ERRO..AVISA PRA EU CONCERTA...PQ EU SO PESSIMO PRA TUTORIAL POR ESCRITO...VLW..FLW...AGRADECO :bounce: :bounce: :bounce: :bounce:
script abaixo...
SCRIPT COM NOME ControlPlayer
tentei copiar um sistema parecido com o da fase RATS de PAYDAY 2
funciona mais ou menos assim
precisamos fazer algo, vamos supor que metanfetamina
so que precisamos de tres components para isso
ACID
SODA
HIDROGEN
(components feitos por mim)
entao...vc pega os components
(que seram spawnados sempre que coletados depois de um tempo) = 5 segundos
e coloca eles nas vasilhas de acordo com cada uma
depois que todas as vasilhas tiverem com os componentes
apos passar o TEMPO DE PRODUCAO
spawna o obj meta...que pode ser colhido
no caso eu faco o sistema todo com raycast...o obj meta e destruido (altere no script para seu gosto)
o bom
e que depois que faz o primeiro
vc pode fazer mais quantos quizer..infinitamente...ate o seu gosto...ou acabar os components...que vc pode ajustar para pararem de ser spawnados a certo tempo
VC VAI PRECISAR DE
UM LOCAL PARA SPAWN DA META :(TRANFORM)
O OBJ META (GAMEOBJECT)
3 VASILHAS PARA COLOCAR OS COMPONENTS (GAMEOBJECT)
3 POTES COM OS COMPONENTS (GAMEOBJECT)
UMA UI COMO UMA MIRA NO MEIO DA TELA (UI)
-- o script vai na camera do player --
bom agora precisamos das tags
no objeto AcidComp = ao componet que vc vai pegar coloque a tag = "AcidComp"
no objeto SodaComp = "SodaComp"
no hidrogencomp = "HidrogenComp"
no Acid == ao pote aonde vc vai colocar o component == "Acid"
no Soda == "Soda"
no Hidrogen == "Hidrogen"
as vasilhas tem os nomes dos components
e os componentes tem seus proprios nomes com COMP na frente
faca do objmeta um prefab
e tire ele de cena
oq importa e o spawn no local certo
NAO ESQUECE DE ADCIONAR UM COLIDER EM TODOS OS OBJETOS PARA O HIT.COLLIDER FUNCIONAR
aaaaaaaa sim
o obj smoke
faça 3 objetos ...um para cada vasilha
e nesse objeto faca um particle system parecido com fumaca
link cada um deles no script da camera do player
link o resto das coisas
GG EZ
faz a metanfetamina ate morrer
CAAASO DE ALGUM ERRO..AVISA PRA EU CONCERTA...PQ EU SO PESSIMO PRA TUTORIAL POR ESCRITO...VLW..FLW...AGRADECO :bounce: :bounce: :bounce: :bounce:
script abaixo...
SCRIPT COM NOME ControlPlayer
- Código:
using UnityEngine;
using System.Collections;
public class ControlPlayer : MonoBehaviour {
[Header("Tempo Produção")]
private float cronometro;
private bool comecar;
public float TempoProducao;
[Header("Em Producao")]
private bool temacid;
private bool temsoda;
private bool temhidrogen;
[Header("Components")]
public GameObject AcidObj;
public GameObject SodaObj;
public GameObject HidrogenObj;
public GameObject Meta;
private bool AcidComp;
private bool SodaComp;
private bool HidrogenComp;
public Transform Spawn;
[Header("Smoke")]
public GameObject SmokeAcid;
public GameObject SmokeSoda;
public GameObject SmokeHidrogen;
private bool ativarcronoacid;
private float cronoacid;
private bool ativarcronoSoda;
private float cronoSoda;
private bool ativarcronoHidrogen;
private float cronoHidrogen;
void Start () {
comecar = false;
temacid = false;
temhidrogen = false;
temsoda = false;
SmokeAcid.gameObject.SetActive (false);
SmokeSoda.gameObject.SetActive (false);
SmokeHidrogen.gameObject.SetActive (false);
AcidComp = false;
SodaComp = false;
HidrogenComp = false;
}
void Update () {
if (temacid == true && temsoda == true && temhidrogen == true) {
comecar = true;
Emproducao ();
}
if (ativarcronoacid == true) {
CronoAcid ();
}
if (ativarcronoSoda == true) {
CronoSoda ();
}
if (ativarcronoHidrogen == true) {
CronoHidrogen ();
}
RaycastHit hit = new RaycastHit();
Vector3 dir = transform.TransformDirection(Vector3.forward);
Debug.DrawRay(transform.position, dir * 2, Color.red);
if (Physics.Raycast (transform.position, dir, out hit, 2f)) {
//Inv----------------------------------------------------------------------------------------
//AcidComp
if(hit.collider.gameObject.tag == "AcidComp" && AcidComp == false){
if (Input.GetKeyDown (KeyCode.E)) {
AcidObj.gameObject.SetActive (false);
AcidComp = true;
ativarcronoacid = true;
}
}
//SodaComp
if(hit.collider.gameObject.tag == "SodaComp" && SodaComp == false){
if (Input.GetKeyDown (KeyCode.E)) {
SodaObj.gameObject.SetActive (false);
SodaComp = true;
ativarcronoSoda = true;
}
}
//HidrogenComp
if(hit.collider.gameObject.tag == "HidrogenComp" && HidrogenComp == false){
if (Input.GetKeyDown (KeyCode.E)) {
HidrogenObj.gameObject.SetActive (false);
HidrogenComp = true;
ativarcronoHidrogen = true;
}
}
//Finish INV-----------------------------------------------------------------------------------
//Acid
if(hit.collider.gameObject.tag == "Acid" && AcidComp == true){
if (Input.GetKeyDown (KeyCode.E)) {
SmokeAcid.gameObject.SetActive (true);
AcidComp = false;
temacid = true;
}
}
//Soda
if(hit.collider.gameObject.tag == "Soda" && SodaComp == true){
if (Input.GetKeyDown (KeyCode.E)) {
SmokeSoda.gameObject.SetActive (true);
SodaComp = false;
temsoda = true;
}
}
//Hidrogen
if(hit.collider.gameObject.tag == "Hidrogen" && HidrogenComp == true){
if (Input.GetKeyDown (KeyCode.E)) {
SmokeHidrogen.gameObject.SetActive (true);
HidrogenComp = false;
temhidrogen = true;
}
}
//Hidrogen
if(hit.collider.gameObject.tag == "Meta"){
if (Input.GetKeyDown (KeyCode.E)) {
Destroy (hit.collider.gameObject);
}
}
}
}
void CronoAcid(){
cronoacid += Time.deltaTime;
if (cronoacid >= 5) {
cronoacid = 0;
ativarcronoacid = false;
AcidObj.gameObject.SetActive (true);
}
}
void CronoSoda(){
cronoSoda += Time.deltaTime;
if (cronoSoda >= 5) {
cronoSoda = 0;
ativarcronoSoda = false;
SodaObj.gameObject.SetActive (true);
}
}
void CronoHidrogen (){
cronoHidrogen += Time.deltaTime;
if (cronoHidrogen >= 5) {
cronoHidrogen = 0;
ativarcronoHidrogen = false;
HidrogenObj.gameObject.SetActive (true);
}
}
void Emproducao(){
cronometro += Time.deltaTime;
if (cronometro >= TempoProducao) {
cronometro = 0;
comecar = false;
Instantiate (Meta, Spawn.transform.position, Spawn.transform.rotation);
SmokeAcid.gameObject.SetActive (false);
SmokeHidrogen.gameObject.SetActive (false);
SmokeSoda.gameObject.SetActive (false);
temacid = false;
temhidrogen = false;
temsoda = false;
}
}
}
Re: [TUTORIAL] Producao de objeto por componentes....estilo PAYDAY 2 (RATS)...
Parabéns pela iniciativa! O tópico será movido para a área de tutoriais.
Abraço!
Abraço!
Re: [TUTORIAL] Producao de objeto por componentes....estilo PAYDAY 2 (RATS)...
hehehe VLWdstaroski escreveu:Parabéns pela iniciativa! O tópico será movido para a área de tutoriais.
Abraço!
Re: [TUTORIAL] Producao de objeto por componentes....estilo PAYDAY 2 (RATS)...
MUITO LEGAL! PARABÉNS!Encracker escreveu:Sistema Simples de Produção
tentei copiar um sistema parecido com o da fase RATS de PAYDAY 2
funciona mais ou menos assim
precisamos fazer algo, vamos supor que metanfetamina
so que precisamos de tres components para isso
ACID
SODA
HIDROGEN
(components feitos por mim)
entao...vc pega os components
(que seram spawnados sempre que coletados depois de um tempo) = 5 segundos
e coloca eles nas vasilhas de acordo com cada uma
depois que todas as vasilhas tiverem com os componentes
apos passar o TEMPO DE PRODUCAO
spawna o obj meta...que pode ser colhido
no caso eu faco o sistema todo com raycast...o obj meta e destruido (altere no script para seu gosto)
o bom
e que depois que faz o primeiro
vc pode fazer mais quantos quizer..infinitamente...ate o seu gosto...ou acabar os components...que vc pode ajustar para pararem de ser spawnados a certo tempo
VC VAI PRECISAR DE
UM LOCAL PARA SPAWN DA META :(TRANFORM)
O OBJ META (GAMEOBJECT)
3 VASILHAS PARA COLOCAR OS COMPONENTS (GAMEOBJECT)
3 POTES COM OS COMPONENTS (GAMEOBJECT)
UMA UI COMO UMA MIRA NO MEIO DA TELA (UI)
-- o script vai na camera do player --
bom agora precisamos das tags
no objeto AcidComp = ao componet que vc vai pegar coloque a tag = "AcidComp"
no objeto SodaComp = "SodaComp"
no hidrogencomp = "HidrogenComp"
no Acid == ao pote aonde vc vai colocar o component == "Acid"
no Soda == "Soda"
no Hidrogen == "Hidrogen"
as vasilhas tem os nomes dos components
e os componentes tem seus proprios nomes com COMP na frente
faca do objmeta um prefab
e tire ele de cena
oq importa e o spawn no local certo
NAO ESQUECE DE ADCIONAR UM COLIDER EM TODOS OS OBJETOS PARA O HIT.COLLIDER FUNCIONAR
aaaaaaaa sim
o obj smoke
faça 3 objetos ...um para cada vasilha
e nesse objeto faca um particle system parecido com fumaca
link cada um deles no script da camera do player
link o resto das coisas
GG EZ
faz a metanfetamina ate morrer
CAAASO DE ALGUM ERRO..AVISA PRA EU CONCERTA...PQ EU SO PESSIMO PRA TUTORIAL POR ESCRITO...VLW..FLW...AGRADECO :bounce: :bounce: :bounce: :bounce:
script abaixo...
SCRIPT COM NOME ControlPlayer
- Código:
using UnityEngine;
using System.Collections;
public class ControlPlayer : MonoBehaviour {
[Header("Tempo Produção")]
private float cronometro;
private bool comecar;
public float TempoProducao;
[Header("Em Producao")]
private bool temacid;
private bool temsoda;
private bool temhidrogen;
[Header("Components")]
public GameObject AcidObj;
public GameObject SodaObj;
public GameObject HidrogenObj;
public GameObject Meta;
private bool AcidComp;
private bool SodaComp;
private bool HidrogenComp;
public Transform Spawn;
[Header("Smoke")]
public GameObject SmokeAcid;
public GameObject SmokeSoda;
public GameObject SmokeHidrogen;
private bool ativarcronoacid;
private float cronoacid;
private bool ativarcronoSoda;
private float cronoSoda;
private bool ativarcronoHidrogen;
private float cronoHidrogen;
void Start () {
comecar = false;
temacid = false;
temhidrogen = false;
temsoda = false;
SmokeAcid.gameObject.SetActive (false);
SmokeSoda.gameObject.SetActive (false);
SmokeHidrogen.gameObject.SetActive (false);
AcidComp = false;
SodaComp = false;
HidrogenComp = false;
}
void Update () {
if (temacid == true && temsoda == true && temhidrogen == true) {
comecar = true;
Emproducao ();
}
if (ativarcronoacid == true) {
CronoAcid ();
}
if (ativarcronoSoda == true) {
CronoSoda ();
}
if (ativarcronoHidrogen == true) {
CronoHidrogen ();
}
RaycastHit hit = new RaycastHit();
Vector3 dir = transform.TransformDirection(Vector3.forward);
Debug.DrawRay(transform.position, dir * 2, Color.red);
if (Physics.Raycast (transform.position, dir, out hit, 2f)) {
//Inv----------------------------------------------------------------------------------------
//AcidComp
if(hit.collider.gameObject.tag == "AcidComp" && AcidComp == false){
if (Input.GetKeyDown (KeyCode.E)) {
AcidObj.gameObject.SetActive (false);
AcidComp = true;
ativarcronoacid = true;
}
}
//SodaComp
if(hit.collider.gameObject.tag == "SodaComp" && SodaComp == false){
if (Input.GetKeyDown (KeyCode.E)) {
SodaObj.gameObject.SetActive (false);
SodaComp = true;
ativarcronoSoda = true;
}
}
//HidrogenComp
if(hit.collider.gameObject.tag == "HidrogenComp" && HidrogenComp == false){
if (Input.GetKeyDown (KeyCode.E)) {
HidrogenObj.gameObject.SetActive (false);
HidrogenComp = true;
ativarcronoHidrogen = true;
}
}
//Finish INV-----------------------------------------------------------------------------------
//Acid
if(hit.collider.gameObject.tag == "Acid" && AcidComp == true){
if (Input.GetKeyDown (KeyCode.E)) {
SmokeAcid.gameObject.SetActive (true);
AcidComp = false;
temacid = true;
}
}
//Soda
if(hit.collider.gameObject.tag == "Soda" && SodaComp == true){
if (Input.GetKeyDown (KeyCode.E)) {
SmokeSoda.gameObject.SetActive (true);
SodaComp = false;
temsoda = true;
}
}
//Hidrogen
if(hit.collider.gameObject.tag == "Hidrogen" && HidrogenComp == true){
if (Input.GetKeyDown (KeyCode.E)) {
SmokeHidrogen.gameObject.SetActive (true);
HidrogenComp = false;
temhidrogen = true;
}
}
//Hidrogen
if(hit.collider.gameObject.tag == "Meta"){
if (Input.GetKeyDown (KeyCode.E)) {
Destroy (hit.collider.gameObject);
}
}
}
}
void CronoAcid(){
cronoacid += Time.deltaTime;
if (cronoacid >= 5) {
cronoacid = 0;
ativarcronoacid = false;
AcidObj.gameObject.SetActive (true);
}
}
void CronoSoda(){
cronoSoda += Time.deltaTime;
if (cronoSoda >= 5) {
cronoSoda = 0;
ativarcronoSoda = false;
SodaObj.gameObject.SetActive (true);
}
}
void CronoHidrogen (){
cronoHidrogen += Time.deltaTime;
if (cronoHidrogen >= 5) {
cronoHidrogen = 0;
ativarcronoHidrogen = false;
HidrogenObj.gameObject.SetActive (true);
}
}
void Emproducao(){
cronometro += Time.deltaTime;
if (cronometro >= TempoProducao) {
cronometro = 0;
comecar = false;
Instantiate (Meta, Spawn.transform.position, Spawn.transform.rotation);
SmokeAcid.gameObject.SetActive (false);
SmokeHidrogen.gameObject.SetActive (false);
SmokeSoda.gameObject.SetActive (false);
temacid = false;
temhidrogen = false;
temsoda = false;
}
}
}
Gabriel César O- Profissional
- PONTOS : 4003
REPUTAÇÃO : 217
Idade : 23
Áreas de atuação : (ESTUDANDO SEGUNDO GRAU), (FUÇANDO NO UNITY)){
Respeito as regras :
Tópicos semelhantes
» [TUTORIAL] Sistema de Escada Estilo FPS
» [TUTORIAL] Jogo estilo minecraft
» Como obter componentes de outro objeto usando raycast ?
» [TUTORIAL] Zone Wall - ESTILO BATTLE ROYALE
» [TUTORIAL] Entrar no carro estilo GTA
» [TUTORIAL] Jogo estilo minecraft
» Como obter componentes de outro objeto usando raycast ?
» [TUTORIAL] Zone Wall - ESTILO BATTLE ROYALE
» [TUTORIAL] Entrar no carro estilo GTA
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos