Coleta de Madeiras
3 participantes
Página 1 de 1
Coleta de Madeiras
Eu Fiz la do tutorial que vc fez pra dropar e derrubar ,
mais faz um tuto pra pegar as madeiras , e aparecer no gui pfvr
mais faz um tuto pra pegar as madeiras , e aparecer no gui pfvr
teto272- Iniciante
- PONTOS : 2581
REPUTAÇÃO : 0
Respeito as regras :
Re: Coleta de Madeiras
Por favor , poste seu script para que possamos lhe ajudar..teto272 escreveu:Eu Fiz la do tutorial que vc fez pra dropar e derrubar ,
mais faz um tuto pra pegar as madeiras , e aparecer no gui pfvr
Re: Coleta de Madeiras
fecirineu escreveu:Por favor , poste seu script para que possamos lhe ajudar..teto272 escreveu:Eu Fiz la do tutorial que vc fez pra dropar e derrubar ,
mais faz um tuto pra pegar as madeiras , e aparecer no gui pfvr
Arvore
- Código:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(Rigidbody))]
public class Arvore : MonoBehaviour {
public int TempoDeQueda = 6;
public int VIDA;
private Rigidbody CorpoRigido;
private float Cronometro;
private bool iniciarcontagem;
public GameObject Madeiras;
public GameObject[] LocalMadeiras;
public int MinMadeiras = 1;
public int MaxMadeiras = 5;
void Start () {
CorpoRigido = GetComponent <Rigidbody> ();
CorpoRigido.useGravity = true;
CorpoRigido.isKinematic = true;
VIDA = 100;
Cronometro = 0;
iniciarcontagem = false;
}
// Update is called once per frame
void Update () {
if (VIDA <= 0) {
CorpoRigido.isKinematic = false;
CorpoRigido.AddForce(Random.Range (-20, 20) * 20, Random.Range (-5, 5) * 5, Random.Range (-20, 20) * 20);
iniciarcontagem = true;
}
if (iniciarcontagem == true) {
Cronometro += Time.deltaTime;
}
if(Cronometro >= TempoDeQueda) {
Cronometro = 0;
int Quantidade = Random.Range (MinMadeiras, MaxMadeiras);
if (Quantidade > LocalMadeiras.Length) {
Quantidade = LocalMadeiras.Length;
}
for(int x = 0; x < Quantidade; x++){
Instantiate (Madeiras, LocalMadeiras [x].transform.position, transform.rotation);
}
Destroy(gameObject);
}
}
}
Derrubar Arvore
- Código:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(AudioSource))]
public class DerrubarArvores : MonoBehaviour {
private Camera CameraPrincipal;
public float DisMinima = 6,TempoAtaque = 1;
public int DanoCausado = 30;
public Texture2D Mira;
public AudioClip SomMadeira;
private float Contador;
private bool PodeAtacar;
void Start () {
CameraPrincipal = Camera.main;
Cursor.visible = false;
Contador = 0;
PodeAtacar = true;
}
// Update is called once per frame
void Update () {
RaycastHit colisor;
Ray CentroTela = CameraPrincipal.ScreenPointToRay (new Vector3 (Screen.width / 2, Screen.height / 2, 0));
bool colisao = Physics.Raycast (CentroTela, out colisor);
if (colisao) {
if (Input.GetButtonUp ("Fire1") && Vector3.Distance (transform.position, colisor.transform.position) < DisMinima && PodeAtacar == true) {
PodeAtacar = false;
if (colisor.transform.gameObject.tag == "Arvore") {
GetComponent<AudioSource> ().PlayOneShot (SomMadeira);
Arvore ScriptArvore = colisor.transform.GetComponent<Arvore> () as Arvore;
ScriptArvore.VIDA -= DanoCausado;
}
}
}
if (PodeAtacar == false) {
Contador += Time.deltaTime;
}
if(Contador >= TempoAtaque) {
Contador = 0;
PodeAtacar = true;
}
}
void OnGUI (){
GUI.DrawTexture(new Rect(Screen.width/2-Mira.width/2,Screen.height/2-Mira.height/2,Mira.width,Mira.height),Mira);
}
}
teto272- Iniciante
- PONTOS : 2581
REPUTAÇÃO : 0
Respeito as regras :
Re: Coleta de Madeiras
se
crie 2 scripts script Wood vai na madeira e o Manager vai em qualquer outro objeto menos na madeira;
no script Manager crie um public static int chamado madeiras e um Text chamado texto madeiras; importe a biblioteca UnityEngine.UI;
e faz na void update o texto madeiras receber o madeiras assim; textoMadeiras.text = Madeiras;
fica assim o seu script Manager:
agora vamos para o Wood;
crie um public int QuantidadeDeMadeiras;
crie a void OnTriggerEnter()
e faça na void OnTriggerEnter o Madeiras do Manager receber += ao QuantidadeDeMadeiras usando esse comando: Manager.Madeiras += QuantidadeDeMadeiras; seu script fica assim;
esse script ele vai na madeira; e essa madeira deve ter um Collider marcado como IsTrigger;
crie 2 scripts script Wood vai na madeira e o Manager vai em qualquer outro objeto menos na madeira;
no script Manager crie um public static int chamado madeiras e um Text chamado texto madeiras; importe a biblioteca UnityEngine.UI;
e faz na void update o texto madeiras receber o madeiras assim; textoMadeiras.text = Madeiras;
fica assim o seu script Manager:
- Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;
using System.Collections;
public class Manager : MonoBehaviour{
public static int Madeiras;
public Text textoMadeiras;
void Update(){
textoMadeiras.text = Madeiras;
}
}
agora vamos para o Wood;
crie um public int QuantidadeDeMadeiras;
crie a void OnTriggerEnter()
e faça na void OnTriggerEnter o Madeiras do Manager receber += ao QuantidadeDeMadeiras usando esse comando: Manager.Madeiras += QuantidadeDeMadeiras; seu script fica assim;
- Código:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class Wood : MonoBehaviour{
public int QuantidadeDeMadeiras = 7;
void OnTriggerEnter(){
Manager.Madeiras += QuantidadeDeMadeiras;
Destroy(this.gameObject);
}
}
esse script ele vai na madeira; e essa madeira deve ter um Collider marcado como IsTrigger;
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Tópicos semelhantes
» Relacionar quantidade de pontos/coleta com recuperação ou ganho de vida
» Coleta de itens
» Dúvida quanto a coleta de itens.
» Sisteminha para coleta de itens
» Como liberar novos personagens a partir de coleta de moedas?
» Coleta de itens
» Dúvida quanto a coleta de itens.
» Sisteminha para coleta de itens
» Como liberar novos personagens a partir de coleta de moedas?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos