Beispiel #1
0
    public void SaveVehicle(VehicleEditorController _vehicle, string _filename)
    {
        string path = Path.Combine(DirectoryManager.GetDirectory("Vehicles").FullName, _filename + ".vehicle");

        using (FileStream file = new FileStream(path, File.Exists(path) ? FileMode.Truncate : FileMode.Create))
            using (StreamWriter writer = new StreamWriter(file))
            //using (JsonWriter json = new JsonTextWriter(writer))
            {
                //json.Formatting = Formatting.Indented;
                //serializer.Serialize(json, _vehicle.Serialize());
                writer.Write(JsonUtility.ToJson(_vehicle.Serialize(), true));
            }
    }
Beispiel #2
0
    public void LoadVehicle(VehicleEditorController _vehicle, string _filename)
    {
        string path = Path.Combine(DirectoryManager.GetDirectory("Vehicles").FullName, _filename + ".vehicle");

        if (!File.Exists(path))
        {
            Debug.Log("Vehicle not found"); return;
        }
        using (FileStream file = new FileStream(path, FileMode.Open))
            using (StreamReader reader = new StreamReader(file))
            //using (JsonReader json = new JsonTextReader(reader))
            {
                //_vehicle.Deserialize(serializer.Deserialize<JSONVehicle>(json));
                _vehicle.Deserialize(JsonUtility.FromJson <JSONVehicle>(reader.ReadToEnd()));
            }
    }
Beispiel #3
0
    // Destroy only this part and move other parts in new empty gameobjects
    public void Destroy()
    {
        Detach();
        Debris debris = null;
        Part   part   = null;

        foreach (PartJoint joint in m_joints)
        {
            if (joint != m_rootJoint && joint.connection != null && joint.connection.part != null)
            {
                part   = joint.connection.part;
                debris = Instantiate(DataManager.instance.prefabDebris,
                                     part.transform.position, part.transform.rotation);
                part.SetParentRecursively(debris.transform);

                debris.ComputeCenterOfMass();
                ApplyExplosion(debris.GetComponent <Rigidbody>());
            }
        }

        VehicleEditorController vehicle = transform.root.GetComponent <VehicleEditorController>();
        Debris deb = transform.root.GetComponent <Debris>();

        if (vehicle != null)
        {
            vehicle.ComputeCenterOfMass();
            ApplyExplosion(vehicle.GetComponent <Rigidbody>());
        }
        else if (deb != null)
        {
            deb.ComputeCenterOfMass();
            ApplyExplosion(deb.GetComponent <Rigidbody>());
        }

        Debug.Log("Explode");
        Instantiate(DataManager.instance.prefabExplosion, transform.position, Quaternion.identity);

        onDestroy.Invoke();
        Destroy(gameObject);
    }