示例#1
0
    public void Save()
    {
        FileFuncs.SaveFileOpen(fname, 1, TheManager.TM.Thingies.Count);

        #region PACK_ELEMENTS
        for (int i = 0; i < TheManager.TM.Thingies.Count; i++)
        {
            DataStruct data;
            data.ObjectType    = (int)TheManager.TM.Thingies[i].tot;
            data.TransformData = new float[9];

            Vector3 pos = TheManager.TM.Thingies[i].transform.position;
            Vector3 rot = TheManager.TM.Thingies[i].transform.rotation.eulerAngles;
            Vector3 scl = TheManager.TM.Thingies[i].transform.localScale;

            data.TransformData[0] = pos.x;
            data.TransformData[1] = pos.y;
            data.TransformData[2] = pos.z;

            data.TransformData[3] = rot.x;
            data.TransformData[4] = rot.y;
            data.TransformData[5] = rot.z;

            data.TransformData[6] = scl.x;
            data.TransformData[7] = scl.y;
            data.TransformData[8] = scl.z;

            FileFuncs.PackElement(data, i);
        }
        #endregion

        FileFuncs.SaveFileClose();
    }
示例#2
0
    public void Load()
    {
        FileFuncs.LoadFileOpen(fname);

        BaseCommand bc = new BaseCommand();

        //TheManager.TM.DestroyAll();
        for (int i = TheManager.TM.Thingies.Count - 1; i >= 0; --i)
        {
            bc.AddAction(new CDelete(TheManager.TM.Thingies[i]));
        }

        for (int i = FileFuncs.GetArrSize() - 1; i >= 0; --i)
        {
            DataStruct d = FileFuncs.ExtractElement(i);

            //Debug.Log(d.ObjectType);

            Thingy thing = PoolQueue.PQ.RequestThing((TypeOfThingy)d.ObjectType);

            bc.AddAction(new CSpawn(thing));

            bc.AddAction(new CMovement(thing, new Vector3(d.TransformData[0], d.TransformData[1], d.TransformData[2])));
            bc.AddAction(new CRotate(thing, Quaternion.Euler(d.TransformData[3], d.TransformData[4], d.TransformData[5])));
            bc.AddAction(new CScale(thing, new Vector3(d.TransformData[6], d.TransformData[7], d.TransformData[8])));

            //thing.transform.position = new Vector3(d.TransformData[0], d.TransformData[1], d.TransformData[2]);
            //thing.transform.rotation = Quaternion.Euler(d.TransformData[3], d.TransformData[4], d.TransformData[5]);
            //thing.transform.localScale = new Vector3(d.TransformData[6], d.TransformData[7], d.TransformData[8]);
        }

        bc.Do();

        FileFuncs.LoadFileClose();
    }
 private void Awake()
 {
     TheManager.TM.Controls.Add(this);
     FileFuncs.CloseAll();
 }