- Home /
Score not wokring the way I want it to
Im making a small game about the Area 51 raid and I want the score increase when I go right and decrease when I go left (going to negative if at 0). With the code I have now, it increases as long as I am moving away from the starting point. I know its increasing because I’m using the Vector2.Distance method, but there isn’t a displacement method, so I can’t figure out what to do. Here is my code and please feel free to make heavy changes to the code if it makes the score work how I want it to. Thanks.
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;
public class GameSession : MonoBehaviour {
[SerializeField] float score = 0;
[SerializeField] Text scoreText;
public Transform player;
// Start is called before the first frame update
void Start()
{
scoreText.text = score.ToString();
transform.position = player.position;
}
// Update is called once per frame
void Update()
{
if (player != null)
{
score = 10 * Mathf.RoundToInt(Vector2.Distance(player.position, transform.position));
scoreText.text = score.ToString();
}
}
}
Answer by Laiken · Sep 19, 2019 at 12:07 AM
try this:
void Update()
{
if (player != null)
{
score = 10 * Mathf.RoundToInt(player.position.x - transform.position.x);
scoreText.text = score.ToString();
}
}
if the score is inverted (increasing when you go left), substitute 10 for -10;
That worked. $$anonymous$$inda funny that the solution was to just simplify it more. Thanks
Your answer
Follow this Question
Related Questions
Can someone explain calling other scripts in C#? 2 Answers
How to add force if spherecast is true and how to set direction of sphere 0 Answers
How can I slow the velocity of my player without it affecting fall speed? 0 Answers
How do I make a photography function? 0 Answers
Running scripts from editor 1 Answer