예제 #1
0
        private void OnValidate()
        {
            if (m_rimData == null)
            {
                m_rimData = new RimData(gameObject, m_rimType, m_color, m_power, m_intensity);
            }

            m_rimData.SetRimType(m_rimType);
            m_rimData.SetColor(m_color);
            m_rimData.SetPower(m_power);
            m_rimData.SetIntensity(m_intensity);
        }
예제 #2
0
    // Start is called before the first frame update
    public static void SaveRims(List <GameObject> rimData)
    {
        BinaryFormatter formatter = new BinaryFormatter();
        string          path      = Application.persistentDataPath + "/game.data";
        FileStream      stream    = new FileStream(path, FileMode.Create);


        RimData data = new RimData(rimData);

        formatter.Serialize(stream, data);
        stream.Close();
    }
예제 #3
0
    public static RimData LoadData()
    {
        string path = Application.persistentDataPath + "/game.data";

        if (File.Exists(path))
        {
            BinaryFormatter formatter = new BinaryFormatter();
            FileStream      stream    = new FileStream(path, FileMode.Open);

            RimData rimsLoaded = formatter.Deserialize(stream) as RimData;
            stream.Close();
            return(rimsLoaded);
        }
        else
        {
            return(null);
        }
    }
예제 #4
0
    public void LoadRims()
    {
        if (spawnedRims.Count > 0)
        {
            foreach (GameObject rim in spawnedRims)
            {
                Destroy(rim);
            }

            spawnedRims.Clear();
        }

        RimData loadedRims = SaveSystem.LoadData();

        for (int i = 0; i < loadedRims.savePos.GetLength(0); i++)
        {
            GameObject rim = Instantiate(rims[loadedRims.id[i]],
                                         new Vector3(loadedRims.savePos[i, 0], loadedRims.savePos[i, 1], loadedRims.savePos[i, 2]),
                                         Quaternion.Euler(loadedRims.saveAngle[i, 0], loadedRims.saveAngle[i, 1], loadedRims.saveAngle[i, 2]));
            rim.GetComponent <Rigidbody>().isKinematic = loadedRims.isKinematic[i];
            spawnedRims.Add(rim);

            Renderer[] renderers = rim.GetComponentsInChildren <Renderer>();
            for (int j = 0; j < loadedRims.saveColor[i].Length; j++)
            {
                if (ColorUtility.TryParseHtmlString("#" + loadedRims.saveColor[i][j], out Color tint))
                {
                    if (tint.Equals(Color.clear))
                    {
                        return;
                    }
                    renderers[j].material.color = tint;
                }
            }
        }
    }
예제 #5
0
 private void Awake()
 {
     m_rimData = new RimData(gameObject, m_rimType, m_color, m_power, m_intensity);
 }