so ya,i m noob in unity,but tried to make 1 game from youtube video.
here’s my code.after 1st level i just stuck on 2nd level(infinite loop),i have 5 level+mainmenu,it dsnt matter which level i play after tht level i shift to the 2nd level(array[1]).please help me.i don’t wanna fail.
thank you in advance.
gamemanager code:-
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
public class GameManager : MonoBehaviour {
public int currentScore;
public int highscore;
// Use this for initialization
public int currentLevel;
public int unlockedLevel;
public float starttime;
private string currenttime;
public GUISkin skin;
public Rect timerect;
public Color warningColorTimer;
public Color defaultColorTimer;
void Update()
{
starttime -=Time.deltaTime;
currenttime = string.Format("{0:0.0}", starttime);
if (starttime <= 0)
{
starttime = 0;
Destroy(gameObject);
SceneManager.LoadScene(5);
}
}
void Start()
{
if (PlayerPrefs.GetInt("level completed") > 0)
{ //DontDestroyOnLoad(gameObject);
currentLevel = PlayerPrefs.GetInt("level completed");
}
else {
currentLevel = 0;
}
}
public void CompleteLevel()
{
if (currentLevel < 5)
{
currentLevel += 1;
PlayerPrefs.SetInt("Level completed",currentLevel);
PlayerPrefs.SetInt("Level" + currentLevel.ToString() + "score", currentScore);
SceneManager.LoadScene(currentLevel);
}
else
{
print("well done");
PlayerPrefs.SetInt("Level completed", 0);
CompleteLevel();
}
}
void OnGUI()
{
GUI.skin = skin;
if (starttime < 5f)
{
skin.GetStyle("boo").normal.textColor = warningColorTimer;
}
else
{
skin.GetStyle("boo").normal.textColor = defaultColorTimer;
}
GUI.Label(timerect, currenttime, skin.GetStyle("boo"));
}
}
here’s my player movement code:-
using UnityEngine;
using System.Collections;
public class PlayerMovement : MonoBehaviour
{
public float moveSpeed;
private Vector3 input;
Rigidbody cubeMovement;
private float maxSpeed = 5f;
private Vector3 spawn;
public GameObject deathparticles;
public GameManager manager;
// Use this for initialization
void Start()
{
cubeMovement = GetComponent<Rigidbody>();
spawn = transform.position;
manager = manager.GetComponent<GameManager>();
}
// Update is called once per frame
void FixedUpdate()
{
input = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical"));
if (cubeMovement.velocity.magnitude < maxSpeed)
{
cubeMovement.AddForce(input * moveSpeed);
}
if (Input.GetKey(KeyCode.A))
{
cubeMovement.AddForce(input * moveSpeed);
}
if (Input.GetKey(KeyCode.D))
{
cubeMovement.AddForce(input * moveSpeed);
}
if (Input.GetKey(KeyCode.W))
{
cubeMovement.AddForce(input * moveSpeed);
}
if (Input.GetKey(KeyCode.S))
{
cubeMovement.AddForce(input * moveSpeed);
}
if (transform.position.y <-1)
{
Die();
}
}
void OnCollisionEnter(Collision other)
{
if (other.transform.tag == "badguy")
{
Die();
}
}
void OnTriggerEnter(Collider other)
{
if (other.transform.tag=="Goal")
{
manager.CompleteLevel();
}
}
void Die()
{
Instantiate(deathparticles, transform.position, Quaternion.Euler(270,0,0));
transform.position = spawn;
}
}