public override void OnInspectorGUI() { StarFieldManager field = target as StarFieldManager; base.OnInspectorGUI(); //if (GUILayout.Button("Configure Stars Transform")) field.ConfigureStarsTransform(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Load stars")) { // Record following changes to the undo stack. Undo.RegisterFullObjectHierarchyUndo(field.gameObject, "Load Stars"); LoadStars(field); //SetStarReferences(); } if (GUILayout.Button("Delete all stars")) { // Record changes to the undo stack. Undo.RegisterFullObjectHierarchyUndo(field.gameObject, "Delete All Stars"); DeleteAllStars(); } GUILayout.EndHorizontal(); if (GUILayout.Button("Set star references")) { //SetStarReferences(); } }
private void LoadStars(StarFieldManager field) { // Loads data about position, color, and absolute magnitude of all stars from a csv. string starInfoArray = File.ReadAllText(Application.dataPath + "/Resources/Stars - GameData.csv"); starInfoArray.Replace("\r", null); foreach (string starInfo in starInfoArray.Split('\n')) { string[] dataEntry = starInfo.Split(','); // Instantiate star GameObject starObject = Instantiate(field.starPrefab, field.transform); starObject.tag = "Star"; Star star = starObject.GetComponent <Star>(); // Set references star.cam = field.mainCamera.transform; star.field = field; // Set position and parameters Vector3 positionData = new Vector3(float.Parse(dataEntry[0]), float.Parse(dataEntry[1]), float.Parse(dataEntry[2])); star.TruePosition = positionData; star.Temperature = float.Parse(dataEntry[3]); star.absoluteMagnitude = float.Parse(dataEntry[4]); // Properly size and rotate star sprite. star.ConfigureTransform(); star.UpdateTransform(); // Update Transform sets rotation equal to camera rotation, so rotation must be performed here. star.transform.rotation = Quaternion.LookRotation(positionData); } }
// Start is called before the first frame update void Start() { cam = Camera.main.transform; field = StarFieldManager.instance; sprite = GetComponent <SpriteRenderer>(); ConfigureTransform(); }
void Awake() { instance = this; }