Example #1
0
    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();
        }
    }
Example #2
0
    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);
        }
    }
Example #3
0
    // 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;
 }