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![Smile](/users/1914/40/81/62/smiles/541976152.png)
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
![Smile](/users/1914/40/81/62/smiles/541976152.png)
NKKF- ProgramadorMaster
-
PONTOS : 4743
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 : 2139
REPUTAÇÃO : 11
Respeito as regras :
![-](https://2img.net/i/empty.gif)
» 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