- Home /
How do I access two Scripts
I am having a problem accessing two scripts. I am get some errors . I trying to access MyClock script and ScoreManager Script from the PlayerPreference script. I am trying to do an if statement . I need to check for time and score in the if statement .Here is all three of my scripts.
using UnityEngine; using System.Collections; using UnityEngine.UI; using UnityEngine.SceneManagement;
public class PlayerPreference : MonoBehaviour { private ScoreManager scoreManagerScript; private MyClock MyClockScript;
void Awake ()
{
ScoreManager = GetComponent<ScoreManagerScript>();
MyClock = GetComponent<MyClockScript>();
}
void Update ()
{
if (m_leftTime >= && < score )
{
SceneManager.LoadScene("time");
}
}
using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement;
public class MyClock : MonoBehaviour { public string time; public int Minutes = 0; public int Seconds = 0;
private Text m_text;
private float m_leftTime;
private void Start()
{
m_text = GetComponent<Text>();
m_leftTime = GetInitialTime();
}
public void Update()
{
if (m_leftTime > 0f)
{
// Update countdown clock
m_leftTime -= Time.deltaTime;
Minutes = GetLeftMinutes();
Seconds = GetLeftSeconds();
// Show current clock
if (m_leftTime > 0f)
{
m_text.text = "Time : " + Minutes + ":" + Seconds.ToString("00");
}
else
{
// The countdown clock has finished
m_text.text = "Time : 0:00";
}
}
}
private float GetInitialTime()
{
return Minutes * 60f + Seconds;
}
private int GetLeftMinutes()
{
return Mathf.FloorToInt(m_leftTime / 60f);
}
private int GetLeftSeconds()
{
return Mathf.FloorToInt(m_leftTime % 60f);
}
}
using UnityEngine; using System.Collections; using UnityEngine.UI;
public class ScoreManager : MonoBehaviour { public static int score; private Text text;
void Awake ()
{
text = GetComponent <Text> ();
score = 0;
}
void Update ()
{
text.text = "Score :" + score;
}
}
Please read the user guide and take note on how to ask questions on this site. Your code is pretty impossible to read currently, and you've not provided any detail on what error you're receiving, nor what you've done to try to fix it.
Assets/PlayerPreference.cs(19,29): error CS1525: Unexpected symbol `&&'
Right. So that's pinpointed exactly what the error is... look at line 19, which I'm assu$$anonymous$$g is:
if (m_leftTime >= && < score )
That's nonsense. What are you trying to do there?
Answer by TBruce · May 09, 2016 at 04:16 PM
You need to post all information when asking questions. When there are errors you need to post all errors as well as where they occur (line number/ and in this case which class).
As I previously mentioned in another question there is no Unity defined function GetInitialTime() so you need to have created this function yourself and provide the reference to calling the function.
Here is your PlayerPreference class with fixes
public class PlayerPreference : MonoBehaviour
{
private scoreManager scoreManagerScript;
private myClock MyClockScript;
void Awake ()
{
scoreManager = GetComponent<ScoreManagerScript>();
myClock = GetComponent<MyClockScript>();
}
void Update ()
{
if ((myClock != NULL) && (scoreManager != NULL) &&
(myClock.m_leftTime >= scoreManager.score))
{
SceneManager.LoadScene("time");
}
}
}
Edit: When posting my answer I accidentally left your code in the answer the way it was
if (m_leftTime >= && < scoreManager.score)
What I meant was
if ((myClock != NULL) && (scoreManager != NULL) &&
(myClock.m_leftTime >= scoreManager.score))
as shown in my updated code