[Ajuda]Script de craft
2 participantes
Página 1 de 1
[Ajuda]Script de craft
assimn galera meu script funciona assim se ele aperta o botao ele checa no inventario se tiver o item ele destroy. O problema e que ele n destroy um item só de cada ele destroy todos os itens desse mesmo objeto , teria como ele excluir so um?
Script Craft :
Script Inventario :
Script Craft :
- Código:
using UnityEngine;
using System.Collections;
public class CraftFaca : MonoBehaviour
{
public Inventario inventario;
private Transform player1;
public GameObject Craftgui;
public bool ativarGUI;
public JugadorBD jugadorBD;
private GameObject scriptsContenedor;
public GameObject Miracraft;
private bool colPedra, ColMadeira, ColCorda, ativaDrop;
public Objetos objetos;
[System.Serializable]
public class Objetos
{
public GameObject drop;
}
// Use this for initialization
void Start()
{
ativarGUI = false;
Craftgui.SetActive(false);
Miracraft.SetActive(false);
scriptsContenedor = GameObject.FindGameObjectWithTag("Scripts");
jugadorBD = scriptsContenedor.GetComponent<JugadorBD>();
player1 = GameObject.FindGameObjectWithTag("Player").transform;
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.C))
{
ativarGUI = !ativarGUI;
}
if (ativarGUI == true)
{
Craftgui.SetActive(true);
}
else
{
Craftgui.SetActive(false);
}
if (ColMadeira && colPedra)
{
ativaDrop = true;
}
else
{
ativaDrop = false;
}
}
public void Buttom()
{
if (ativaDrop == true)
{
GameObject cloneObjeto = Instantiate(objetos.drop, player1.position + player1.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player1.forward * 50);
}
for (int i = 0; i < jugadorBD.SlotsBasicos.Length; i++)
{
if (jugadorBD.SlotsBasicos[i] == "Rock")
{
colPedra = true;
}
if (jugadorBD.SlotsBasicos[i] == "Madeira")
{
ColMadeira = true;
}
if (jugadorBD.SlotsBasicos[i] == "")
{
ColMadeira = false;
colPedra = false;
}
}
}
}
Script Inventario :
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Inventario : MonoBehaviour
{
public int kitmedicoban;
private Transform player1;
public int slotActual, medicostock;
public bool stocableitem;
public Transform inicioRayCast1;
private GameObject scriptsContenedor;
private NombresObjetosBD nombreObjetos;
private JugadorBD jugadorBD;
private RaycastHit hit;
private bool haySlotsVacios,ativacraft;
[SerializeField]
public Objetos objetos;
[System.Serializable]
public class Objetos
{
public GameObject facaMadeira, Corda, Madeira, Rock, facaFerro, kitmedico, lanterna, machado;
}
public GameObject Maoslisa, FacaMadeira, FacaFerro, Machado, Pedra, KitMedico, UiStatus,UiStatusContorno;
void Awake()
{
scriptsContenedor = GameObject.FindGameObjectWithTag("Scripts");
nombreObjetos = scriptsContenedor.GetComponent<NombresObjetosBD>();
jugadorBD = scriptsContenedor.GetComponent<JugadorBD>();
player1 = GameObject.FindGameObjectWithTag("Player").transform;
kitmedicoban = 0;
UiStatus.SetActive(false);
UiStatusContorno.SetActive(false);
}
// Update is called once per frame
void Update()
{
//botão para dropar objetos no cenario
if (Input.GetKeyDown(KeyCode.Q)) {
Drop();
}
NavegacionInventario();
Debug.DrawRay(inicioRayCast1.position, inicioRayCast1.forward, Color.blue);
//----------Ve se é ô objeto corretp, se sim ele vai para pegar item!
if (Physics.Raycast(inicioRayCast1.position, inicioRayCast1.forward, out hit))
{
if (Input.GetKey(KeyCode.E))
{
for (int i = 0; i < nombreObjetos.itemsString.Length; i++)
{
if (hit.collider.CompareTag(nombreObjetos.itemsString[i]))
{
RecogerItem();
}
}
}
}
if (KitMedico == true && kitmedicoban == 0)
{
Medicokit.bandagem += 200;
MedicoUI.bandagem += 200;
kitmedicoban += 1;
}
//------------------------------------------------Ativar e desativar armas
if (jugadorBD.SlotsBasicos[slotActual] == "Madeira") {
FacaMadeira.SetActive(false);
FacaFerro.SetActive(false);
Maoslisa.SetActive(true);
Machado.SetActive(false);
KitMedico.SetActive(false);
Pedra.SetActive(false);
UiStatus.SetActive(false);
UiStatusContorno.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "Corda")
{
FacaMadeira.SetActive(false);
FacaFerro.SetActive(false);
Maoslisa.SetActive(true);
Machado.SetActive(false);
KitMedico.SetActive(false);
Pedra.SetActive(false);
UiStatus.SetActive(false);
UiStatusContorno.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "Rock")
{
Pedra.SetActive(true);
FacaMadeira.SetActive(false);
FacaFerro.SetActive(false);
Maoslisa.SetActive(true);
Machado.SetActive(false);
KitMedico.SetActive(false);
UiStatus.SetActive(false);
UiStatusContorno.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "FacaMadeira")
{
FacaMadeira.SetActive(true);
FacaFerro.SetActive(false);
Maoslisa.SetActive(false);
Machado.SetActive(false);
KitMedico.SetActive(false);
Pedra.SetActive(false);
UiStatus.SetActive(false);
UiStatusContorno.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "FacaFerro")
{
FacaMadeira.SetActive(false);
FacaFerro.SetActive(true);
Maoslisa.SetActive(false);
Machado.SetActive(false);
KitMedico.SetActive(false);
Pedra.SetActive(false);
UiStatus.SetActive(false);
UiStatusContorno.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "Machado")
{
Machado.SetActive(true);
FacaMadeira.SetActive(false);
FacaFerro.SetActive(false);
Maoslisa.SetActive(false);
KitMedico.SetActive(false);
Pedra.SetActive(false);
UiStatus.SetActive(false);
UiStatusContorno.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "KitMedico")
{
Maoslisa.SetActive(false);
FacaMadeira.SetActive(false);
Machado.SetActive(false);
FacaFerro.SetActive(false);
KitMedico.SetActive(true);
Pedra.SetActive(false);
UiStatus.SetActive(true);
UiStatusContorno.SetActive(true);
}
if (jugadorBD.SlotsBasicos[slotActual] == "Lanterna")
{
Maoslisa.SetActive(true);
FacaMadeira.SetActive(false);
Machado.SetActive(false);
KitMedico.SetActive(false);
Pedra.SetActive(false);
UiStatus.SetActive(false);
UiStatusContorno.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "")
{
Maoslisa.SetActive(true);
FacaMadeira.SetActive(false);
FacaFerro.SetActive(false);
Machado.SetActive(false);
KitMedico.SetActive(false);
Pedra.SetActive(false);
UiStatus.SetActive(false);
UiStatusContorno.SetActive(false);
}
}
//Responsavel por pegar os itens no cenario
void RecogerItem()
{
for (int i = 0; i < jugadorBD.SlotsBasicos.Length; i++)
{
if (jugadorBD.SlotsBasicos[i] == "")
{
haySlotsVacios = true;
break;
}
}
for (int i = slotActual; i <= jugadorBD.SlotsBasicos.Length; i++)
{
if (haySlotsVacios)
{
if (i == jugadorBD.SlotsBasicos.Length)
{
i = -1;
}
else if (jugadorBD.SlotsBasicos[i] == "")
{
jugadorBD.SlotsBasicos[i] = hit.collider.tag;
Destroy(hit.collider.gameObject);
haySlotsVacios = false;
return;
}
}
else
{
return;
}
}
}
// responsavel pela navegação na UI
void NavegacionInventario()
{
if (Input.GetAxisRaw("Mouse ScrollWheel") < 0)
{
if (slotActual < jugadorBD.SlotsBasicos.Length - 1)
slotActual++;
else
slotActual = 0;
}
if (Input.GetAxisRaw("Mouse ScrollWheel") > 0)
{
if (slotActual > 0)
slotActual--;
else
slotActual = jugadorBD.SlotsBasicos.Length - 1;
}
}
//Dropa os itens no cenario
void Drop()
{
if (jugadorBD.SlotsBasicos[slotActual] == "Machado")
{
GameObject cloneObjeto = Instantiate(objetos.machado, player1.position + player1.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player1.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "Corda")
{
GameObject cloneObjeto = Instantiate(objetos.Corda, player1.position + player1.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player1.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "Madeira")
{
GameObject cloneObjeto = Instantiate(objetos.Madeira, player1.position + player1.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player1.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "Rock")
{
GameObject cloneObjeto = Instantiate(objetos.Rock, player1.position + player1.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player1.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "FacaMadeira")
{
GameObject cloneObjeto = Instantiate(objetos.facaMadeira, player1.position + player1.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player1.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "FacaFerro")
{
GameObject cloneObjeto = Instantiate(objetos.facaFerro, player1.position + player1.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player1.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "Lanterna")
{
GameObject cloneObjeto = Instantiate(objetos.lanterna, player1.position + player1.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player1.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "KitMedico")
{
GameObject cloneObjeto = Instantiate(objetos.kitmedico, player1.position + player1.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player1.forward * 1000);
jugadorBD.SlotsBasicos[slotActual] = "";
UiStatus.SetActive(false);
UiStatusContorno.SetActive(false);
}
}
//Distroi o KitMedico
public void KitDestroy()
{
if (jugadorBD.SlotsBasicos[slotActual] == "KitMedico")
{
Medicokit.bandagem += 100;
MedicoUI.bandagem += 100;
jugadorBD.SlotsBasicos[slotActual] = "";
UiStatus.SetActive(false);
UiStatusContorno.SetActive(false);
kitmedicoban -= 1;
}
}
//Distroi a pedra
public void RockDestroy()
{
for (int i = 0; i < jugadorBD.SlotsBasicos.Length; i++)
{
if (jugadorBD.SlotsBasicos[i] == "Rock")
{
jugadorBD.SlotsBasicos[i] = "";
}
}
}
//Distroi a corda
public void CordaDestroy()
{
for (int i = 0; i < jugadorBD.SlotsBasicos.Length; i++)
{
if (jugadorBD.SlotsBasicos[i] == "Corda")
{
jugadorBD.SlotsBasicos[i] = "";
}
}
}
//Distroi a madeira
public void MadeiraDestroy()
{
for (int i = 0; i < jugadorBD.SlotsBasicos.Length; i++)
{
if (jugadorBD.SlotsBasicos[i] == "Madeira")
{
jugadorBD.SlotsBasicos[i] = "";
}
}
}
}
hellkiller- Mestre
- PONTOS : 4053
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: [Ajuda]Script de craft
Como faria isso?
hellkiller- Mestre
- PONTOS : 4053
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: [Ajuda]Script de craft
Acho que se eu tivesse por exemplo um sistema de itens estocaveis,era so diminuir o numero de itens .
Aquela outra duvida vc ainda n me respondeu, eu ate te passei os scripts, sei que vc e muito ocupado,
mais pf teria como me ajudar com o sistema de estocar itens?
Aquela outra duvida vc ainda n me respondeu, eu ate te passei os scripts, sei que vc e muito ocupado,
mais pf teria como me ajudar com o sistema de estocar itens?
hellkiller- Mestre
- PONTOS : 4053
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Tópicos semelhantes
» Script de Craft
» Ajuda Urgente como chamo a animação no script alguém poderia dar uma ajuda???
» [AJUDA]Preciso de ajuda em um script relacionado ao vídeo Sistema de escolha de personagen
» [AJUDA]Quero Ajuda poque esse script so da erro!
» erro erro e mais erro script de craft
» Ajuda Urgente como chamo a animação no script alguém poderia dar uma ajuda???
» [AJUDA]Preciso de ajuda em um script relacionado ao vídeo Sistema de escolha de personagen
» [AJUDA]Quero Ajuda poque esse script so da erro!
» erro erro e mais erro script de craft
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos