Esempio n. 1
0
    public override void JustDoIt(UndoRedoInfo info)
    {
        base.JustDoIt(info);

        switch (operation)
        {
        case OperationType.AddSceneObj:
            for (int i = 0; i < info.parma.Length; i++)
            {
                SceneObjectClass sceneObjectClass = info.parma[i] as SceneObjectClass;
                GameObjectPool.instance.InsertChild(sceneObjectClass.gameObject.name, sceneObjectClass.gameObject);
            }
            break;

        case OperationType.DeleteSceneObj:
            for (int i = 0; i < info.parma.Length; i++)
            {
                SceneObjectClass sceneObjectClass = info.parma[i] as SceneObjectClass;
                GameObjectPool.instance.RemoveTarge(sceneObjectClass.gameObject.name, sceneObjectClass.gameObject);
                sceneObjectClass.gameObject.SetActive(true);
                sceneObjectClass.Refresh(false);
                sceneObjectClass.cell.chunkParent.sceneObjectMgr.AddSceneObject(sceneObjectClass);
            }
            break;
        }
    }
Esempio n. 2
0
    //以地形块为主体的保存
    public void Save(BinaryWriter writer)
    {
        int count = 0;

        foreach (Transform item in sceneObjectMgr.transform)
        {
            if (item.gameObject.activeSelf == true)
            {
                count++;
            }
        }
        writer.Write(count);
        foreach (Transform item in sceneObjectMgr.transform)
        {
            SceneObjectClass itemClass = null;
            if (item.gameObject.activeSelf == true)
            {
                itemClass = item.GetComponent <SceneObjectClass>();
                writer.Write(int.Parse(itemClass.sceneObjectInfo.modelPathType));
                writer.Write((double)itemClass.position.x);
                writer.Write((double)itemClass.position.y);
                writer.Write((double)itemClass.position.z);
                writer.Write((double)itemClass.rotation.x);
                writer.Write((double)itemClass.rotation.y);
                writer.Write((double)itemClass.rotation.z);
                writer.Write((double)itemClass.rotation.w);
            }
        }
    }
Esempio n. 3
0
    List <Vector2> pointList = new List <Vector2>(); //不规则六边形的边顶点
                                                     // List<List<Vector2>> edgePointList = new List<List<Vector2>>();

    public SceneObjectClass Clone()
    {
        SceneObjectClass temp = new SceneObjectClass();

        temp.position  = position;
        temp.rotation  = rotation;
        temp.modelName = modelName;
        return(temp);
    }
Esempio n. 4
0
    public bool isSame(SceneObjectClass other)
    {
        if (modelName == other.modelName &&
            position == other.position &&
            rotation == other.rotation)
        {
            return(true);
        }

        return(false);
    }
Esempio n. 5
0
 public void MinusSceneObject(SceneObjectClass item)
 {
     for (int i = sceneObjectList.Count - 1; i >= 0; i--)
     {
         if (ReferenceEquals(sceneObjectList[i], item))
         {
             sceneObjectList.RemoveAt(i);
             break;
         }
     }
     GameObjectPool.instance.InsertChild(item.gameObject.name, item.gameObject);
 }
Esempio n. 6
0
 public void remindOriginList()
 {
     originList.Clear();
     for (int i = 0; i < sceneObjectList.Count; i++)
     {
         if (sceneObjectList[i] != null)
         {
             SceneObjectClass temp = sceneObjectList[i].Clone();
             originList.Add(temp);
         }
     }
 }
Esempio n. 7
0
    //以地形块为主体的加载
    public List <SceneObjectClass> Load(BinaryReader reader)
    {
        int        count = reader.ReadInt32();
        Vector3    itemPosition;
        Quaternion itemRotaiton;
        int        modelPathType;
        List <SceneObjectClass> sceneObjectClassList = new List <SceneObjectClass>();

        for (int i = 0; i < count; i++)
        {
            SceneObjectClass itemClass = new SceneObjectClass();
            itemClass.sceneObjectInfo = new SceneObjectInfo();
            modelPathType             = reader.ReadInt32();
            itemClass.sceneObjectInfo.modelPathType = modelPathType.ToString();
            itemClass.sceneObjectInfo.modelPath     = FileManage.instance.CSVHashTable["sceneHashTable"][itemClass.sceneObjectInfo.modelPathType].ToString();
            itemPosition       = new Vector3((float)reader.ReadDouble(), (float)reader.ReadDouble(), (float)reader.ReadDouble());
            itemRotaiton       = new Quaternion((float)reader.ReadDouble(), (float)reader.ReadDouble(), (float)reader.ReadDouble(), (float)reader.ReadDouble());
            itemClass.position = itemPosition;
            itemClass.rotation = itemRotaiton;
            sceneObjectClassList.Add(itemClass);
        }
        return(sceneObjectClassList);
    }
Esempio n. 8
0
 public void AddSceneObject(SceneObjectClass item)
 {
     sceneObjectList.Add(item);
 }