[Ajuda] Em um sistema de inventario!
3 participantes
Página 1 de 1
Duvida em um sistema de inventario
Criei um inventario que saber como posso fazer um sistema de itens estocaveis segue o script:
Alguem poderia me dizer como ficaria esse script?
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Inventario : MonoBehaviour {
private Transform player;
public int slotActual;
public bool stocableitem;
public int medicostock = 0;
public Transform inicioRayCast;
private GameObject scriptsContenedor;
private NombresObjetosBD nombreObjetos;
private JugadorBD jugadorBD;
private RaycastHit hit;
private bool haySlotsVacios;
[SerializeField]
public Objetos objetos;
[System.Serializable]public class Objetos
{
public GameObject facaMadeira, facaFerro, kitmedico, lanterna, machado;
}
public GameObject Maoslisa;
public GameObject FacaMadeira;
public GameObject FacaFerro;
public GameObject Machado;
public GameObject KitMedico;
void Awake () {
scriptsContenedor=GameObject.FindGameObjectWithTag ("Scripts");
nombreObjetos=scriptsContenedor.GetComponent<NombresObjetosBD>();
jugadorBD=scriptsContenedor.GetComponent<JugadorBD>();
player = GameObject.FindGameObjectWithTag("Player").transform;
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(KeyCode.Q))
Drop();
NavegacionInventario();
Debug.DrawRay(inicioRayCast.position,inicioRayCast.forward,Color.blue);
//----------Busca si estoy recogiendo el objeto correcto
if(Physics.Raycast (inicioRayCast.position,inicioRayCast.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 (jugadorBD.SlotsBasicos[slotActual] == "FacaMadeira")
{
FacaMadeira.SetActive(true);
FacaFerro.SetActive(false);
Maoslisa.SetActive(false);
Machado.SetActive(false);
KitMedico.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "FacaFerro")
{
FacaMadeira.SetActive(false);
FacaFerro.SetActive(true);
Maoslisa.SetActive(false);
Machado.SetActive(false);
KitMedico.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "Machado")
{
Machado.SetActive(true);
FacaMadeira.SetActive(false);
FacaFerro.SetActive(false);
Maoslisa.SetActive(false);
KitMedico.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "KitMedico")
{
Maoslisa.SetActive(false);
FacaMadeira.SetActive(false);
Machado.SetActive(false);
FacaFerro.SetActive(false);
KitMedico.SetActive(true);
}
if (jugadorBD.SlotsBasicos[slotActual] == "Lanterna")
{
Maoslisa.SetActive(true);
FacaMadeira.SetActive(false);
Machado.SetActive(false);
KitMedico.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "")
{
Maoslisa.SetActive(true);
FacaMadeira.SetActive(false);
FacaFerro.SetActive(false);
Machado.SetActive(false);
KitMedico.SetActive(false);
}
}
void RecogerItem(){
for(int i=0;i if(jugadorBD.SlotsBasicos[i]==""){
haySlotsVacios = true;
break;
}if(jugadorBD.SlotsBasicos[i]=="KitMedico"){
jugadorBD.SlotsBasicos[i] = hit.collider.tag;
medicostock = +1;
Destroy(hit.collider.gameObject);
haySlotsVacios=false;
return;
}
}
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;
}
}
}
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;
}
}
void Drop()
{
if (jugadorBD.SlotsBasicos[slotActual] == "Machado")
{
GameObject cloneObjeto = Instantiate(objetos.machado, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "FacaMadeira")
{
GameObject cloneObjeto = Instantiate(objetos.facaMadeira, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "FacaFerro")
{
GameObject cloneObjeto = Instantiate(objetos.facaFerro, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "Lanterna")
{
GameObject cloneObjeto = Instantiate(objetos.lanterna, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "KitMedico")
{
GameObject cloneObjeto = Instantiate(objetos.kitmedico, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 1000);
jugadorBD.SlotsBasicos[slotActual] = "";
}
}
public void KitDestroy (){
if (jugadorBD.SlotsBasicos[slotActual] == "KitMedico")
{
jugadorBD.SlotsBasicos[slotActual] = "";
}
}
}
Alguem poderia me dizer como ficaria esse script?
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Inventario : MonoBehaviour {
private Transform player;
public int slotActual;
public bool stocableitem;
public int medicostock = 0;
public Transform inicioRayCast;
private GameObject scriptsContenedor;
private NombresObjetosBD nombreObjetos;
private JugadorBD jugadorBD;
private RaycastHit hit;
private bool haySlotsVacios;
[SerializeField]
public Objetos objetos;
[System.Serializable]public class Objetos
{
public GameObject facaMadeira, facaFerro, kitmedico, lanterna, machado;
}
public GameObject Maoslisa;
public GameObject FacaMadeira;
public GameObject FacaFerro;
public GameObject Machado;
public GameObject KitMedico;
void Awake () {
scriptsContenedor=GameObject.FindGameObjectWithTag ("Scripts");
nombreObjetos=scriptsContenedor.GetComponent<NombresObjetosBD>();
jugadorBD=scriptsContenedor.GetComponent<JugadorBD>();
player = GameObject.FindGameObjectWithTag("Player").transform;
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(KeyCode.Q))
Drop();
NavegacionInventario();
Debug.DrawRay(inicioRayCast.position,inicioRayCast.forward,Color.blue);
//----------Busca si estoy recogiendo el objeto correcto
if(Physics.Raycast (inicioRayCast.position,inicioRayCast.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 (jugadorBD.SlotsBasicos[slotActual] == "FacaMadeira")
{
FacaMadeira.SetActive(true);
FacaFerro.SetActive(false);
Maoslisa.SetActive(false);
Machado.SetActive(false);
KitMedico.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "FacaFerro")
{
FacaMadeira.SetActive(false);
FacaFerro.SetActive(true);
Maoslisa.SetActive(false);
Machado.SetActive(false);
KitMedico.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "Machado")
{
Machado.SetActive(true);
FacaMadeira.SetActive(false);
FacaFerro.SetActive(false);
Maoslisa.SetActive(false);
KitMedico.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "KitMedico")
{
Maoslisa.SetActive(false);
FacaMadeira.SetActive(false);
Machado.SetActive(false);
FacaFerro.SetActive(false);
KitMedico.SetActive(true);
}
if (jugadorBD.SlotsBasicos[slotActual] == "Lanterna")
{
Maoslisa.SetActive(true);
FacaMadeira.SetActive(false);
Machado.SetActive(false);
KitMedico.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "")
{
Maoslisa.SetActive(true);
FacaMadeira.SetActive(false);
FacaFerro.SetActive(false);
Machado.SetActive(false);
KitMedico.SetActive(false);
}
}
void RecogerItem(){
for(int i=0;i
haySlotsVacios = true;
break;
}if(jugadorBD.SlotsBasicos[i]=="KitMedico"){
jugadorBD.SlotsBasicos[i] = hit.collider.tag;
medicostock = +1;
Destroy(hit.collider.gameObject);
haySlotsVacios=false;
return;
}
}
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;
}
}
}
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;
}
}
void Drop()
{
if (jugadorBD.SlotsBasicos[slotActual] == "Machado")
{
GameObject cloneObjeto = Instantiate(objetos.machado, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "FacaMadeira")
{
GameObject cloneObjeto = Instantiate(objetos.facaMadeira, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "FacaFerro")
{
GameObject cloneObjeto = Instantiate(objetos.facaFerro, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "Lanterna")
{
GameObject cloneObjeto = Instantiate(objetos.lanterna, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "KitMedico")
{
GameObject cloneObjeto = Instantiate(objetos.kitmedico, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 1000);
jugadorBD.SlotsBasicos[slotActual] = "";
}
}
public void KitDestroy (){
if (jugadorBD.SlotsBasicos[slotActual] == "KitMedico")
{
jugadorBD.SlotsBasicos[slotActual] = "";
}
}
}
hellkiller- Mestre
- PONTOS : 4053
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: [Ajuda] Em um sistema de inventario!
Alguem poderia me ajudar?
hellkiller- Mestre
- PONTOS : 4053
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: [Ajuda] Em um sistema de inventario!
Reparei que você fez variáveis do tipo GameObject em vez de GameObject[]
Deste modo apenas 1 objeto é armazenado em cada variável...
Você pode fazer uma solução simples para o seu sistema...
faça variáveis do tipo int que começem com valor "0" e a cada item que você pegar, você adiciona um nessa variável, tipo:
supondo que você pegue um machado, você apenas adiciona um valor nesta variável
se perdeu um machado, retire um valor desta variável
se o valor for igual a 0, desative o machado, se for maior que 0, deixe ativado
- Código:
public GameObject Maoslisa;
public GameObject FacaMadeira;
public GameObject FacaFerro;
public GameObject Machado;
public GameObject KitMedico;
Deste modo apenas 1 objeto é armazenado em cada variável...
Você pode fazer uma solução simples para o seu sistema...
faça variáveis do tipo int que começem com valor "0" e a cada item que você pegar, você adiciona um nessa variável, tipo:
- Código:
private int quantFacaMadeira = 0;
private int quantFacaFerro = 0;
private int quantMachado = 0;
private int quantKitMedico = 0;
supondo que você pegue um machado, você apenas adiciona um valor nesta variável
- Código:
quantMachado++;
se perdeu um machado, retire um valor desta variável
- Código:
quantMachado--;
se o valor for igual a 0, desative o machado, se for maior que 0, deixe ativado
Re: [Ajuda] Em um sistema de inventario!
Assim marcos as imagens sao armazenadas pela tag, não ira dar problema isso?
os gameObjects em questão são , os próprios itens ja no personagem,que usando o isactive, para ativar
pois cada um deles controla uma animação no player!
os gameObjects em questão são , os próprios itens ja no personagem,que usando o isactive, para ativar
pois cada um deles controla uma animação no player!
hellkiller- Mestre
- PONTOS : 4053
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: [Ajuda] Em um sistema de inventario!
Vou dar uma olhada no script e já volto
Stipp- Avançado
- PONTOS : 3639
REPUTAÇÃO : 102
Idade : 25
Áreas de atuação : Programação: C#, VB.NET, PHP e outras.
Modelagem: Blender.
Respeito as regras :
Re: [Ajuda] Em um sistema de inventario!
Não iria dar problema não O.o
você só está adicionando algumas variaveis do tipo int para ver quantos itens você tem de cada tipo
você só está adicionando algumas variaveis do tipo int para ver quantos itens você tem de cada tipo
[Ajuda] Em um sistema de inventario!
Eai galera denovo aqui, dei um tempo , ajustei outras coisas, mais agora coloco de novo minha duvida aqui no meu sistema de inventario, quem poder ajudar agradeseria!
Lembrando que eu queria ajuda num sistema de estocar itens, os itens sao adicionados por tag, por outro script, então quem poder ajudar agradeceria!
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Inventario : MonoBehaviour
{
private Transform player;
public int slotActual;
public bool stocableitem;
public int medicostock = 0;
public Transform inicioRayCast;
private GameObject scriptsContenedor;
private NombresObjetosBD nombreObjetos;
private JugadorBD jugadorBD;
private RaycastHit hit;
private bool haySlotsVacios;
[SerializeField]
public Objetos objetos;
[System.Serializable]
public class Objetos
{
public GameObject facaMadeira, Corda, Madeira, Rock, facaFerro, kitmedico, lanterna, machado;
}
public GameObject Maoslisa;
public GameObject FacaMadeira;
public GameObject FacaFerro;
public GameObject Machado;
public GameObject KitMedico;
void Awake()
{
scriptsContenedor = GameObject.FindGameObjectWithTag("Scripts");
nombreObjetos = scriptsContenedor.GetComponent<NombresObjetosBD>();
jugadorBD = scriptsContenedor.GetComponent<JugadorBD>();
player = GameObject.FindGameObjectWithTag("Player").transform;
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.Q))
Drop();
NavegacionInventario();
Debug.DrawRay(inicioRayCast.position, inicioRayCast.forward, Color.blue);
//----------Busca si estoy recogiendo el objeto correcto
if (Physics.Raycast(inicioRayCast.position, inicioRayCast.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 (jugadorBD.SlotsBasicos[slotActual] == "Madeira") {
FacaMadeira.SetActive(false);
FacaFerro.SetActive(false);
Maoslisa.SetActive(true);
Machado.SetActive(false);
KitMedico.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "Corda")
{
FacaMadeira.SetActive(false);
FacaFerro.SetActive(false);
Maoslisa.SetActive(true);
Machado.SetActive(false);
KitMedico.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "Rock")
{
FacaMadeira.SetActive(false);
FacaFerro.SetActive(false);
Maoslisa.SetActive(true);
Machado.SetActive(false);
KitMedico.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "FacaMadeira")
{
FacaMadeira.SetActive(true);
FacaFerro.SetActive(false);
Maoslisa.SetActive(false);
Machado.SetActive(false);
KitMedico.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "FacaFerro")
{
FacaMadeira.SetActive(false);
FacaFerro.SetActive(true);
Maoslisa.SetActive(false);
Machado.SetActive(false);
KitMedico.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "Machado")
{
Machado.SetActive(true);
FacaMadeira.SetActive(false);
FacaFerro.SetActive(false);
Maoslisa.SetActive(false);
KitMedico.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "KitMedico")
{
Maoslisa.SetActive(false);
FacaMadeira.SetActive(false);
Machado.SetActive(false);
FacaFerro.SetActive(false);
KitMedico.SetActive(true);
}
if (jugadorBD.SlotsBasicos[slotActual] == "Lanterna")
{
Maoslisa.SetActive(true);
FacaMadeira.SetActive(false);
Machado.SetActive(false);
KitMedico.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "")
{
Maoslisa.SetActive(true);
FacaMadeira.SetActive(false);
FacaFerro.SetActive(false);
Machado.SetActive(false);
KitMedico.SetActive(false);
}
}
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;
}
}
}
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;
}
}
void Drop()
{
if (jugadorBD.SlotsBasicos[slotActual] == "Machado")
{
GameObject cloneObjeto = Instantiate(objetos.machado, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "Corda")
{
GameObject cloneObjeto = Instantiate(objetos.Corda, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "Madeira")
{
GameObject cloneObjeto = Instantiate(objetos.Madeira, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "Rock")
{
GameObject cloneObjeto = Instantiate(objetos.Rock, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "FacaMadeira")
{
GameObject cloneObjeto = Instantiate(objetos.facaMadeira, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "FacaFerro")
{
GameObject cloneObjeto = Instantiate(objetos.facaFerro, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "Lanterna")
{
GameObject cloneObjeto = Instantiate(objetos.lanterna, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "KitMedico")
{
GameObject cloneObjeto = Instantiate(objetos.kitmedico, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 1000);
jugadorBD.SlotsBasicos[slotActual] = "";
}
}
public void KitDestroy()
{
if (jugadorBD.SlotsBasicos[slotActual] == "KitMedico")
{
jugadorBD.SlotsBasicos[slotActual] = "";
}
}
}
Lembrando que eu queria ajuda num sistema de estocar itens, os itens sao adicionados por tag, por outro script, então quem poder ajudar agradeceria!
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Inventario : MonoBehaviour
{
private Transform player;
public int slotActual;
public bool stocableitem;
public int medicostock = 0;
public Transform inicioRayCast;
private GameObject scriptsContenedor;
private NombresObjetosBD nombreObjetos;
private JugadorBD jugadorBD;
private RaycastHit hit;
private bool haySlotsVacios;
[SerializeField]
public Objetos objetos;
[System.Serializable]
public class Objetos
{
public GameObject facaMadeira, Corda, Madeira, Rock, facaFerro, kitmedico, lanterna, machado;
}
public GameObject Maoslisa;
public GameObject FacaMadeira;
public GameObject FacaFerro;
public GameObject Machado;
public GameObject KitMedico;
void Awake()
{
scriptsContenedor = GameObject.FindGameObjectWithTag("Scripts");
nombreObjetos = scriptsContenedor.GetComponent<NombresObjetosBD>();
jugadorBD = scriptsContenedor.GetComponent<JugadorBD>();
player = GameObject.FindGameObjectWithTag("Player").transform;
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.Q))
Drop();
NavegacionInventario();
Debug.DrawRay(inicioRayCast.position, inicioRayCast.forward, Color.blue);
//----------Busca si estoy recogiendo el objeto correcto
if (Physics.Raycast(inicioRayCast.position, inicioRayCast.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 (jugadorBD.SlotsBasicos[slotActual] == "Madeira") {
FacaMadeira.SetActive(false);
FacaFerro.SetActive(false);
Maoslisa.SetActive(true);
Machado.SetActive(false);
KitMedico.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "Corda")
{
FacaMadeira.SetActive(false);
FacaFerro.SetActive(false);
Maoslisa.SetActive(true);
Machado.SetActive(false);
KitMedico.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "Rock")
{
FacaMadeira.SetActive(false);
FacaFerro.SetActive(false);
Maoslisa.SetActive(true);
Machado.SetActive(false);
KitMedico.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "FacaMadeira")
{
FacaMadeira.SetActive(true);
FacaFerro.SetActive(false);
Maoslisa.SetActive(false);
Machado.SetActive(false);
KitMedico.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "FacaFerro")
{
FacaMadeira.SetActive(false);
FacaFerro.SetActive(true);
Maoslisa.SetActive(false);
Machado.SetActive(false);
KitMedico.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "Machado")
{
Machado.SetActive(true);
FacaMadeira.SetActive(false);
FacaFerro.SetActive(false);
Maoslisa.SetActive(false);
KitMedico.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "KitMedico")
{
Maoslisa.SetActive(false);
FacaMadeira.SetActive(false);
Machado.SetActive(false);
FacaFerro.SetActive(false);
KitMedico.SetActive(true);
}
if (jugadorBD.SlotsBasicos[slotActual] == "Lanterna")
{
Maoslisa.SetActive(true);
FacaMadeira.SetActive(false);
Machado.SetActive(false);
KitMedico.SetActive(false);
}
if (jugadorBD.SlotsBasicos[slotActual] == "")
{
Maoslisa.SetActive(true);
FacaMadeira.SetActive(false);
FacaFerro.SetActive(false);
Machado.SetActive(false);
KitMedico.SetActive(false);
}
}
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;
}
}
}
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;
}
}
void Drop()
{
if (jugadorBD.SlotsBasicos[slotActual] == "Machado")
{
GameObject cloneObjeto = Instantiate(objetos.machado, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "Corda")
{
GameObject cloneObjeto = Instantiate(objetos.Corda, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "Madeira")
{
GameObject cloneObjeto = Instantiate(objetos.Madeira, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "Rock")
{
GameObject cloneObjeto = Instantiate(objetos.Rock, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "FacaMadeira")
{
GameObject cloneObjeto = Instantiate(objetos.facaMadeira, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "FacaFerro")
{
GameObject cloneObjeto = Instantiate(objetos.facaFerro, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "Lanterna")
{
GameObject cloneObjeto = Instantiate(objetos.lanterna, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 100);
jugadorBD.SlotsBasicos[slotActual] = "";
}
if (jugadorBD.SlotsBasicos[slotActual] == "KitMedico")
{
GameObject cloneObjeto = Instantiate(objetos.kitmedico, player.position + player.forward, Quaternion.identity) as GameObject;
cloneObjeto.GetComponent<Rigidbody>().AddForce(player.forward * 1000);
jugadorBD.SlotsBasicos[slotActual] = "";
}
}
public void KitDestroy()
{
if (jugadorBD.SlotsBasicos[slotActual] == "KitMedico")
{
jugadorBD.SlotsBasicos[slotActual] = "";
}
}
}
hellkiller- Mestre
- PONTOS : 4053
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: [Ajuda] Em um sistema de inventario!
Teria como mandar a o projeto zip ou pelo menos o script de coleta dos objetos? Ai da pra trabalhar em cima do sistema todo...
Re: [Ajuda] Em um sistema de inventario!
ok amigo.http://www.4shared.com/rar/mSlXZiQ0ba/Scripts.html!
hellkiller- Mestre
- PONTOS : 4053
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: [Ajuda] Em um sistema de inventario!
Ta faltando scripts, como por exemplo o "ArmaInventario"
Tem como mandar a cena ou um prototipo do inventário montado?
Tem como mandar a cena ou um prototipo do inventário montado?
Re: [Ajuda] Em um sistema de inventario!
Amigo são so esses o inventario.
hellkiller- Mestre
- PONTOS : 4053
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: [Ajuda] Em um sistema de inventario!
Sim, más um script depende do outro...
Por exemplo, em um script você tem uma variavel do tipo "ArmaInventario"
que é um script...
Por exemplo, em um script você tem uma variavel do tipo "ArmaInventario"
que é um script...
Re: [Ajuda] Em um sistema de inventario!
E pq tipo assim amigo, o inventario e tudo em si, o script principal, que e o inventario!
Controla todos os os outros, eles não dependerm de outro. Esse Arma Inventario não tem ligação ele era so um que pausava o jogo , quando estava em fase de testes e esqueci de tiralo do script, não se preucupe que todos os script ligado ao Inventario estão ai. :D
Controla todos os os outros, eles não dependerm de outro. Esse Arma Inventario não tem ligação ele era so um que pausava o jogo , quando estava em fase de testes e esqueci de tiralo do script, não se preucupe que todos os script ligado ao Inventario estão ai. :D
hellkiller- Mestre
- PONTOS : 4053
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Tópicos semelhantes
» AJUDA SISTEMA DE INVENTARIO NO PHOTON
» ajuda: desenvolver sistema de inventario/mochila
» Sistema de inventario
» Sistema de inventario (2D?)
» Sistema de inventário
» ajuda: desenvolver sistema de inventario/mochila
» Sistema de inventario
» Sistema de inventario (2D?)
» Sistema de inventário
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos