Пример #1
0
    private void UpdateObjects()
    {
        //update sushi positions
        foreach (GameObject sushi in sushis)
        {
            int   instanceID = sushi.GetInstanceID();
            Sushi temp       = (Sushi)saveObject.sushiObjects[instanceID];

            temp.position  = sushi.transform.position;
            temp.rotation  = sushi.transform.rotation;
            temp.sauceType = sushi.GetComponent <Saucable>().sauce_type;

            saveObject.sushiObjects[instanceID] = temp;
        }

        //update sauce positions
        foreach (GameObject saucebottle in saucebottles)
        {
            int         instanceID = saucebottle.GetInstanceID();
            Saucebottle temp       = (Saucebottle)saveObject.sauceObjects[instanceID];

            temp.position  = saucebottle.transform.position;
            temp.rotation  = saucebottle.transform.rotation;
            temp.sauceType = saucebottle.GetComponent <SauceType>().sauce_type;

            saveObject.sauceObjects[instanceID] = temp;
        }

        //update sauce dish
        GameObject dishTemp = GameObject.Find("SauceDish");

        saveObject.dish.position  = dishTemp.transform.position;
        saveObject.dish.rotation  = dishTemp.transform.rotation;
        saveObject.dish.sauceType = dishTemp.GetComponentInChildren <Saucable>().sauce_type;
    }
Пример #2
0
    private void RehydrateHashTable()
    {
        saveObject.sushiObjects.Clear();

        foreach (GameObject go in sushis)
        {
            Sushi sushi = new Sushi();
            sushi.position  = new SerializeVector3(go.transform.position.x, go.transform.position.y, go.transform.position.z);
            sushi.rotation  = new SerializeQuaternion(go.transform.rotation.x, go.transform.rotation.y, go.transform.rotation.z, go.transform.rotation.w);
            sushi.sushiType = go.name;
            sushi.sauceType = go.GetComponent <Saucable>().sauce_type;
            saveObject.sushiObjects.Add(go.GetInstanceID(), sushi);
        }

        saveObject.sauceObjects.Clear();

        foreach (GameObject go in saucebottles)
        {
            Saucebottle saucebottle = new Saucebottle();
            saucebottle.position  = go.transform.position;
            saucebottle.rotation  = go.transform.rotation;
            saucebottle.sauceType = go.GetComponent <SauceType>().sauce_type;
            saveObject.sauceObjects.Add(go.GetInstanceID(), saucebottle);
        }
    }
Пример #3
0
    public void AddSauce(GameObject go, string sauce)
    {
        int instanceID = go.GetInstanceID();

        if (!saveObject.sauceObjects.ContainsKey(instanceID))
        {
            Saucebottle saucebottle = new Saucebottle();
            saucebottle.position  = new SerializeVector3(go.transform.position.x, go.transform.position.y, go.transform.position.z);
            saucebottle.rotation  = new SerializeQuaternion(go.transform.rotation.x, go.transform.rotation.y, go.transform.rotation.z, go.transform.rotation.w);
            saucebottle.sauceType = sauce;
            saveObject.sauceObjects.Add(instanceID, saucebottle);
            saucebottles.Add(go);
            Debug.Log("Sauce Added to SaveObject");
        }
    }
Пример #4
0
    public void LoadObjects()
    {
        if (File.Exists(Application.dataPath + "/Savegame.save"))
        {
            BinaryFormatter bf   = new BinaryFormatter();
            FileStream      file = File.Open(Application.dataPath + "/Savegame.save", FileMode.Open);
            saveObject = (SaveObject)bf.Deserialize(file);
            file.Close();

            sushis.Clear();
            saucebottles.Clear();

            foreach (int index in saveObject.sushiObjects.Keys)
            {
                Sushi sushi = (Sushi)saveObject.sushiObjects[index];
                Debug.Log(sushi);

                Vector3    newP = new Vector3(sushi.position.x, sushi.position.y, sushi.position.z);
                Quaternion newQ = new Quaternion(sushi.rotation.x, sushi.rotation.y, sushi.rotation.z, sushi.rotation.w);

                GameObject go = CreateSushi(newP, newQ, sushi.sushiType);
                SauceObject(go, sushi.sauceType);
                sushis.Add(go);
            }

            foreach (int index in saveObject.sauceObjects.Keys)
            {
                Saucebottle saucebottle = (Saucebottle)saveObject.sauceObjects[index];

                Vector3    newP = saucebottle.position;
                Quaternion newQ = saucebottle.rotation;

                GameObject go = CreateSauce(newP, newQ, saucebottle.sauceType);
                saucebottles.Add(go);
            }

            GameObject dishTemp = GameObject.Find("SauceDish");
            dishTemp.transform.position = saveObject.dish.position;
            dishTemp.transform.rotation = saveObject.dish.rotation;
            SauceObject(dishTemp, saveObject.dish.sauceType);

            //clear hash list and rebuild because new game objects have new Instance IDs
            RehydrateHashTable();

            //enable all unlocked sauces
            UnlockSauces();
        }
    }