Sistema de backup local "semi-automático".
3 participantes
Página 1 de 1
Sistema de backup local "semi-automático".
Olá a todos? Como estão?
A alguns dias eu perdi vários arquivos por causa de uma falha em um script. Devido a isso vi a necessidade de um sistema de Backup. Mas não queria o padrão da Unity. Pois ele salva na nuvem, e é meio complicado de usar e tal, e pra mim, um sistema de backup local seria mais correto além de rápido.
Costumava a exportar meus projetos algumas vezes, mas não fazia isso com frequência. E após perder os arquivos, criei uma forma de exportar meu projeto dependendo de algumas ações do programa.
Link do script (Apenas coloque no seu projeto):
https://drive.google.com/file/d/1L-2LWfJhvP8FvfNqG0cvqtqCUhLKfgn9/view?usp=sharing
Ou se preferir apenas crie um script e coloque esse código nele:
Esse código pergunta se você quer fazer o backup toda vez que algum script for compilado, quando algo for importado, ou quando o projeto abre. Ele utiliza do sistema nativo da Unity para exportar um UnityPackage para alguma pasta de destino.
- Montei o código meio às pressas, então fiquem a vontade para corrigi-lo e melhora-lo.
Espero poder ajudar vocês!
A alguns dias eu perdi vários arquivos por causa de uma falha em um script. Devido a isso vi a necessidade de um sistema de Backup. Mas não queria o padrão da Unity. Pois ele salva na nuvem, e é meio complicado de usar e tal, e pra mim, um sistema de backup local seria mais correto além de rápido.
Costumava a exportar meus projetos algumas vezes, mas não fazia isso com frequência. E após perder os arquivos, criei uma forma de exportar meu projeto dependendo de algumas ações do programa.
Link do script (Apenas coloque no seu projeto):
https://drive.google.com/file/d/1L-2LWfJhvP8FvfNqG0cvqtqCUhLKfgn9/view?usp=sharing
Ou se preferir apenas crie um script e coloque esse código nele:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
[InitializeOnLoad]
public static class UtilityBackup
{
public static string ExportPackageLocation = "";
public static void ShowBackupConfirmation(string Message)
{
//if ((LastBackup.Day - System.DateTime.Now.Day) != 0)
//{
if (ExportPackageLocation == "")
{
if (EditorUtility.DisplayDialog("Fazer backup?", Message + "\n" + "Isso pode levar alguns minutos.",
"Sim", "Não"))
{
MadeBackup();
}
} else
{
int Op = EditorUtility.DisplayDialogComplex("Fazer backup?", Message,
"Sim", "Não", "Alterar pasta de Destino");
switch (Op)
{
case 0:
MadeBackup();
break;
case 1:
break;
case 2:
string Location =
EditorUtility.SaveFilePanel("Exportar em", "", Application.productName + " - Backup(" + System.DateTime.Now.ToShortDateString().Replace("/", "-")
+ "_" + System.DateTime.Now.ToShortTimeString().Replace(":", "-") + ")",
"unitypackage");
if(Location != "")
{
ExportPackageLocation = Location;
}
break;
}
}
//}
}
public static void MadeBackup()
{
if (ExportPackageLocation == "")
{
string Location =
EditorUtility.SaveFilePanel("Exportar em", "", Application.productName + " - Backup(" + System.DateTime.Now.ToShortDateString().Replace("/", "-")
+ "_" + System.DateTime.Now.ToShortTimeString().Replace(":", "-") + ")",
"unitypackage");
if (Location != "")
{
ExportPackageLocation = Location;
}
}
if (ExportPackageLocation != "")
{
EditorUtility.DisplayProgressBar("Fazendo Backup", "Exportando arquivo..", 0.2f);
AssetDatabase.ExportPackage("Assets", ExportPackageLocation, ExportPackageOptions.Recurse);
EditorUtility.ClearProgressBar();
EditorUtility.DisplayProgressBar("Fazendo Backup", "Exportando arquivo..", 1f);
EditorUtility.ClearProgressBar();
}
EditorUtility.DisplayDialog("Backup finalizado.", "Backup Feito com Sucesso!", "Ok");
}
static UtilityBackup()
{
//
ShowBackupConfirmation("Deseja Fazer um Backup Agora?");
}
public class BackupSystem : Editor
{
[MenuItem("Window/Backup/FazerBackup")]
public static void DisplayBackupDialog()
{
UtilityBackup.ShowBackupConfirmation("Fazer Backup agora?");
}
}
}
Esse código pergunta se você quer fazer o backup toda vez que algum script for compilado, quando algo for importado, ou quando o projeto abre. Ele utiliza do sistema nativo da Unity para exportar um UnityPackage para alguma pasta de destino.
- Montei o código meio às pressas, então fiquem a vontade para corrigi-lo e melhora-lo.
Espero poder ajudar vocês!
Re: Sistema de backup local "semi-automático".
Uma solução eficiente é utilizar esse código com o Google Drive, ele tem sincronização automática do seu PC..
daí você salva esse arquivo sempre na mesma pasta e aponta para o Drive sempre sincronizar apenas esta pasta do seu computador, daí ele sempre ficará salvo na nuvem...
Lembrando que o Google disponibiliza apenas 15GB para usuários gratuitos mas os projetos compactados da Unity normalmente não passam dos 500MB (nunca vi um que ultrapassava)
Parabéns
daí você salva esse arquivo sempre na mesma pasta e aponta para o Drive sempre sincronizar apenas esta pasta do seu computador, daí ele sempre ficará salvo na nuvem...
Lembrando que o Google disponibiliza apenas 15GB para usuários gratuitos mas os projetos compactados da Unity normalmente não passam dos 500MB (nunca vi um que ultrapassava)
Parabéns
NKKF- ProgramadorMaster
- PONTOS : 4631
REPUTAÇÃO : 574
Idade : 19
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: Sistema de backup local "semi-automático".
Exatamente o que eu precisava. O Collabe é limitado, github tb, pensei em usar git para versionamento mas as vezes a melhor coisa é uma cópia inteira. ObrigadoAa todos? Como estão? escreveu:A alguns dias eu perdi vários arquivos por causa de uma falha em um script. Devido a isso vi a necessidade de um sistema de Backup. Mas não queria o padrão da Unity. Pois ele salva na nuvem, e é meio complicado de usar e tal, e pra mim, um sistema de backup local seria mais correto além de rápido.
Costumava a exportar meus projetos algumas vezes, mas não fazia isso com frequência. E após perder os arquivos, criei uma forma de exportar meu projeto dependendo de algumas ações do programa.
Link do script (Apenas coloque no seu projeto):
https://drive.google.com/file/d/1L-2LWfJhvP8FvfNqG0cvqtqCUhLKfgn9/view?usp=sharing
Ou se preferir apenas crie um script e coloque esse código nele:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
[InitializeOnLoad]
public static class UtilityBackup
{
public static string ExportPackageLocation = "";
public static void ShowBackupConfirmation(string Message)
{
//if ((LastBackup.Day - System.DateTime.Now.Day) != 0)
//{
if (ExportPackageLocation == "")
{
if (EditorUtility.DisplayDialog("Fazer backup?", Message + "\n" + "Isso pode levar alguns minutos.",
"Sim", "Não"))
{
MadeBackup();
}
} else
{
int Op = EditorUtility.DisplayDialogComplex("Fazer backup?", Message,
"Sim", "Não", "Alterar pasta de Destino");
switch (Op)
{
case 0:
MadeBackup();
break;
case 1:
break;
case 2:
string Location =
EditorUtility.SaveFilePanel("Exportar em", "", Application.productName + " - Backup(" + System.DateTime.Now.ToShortDateString().Replace("/", "-")
+ "_" + System.DateTime.Now.ToShortTimeString().Replace(":", "-") + ")",
"unitypackage");
if(Location != "")
{
ExportPackageLocation = Location;
}
break;
}
}
//}
}
public static void MadeBackup()
{
if (ExportPackageLocation == "")
{
string Location =
EditorUtility.SaveFilePanel("Exportar em", "", Application.productName + " - Backup(" + System.DateTime.Now.ToShortDateString().Replace("/", "-")
+ "_" + System.DateTime.Now.ToShortTimeString().Replace(":", "-") + ")",
"unitypackage");
if (Location != "")
{
ExportPackageLocation = Location;
}
}
if (ExportPackageLocation != "")
{
EditorUtility.DisplayProgressBar("Fazendo Backup", "Exportando arquivo..", 0.2f);
AssetDatabase.ExportPackage("Assets", ExportPackageLocation, ExportPackageOptions.Recurse);
EditorUtility.ClearProgressBar();
EditorUtility.DisplayProgressBar("Fazendo Backup", "Exportando arquivo..", 1f);
EditorUtility.ClearProgressBar();
}
EditorUtility.DisplayDialog("Backup finalizado.", "Backup Feito com Sucesso!", "Ok");
}
static UtilityBackup()
{
//
ShowBackupConfirmation("Deseja Fazer um Backup Agora?");
}
public class BackupSystem : Editor
{
[MenuItem("Window/Backup/FazerBackup")]
public static void DisplayBackupDialog()
{
UtilityBackup.ShowBackupConfirmation("Fazer Backup agora?");
}
}
}
Esse código pergunta se você quer fazer o backup toda vez que algum script for compilado, quando algo for importado, ou quando o projeto abre. Ele utiliza do sistema nativo da Unity para exportar um UnityPackage para alguma pasta de destino.
- Montei o código meio às pressas, então fiquem a vontade para corrigi-lo e melhora-lo.
Espero poder ajudar vocês!
fabricadegame- Membro
- PONTOS : 2027
REPUTAÇÃO : 11
Respeito as regras :
Tópicos semelhantes
» Sistema de Ativar/Desativar GameObjects Automático
» (ajuda)quero fazer um sistema que quando o carro fica de ponta cabeça por 5 segundo ele de respawn automatico
» [TUTORIAL] Entenda o Sistema De multiplayer local ! BASICO (Video Aula) pt/br
» alguem sabe um sistema/ideia/tutorial de nicknames/indentificaçao para NETWORK local???
» Shader Standart - Fade . Fica transparente / Bugado (Paredes Semi-Transparentes)
» (ajuda)quero fazer um sistema que quando o carro fica de ponta cabeça por 5 segundo ele de respawn automatico
» [TUTORIAL] Entenda o Sistema De multiplayer local ! BASICO (Video Aula) pt/br
» alguem sabe um sistema/ideia/tutorial de nicknames/indentificaçao para NETWORK local???
» Shader Standart - Fade . Fica transparente / Bugado (Paredes Semi-Transparentes)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos