[RESOLVIDO] passar os pontos para outra fase.
2 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] passar os pontos para outra fase.
quero passar os pontos assim que o inimigo morrer eu uso o loadscene só que quando eu faço isso os pontos zeram.
e não estou conseguindo passar os pontos salvos,
script do personagem aonde estão os pontos;
script do inimigo.
e não estou conseguindo passar os pontos salvos,
script do personagem aonde estão os pontos;
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class personagem : MonoBehaviour {
public Rigidbody2D RB;
public float speed = 6f;
public Camera cam;
public Text txplasma;
public Text txlife;
public int lifes;
public int points ;
public GameObject inimigos;
public GameObject barra;
public GameObject morte;
Vector2 movemento;
Vector2 mouseposicao;
public bool comecou;
public bool acabou;
public bool escore;
// Use this for initialization
void Start () {
txlife.text = lifes.ToString ();
points = PlayerPrefs.GetInt ("pontosss");
txplasma.text = points.ToString ();
}
// Update is called once per frame
void Update () {
movemento.x = Input.GetAxis ("Horizontal");
movemento.y = Input.GetAxis ("Vertical");
mouseposicao = cam.ScreenToWorldPoint (Input.mousePosition);
}
void FixedUpdate() {
RB.MovePosition (RB.position + movemento * speed * Time.deltaTime);
Vector2 lookDir = mouseposicao - RB.position;
float angle = Mathf.Atan2 (lookDir.y, lookDir.x) * Mathf.Rad2Deg - 90f;
RB.rotation = angle;
}
private void OnTriggerEnter2D(Collider2D collision2D){
if (collision2D.gameObject.CompareTag ("item")) {
Destroy (collision2D.gameObject);
if (!comecou) {
comecou = true;
barra.SendMessage ("Comecou");
}
points++;
txplasma.text = points.ToString ();
}
if (collision2D.gameObject.CompareTag ("life")) {
Destroy (collision2D.gameObject);
if (!comecou) {
comecou = true;
barra.SendMessage ("Comecou");
}
lifes =(lifes + 2);
txlife.text = lifes.ToString ();
}
}
private void OnCollisionEnter2D(Collision2D collision2D){
if (collision2D.gameObject.CompareTag ("inimigos")) {
lifes--;
txlife.text = lifes.ToString ();
}
if (lifes == 0) {
escore = true;
PlayerPrefs.SetInt ("pontosss", points);
SceneManager.LoadScene ("menu");
escore = false;
}
}
}
script do inimigo.
- Código:
public class inimigos : MonoBehaviour {
public Transform playerf;
public float movespeed = 8f;
public Rigidbody2D rb;
private Vector2 movementar;
public int vidas = 160;
public GameObject morte;
public GameObject barra;
public GameObject vilao;
// Use this for initialization
void Start () {
rb = this.GetComponent<Rigidbody2D> ();
}
void Update () {
Vector3 direction = playerf.position - transform.position;
float angle = Mathf.Atan2 (direction.y, direction.x) * Mathf.Rad2Deg;
rb.rotation = angle;
direction.Normalize ();
movementar = direction;
}
void FixedUpdate(){
moverinimigo (movementar);
}
void moverinimigo(Vector2 direction){
rb.MovePosition ((Vector2)transform.position + (direction * movespeed * Time.deltaTime));
}
public void tomadano(int damage){
vidas -= damage;
if (vidas <= 0) {
vilao.SetActive (false);
SceneManager.LoadScene ("SampleScene");
personagem.escore;
}
}
}
Última edição por dstaroski em Ter Abr 07, 2020 7:21 pm, editado 1 vez(es) (Motivo da edição : Resolvido)
joaoguil3- Iniciante
- PONTOS : 1819
REPUTAÇÃO : 3
Respeito as regras :
Re: [RESOLVIDO] passar os pontos para outra fase.
Boa tarde! pelo que entendi,o seu inimigo ao morrer não está salvando no playerprefs a pontuação. Tenta revisar essa parte, em algum momento não está sendo salva a pontuação, ou você está carregando uma cena antes de salvar.joaoguil3 escreveu:quero passar os pontos assim que o inimigo morrer eu uso o loadscene só que quando eu faço isso os pontos zeram.
e não estou conseguindo passar os pontos salvos,
script do personagem aonde estão os pontos;
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class personagem : MonoBehaviour {
public Rigidbody2D RB;
public float speed = 6f;
public Camera cam;
public Text txplasma;
public Text txlife;
public int lifes;
public int points ;
public GameObject inimigos;
public GameObject barra;
public GameObject morte;
Vector2 movemento;
Vector2 mouseposicao;
public bool comecou;
public bool acabou;
public bool escore;
// Use this for initialization
void Start () {
txlife.text = lifes.ToString ();
points = PlayerPrefs.GetInt ("pontosss");
txplasma.text = points.ToString ();
}
// Update is called once per frame
void Update () {
movemento.x = Input.GetAxis ("Horizontal");
movemento.y = Input.GetAxis ("Vertical");
mouseposicao = cam.ScreenToWorldPoint (Input.mousePosition);
}
void FixedUpdate() {
RB.MovePosition (RB.position + movemento * speed * Time.deltaTime);
Vector2 lookDir = mouseposicao - RB.position;
float angle = Mathf.Atan2 (lookDir.y, lookDir.x) * Mathf.Rad2Deg - 90f;
RB.rotation = angle;
}
private void OnTriggerEnter2D(Collider2D collision2D){
if (collision2D.gameObject.CompareTag ("item")) {
Destroy (collision2D.gameObject);
if (!comecou) {
comecou = true;
barra.SendMessage ("Comecou");
}
points++;
txplasma.text = points.ToString ();
}
if (collision2D.gameObject.CompareTag ("life")) {
Destroy (collision2D.gameObject);
if (!comecou) {
comecou = true;
barra.SendMessage ("Comecou");
}
lifes =(lifes + 2);
txlife.text = lifes.ToString ();
}
}
private void OnCollisionEnter2D(Collision2D collision2D){
if (collision2D.gameObject.CompareTag ("inimigos")) {
lifes--;
txlife.text = lifes.ToString ();
}
if (lifes == 0) {
escore = true;
PlayerPrefs.SetInt ("pontosss", points);
SceneManager.LoadScene ("menu");
escore = false;
}
}
}
script do inimigo.
- Código:
public class inimigos : MonoBehaviour {
public Transform playerf;
public float movespeed = 8f;
public Rigidbody2D rb;
private Vector2 movementar;
public int vidas = 160;
public GameObject morte;
public GameObject barra;
public GameObject vilao;
// Use this for initialization
void Start () {
rb = this.GetComponent<Rigidbody2D> ();
}
void Update () {
Vector3 direction = playerf.position - transform.position;
float angle = Mathf.Atan2 (direction.y, direction.x) * Mathf.Rad2Deg;
rb.rotation = angle;
direction.Normalize ();
movementar = direction;
}
void FixedUpdate(){
moverinimigo (movementar);
}
void moverinimigo(Vector2 direction){
rb.MovePosition ((Vector2)transform.position + (direction * movespeed * Time.deltaTime));
}
public void tomadano(int damage){
vidas -= damage;
if (vidas <= 0) {
vilao.SetActive (false);
SceneManager.LoadScene ("SampleScene");
personagem.escore;
}
}
}
Abraço!
joaoguil3- Iniciante
- PONTOS : 1819
REPUTAÇÃO : 3
Respeito as regras :
Re: [RESOLVIDO] passar os pontos para outra fase.
e era aquilo mesmo? o que fez exatamente para corrigir?joaoguil3 escreveu:Obrigado eu vi aqui deu certo
Re: [RESOLVIDO] passar os pontos para outra fase.
Usei o playprefs no void start e o int coloquei como static
joaoguil3- Iniciante
- PONTOS : 1819
REPUTAÇÃO : 3
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Problema depois de passar para nivel 3
» [RESOLVIDO] passar de uma animação para a outra rapidamente pelo animator
» QUERIA SABER QUAL CODIGO PARA DESATIVAR UMA CAMERA E PASSAR PARA OUTRA
» [RESOLVIDO] Passar de fase
» Problema com script para passar de fase
» [RESOLVIDO] passar de uma animação para a outra rapidamente pelo animator
» QUERIA SABER QUAL CODIGO PARA DESATIVAR UMA CAMERA E PASSAR PARA OUTRA
» [RESOLVIDO] Passar de fase
» Problema com script para passar de fase
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos