- Home /
Score wont increase when enemies die
i have a game where the enemies spawn on one side and fly to the right where the player is and you have to shoot other projectiles at the enemies and my code is not working can anyone help?
player public class Player : MonoBehaviour { public int health; public int score; public Text textComp;
void Start()
{
score = 0;
}
// Update is called once per frame
void Update()
{
textComp.text = score.ToString();
if (health <= 0)
{
Destroy(gameObject);
}
}
void AddScore()
{
score = score + 10;
}
} Enemies(all three are the same but some have other tags to get killed by) public class TriangleEnemy : MonoBehaviour { public int Yspeed; public int Xspeed; public int health; public int addscore;
public Text textComp;
public GameObject player;
private void Start()
{
health = 1;
addscore = 0;
}
private void Update()
{
if (health <= 0)
{
DESTROYED();
}
transform.position = new Vector2(transform.position.x + Xspeed, transform.position.y + Yspeed);
}
void DESTROYED()
{
player.SendMessage("AddScore", SendMessageOptions.DontRequireReceiver);
Destroy(gameObject);
}
void OnTriggerEnter2D(Collider2D other)
{
if (other.CompareTag("Triangle"))
{
health--;
}
if (other.CompareTag("Player"))
{
other.GetComponent<Player>().health--;
Destroy(gameObject);
}
if (other.CompareTag("PauseMenu"))
{
Destroy(gameObject);
}
}
} SquareEnemy public class Enemy : MonoBehaviour { public GameObject player; public int Yspeed; public int Xspeed; public int health; private void Start() { health = 1; player = GameObject.FindGameObjectWithTag("Player"); } private void Update() {
if (health <= 0)
{
DESTROYED();
}
transform.position = new Vector2(transform.position.x + Xspeed, transform.position.y + Yspeed);
}
void DESTROYED()
{
player.SendMessage("AddScore", SendMessageOptions.DontRequireReceiver);
Destroy(gameObject);
}
void OnTriggerEnter2D(Collider2D other)
{
if (other.CompareTag("Cube"))
{
health--;
}
if (other.CompareTag("Player"))
{
other.GetComponent<Player>().health--;
Destroy(gameObject);
}
if (other.CompareTag("PauseMenu"))
{
Destroy(gameObject);
}
}
}
Any help will be appreciated for a beginner like me. :)
Answer by suIly · Jul 30, 2019 at 12:02 AM
I think it's because you didn't call the "AddScore" function in the couple first lines of code. Line 10 - 15
Answer by shining_gentleman · Jul 30, 2019 at 07:49 AM
You have the reference to the class which the method is in. Can't you just call it like this:
player.GetComponent<Player>().AddScore();
Oh, and make your AddScore() is a public method.
Your answer
Follow this Question
Related Questions
Pause Time.time? 1 Answer
Im Doing HighScore System To My Game And There Is Something Wrong In My Scripts 0 Answers
Simple score system breaking crates 1 Answer
need help wih score system 4 Answers
Show message when score achieved 1 Answer