[Ajuda]Erros em projeto
3 participantes
Página 1 de 1
[Ajuda]Erros em projeto
Script Craft Pedra Madeira:
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class PedraMadeira : MonoBehaviour
{
public bool mostrarLetra;
public string letra = "Fire1";
[Space(20)]
public Transform player;
public GameObject[] _OBJETOS;
private GameObject JOGADOR;
[SerializeField]
public Objetos objetos;
private int MaxDrop;
public bool ativardrop, destroymadeira;
private float DistanciaDoPlayer, DistanciaMinima = 3;
private float DistanciaMaxima = 3;
private bool colMadeira, ativaicon, colPedra;
private Camera cameraPrincipal;
public GameObject destroy, button1;
private GameObject button;
[System.Serializable]
public class Objetos
{
public GameObject drop;
}
void Start()
{
cameraPrincipal = Camera.main;
MaxDrop = 1;
ativardrop = false;
button1.SetActive(false);
button = GameObject.FindWithTag("Mira");
destroymadeira = false;
destroy.SetActive(false);
JOGADOR = GameObject.FindWithTag("Player");
mostrarLetra = false;
}
void Update()
{
if (mostrarLetra == true)
{
button1.SetActive(true);
}
if (mostrarLetra == false)
{
button1.SetActive(false);
}
for (int i = 0; i < _OBJETOS.Length; i++)
{
DistanciaDoPlayer = Vector3.Distance(JOGADOR.transform.position, _OBJETOS[i].transform.position);
if (DistanciaDoPlayer <= DistanciaMaxima)
{
if (ativardrop == true)
{
mostrarLetra = true;
}
if (Input.GetButtonDown(letra) && ativardrop == true && MaxDrop <= 1)
{
destroymadeira = true;
GameObject cloneObjeto = Instantiate(objetos.drop, player.position, Quaternion.identity) as GameObject;
MaxDrop++;
MaxDrop++;
destroy.SetActive(true);
}
}else {
mostrarLetra = false;
}
}
}
void OnGUI()
{
if (mostrarLetra == true)
{
GUI.Label(new Rect(Screen.width / 2 - 40, Screen.height / 2 - 40, 80, 80), "Pressione: " + letra);
}
}
void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Madeira")
{
colMadeira = true;
}
if (other.gameObject.tag == "Corda" && colMadeira)
{
ativardrop = true;
ativaicon = true;
}
if (other.gameObject.tag == "Corda")
{
colPedra = true;
}
if (other.gameObject.tag == "Madeira" && colPedra)
{
ativardrop = true;
ativaicon = true;
}
}
void OntriggerExit(Collider other)
{
if (other.gameObject.tag == "Madeira")
{
colMadeira = false;
}
if (other.gameObject.tag == "Corda" && colMadeira)
{
ativardrop = false;
ativaicon = false;
}
if (other.gameObject.tag == "Corda")
{
colPedra = false;
}
if (other.gameObject.tag == "Madeira" && colPedra)
{
ativardrop = false;
ativaicon = false;
}
}
}
Script PauseGame :
- Código:
using UnityEngine;
using System.Collections;
using UnityStandardAssets.Characters.FirstPerson;
public class PauseGame : MonoBehaviour
{
private bool ShowguiP, pauseativado,constructativado;
public GameObject constructionUI, PauseMenu, Player, inventario, MenuConstruct;
public Transform FPSController, Inventario1;
// Use this for initialization
void Start()
{
constructativado = false;
pauseativado = false;
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = (false);
ShowguiP = false;
PauseMenu.SetActive(false);
MenuConstruct.SetActive(true);
GameObject.Find("HEROI").GetComponent<CharacterController>().enabled = true;
GameObject.Find("HEROI").GetComponent<FomeSede>().enabled = true;
FPSController.GetComponent<FirstPersonController>().enabled = true;
Inventario1.GetComponent<Inventario>().enabled = true;
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
ShowguiP = !ShowguiP;
}
if (Input.GetKeyDown(KeyCode.C) && pauseativado == false)
{
constructativado = !constructativado;
}
if (ShowguiP == true)
{
pauseativado = true;
Cursor.lockState = CursorLockMode.None;
Cursor.visible = (true);
PauseMenu.SetActive(true);
Time.timeScale = 0;
MenuConstruct.SetActive(false);
FPSController.GetComponent<FirstPersonController>().enabled = false;
Inventario1.GetComponent<Inventario>().enabled = false;
GameObject.Find("HEROI").GetComponent<CharacterController>().enabled = false;
GameObject.Find("HEROI").GetComponent<FomeSede>().enabled = false;
}
if (ShowguiP == false)
{
pauseativado = false;
if (constructativado == true)
{
Cursor.lockState = CursorLockMode.None;
Cursor.visible = (true);
}
else
{
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = (false);
}
PauseMenu.SetActive(false);
MenuConstruct.SetActive(true);
Time.timeScale = 1;
FPSController.GetComponent<FirstPersonController>().enabled = true;
Inventario1.GetComponent<Inventario>().enabled = true;
GameObject.Find("HEROI").GetComponent<CharacterController>().enabled = true;
GameObject.Find("HEROI").GetComponent<FomeSede>().enabled = true;
}
if (ShowguiP == false && constructativado == false)
{
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = (false);
}
}
public void Continua()
{
ShowguiP = false;
pauseativado = false;
if (constructativado == true)
{
Cursor.lockState = CursorLockMode.None;
Cursor.visible = (true);
}
else
{
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = (false);
}
PauseMenu.SetActive(false);
MenuConstruct.SetActive(true);
Time.timeScale = 1;
FPSController.GetComponent<FirstPersonController>().enabled = true;
Inventario1.GetComponent<Inventario>().enabled = true;
GameObject.Find("HEROI").GetComponent<CharacterController>().enabled = true;
GameObject.Find("HEROI").GetComponent<FomeSede>().enabled = true;
if (ShowguiP == false && constructativado == false)
{
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = (false);
}
}
public void Opções()
{
}
public void Quit()
{
Application.Quit();
}
}
hellkiller- Mestre
- PONTOS : 4054
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: [Ajuda]Erros em projeto
Cara, quanto ao script de Pause, não vi erros, más sim, um metodo meio "errado"
você está utilizando isto:
e Get component direto... isto é muito pesado, pois tem que fazer uma varredura para achar e depois ativar...
Faça essa varredura no Start e jogue o Player em uma variavel privada, depois basta acessar esta variavel para ativar ou desativar coisas no Player... Tente fazer o máximo de coisas que puder fora do Update.
Quanto ao problema do craft, isto deve-se ao metodo que você está utilizando, que é por colisores... então dependendo da maneira que o objeto for dropado, o colisor vai ficar na horizontal, etc, e as vezes você não vai estar dentro dele para fazer o drop aparecer.
O interessante seria fazer um sistema diferente, onde você tem que colocar os objetos em um lugar, tipo um sistema de combinação no próprio inventário, estilo TheForest
você está utilizando isto:
- Código:
GameObject.Find("HEROI")
e Get component direto... isto é muito pesado, pois tem que fazer uma varredura para achar e depois ativar...
Faça essa varredura no Start e jogue o Player em uma variavel privada, depois basta acessar esta variavel para ativar ou desativar coisas no Player... Tente fazer o máximo de coisas que puder fora do Update.
Quanto ao problema do craft, isto deve-se ao metodo que você está utilizando, que é por colisores... então dependendo da maneira que o objeto for dropado, o colisor vai ficar na horizontal, etc, e as vezes você não vai estar dentro dele para fazer o drop aparecer.
O interessante seria fazer um sistema diferente, onde você tem que colocar os objetos em um lugar, tipo um sistema de combinação no próprio inventário, estilo TheForest
Re: [Ajuda]Erros em projeto
Blz, amigo
arleydudu- Iniciante
- PONTOS : 3366
REPUTAÇÃO : 0
Respeito as regras :
Tópicos semelhantes
» Erros na build do projeto após formatar pc
» [RESOLVIDO] Console mostra erros em Projeto Novo
» Alguém me ajuda a resolver esses 3 erros no meu script C# pf
» Erros do Script
» [ajuda] Como coloco anuncios no meu projeto?
» [RESOLVIDO] Console mostra erros em Projeto Novo
» Alguém me ajuda a resolver esses 3 erros no meu script C# pf
» Erros do Script
» [ajuda] Como coloco anuncios no meu projeto?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos