Recupere paquetes de activos de Unity de S3. | Por Hal Brooks | febrero de 2022
Objetivo: recuperar de forma segura paquetes de activos de Amazon S3 mediante Amazon S3.
Primero crea clave de seguridad guión dentro activos > texto carpeta. Usando Git Bash en el directorio del proyecto, echo activos/scripts/SecureKeys.cs >> .gitignore y echo Assets/Scripts/SecureKeys.cs.meta >> .gitignore agrega estos campos a .gitignore. Para Amazon AWS, esto se parece a lo siguiente.
Inicie sesión en la consola de AWS y seleccione Cognito para crear un nuevo grupo de identidades para permitir a los usuarios no autorizados. Ojo con la región donde se crea, ya que cada región es independiente, aunque accesible globalmente.Copiar Id. de grupo de identidades del ejemplo de script y péguelo clave aws Cuerda.
Desde la consola de AWS, seleccione S3 y cree el depósito con el nuevo nombre»,Nombre del depósito S3Esto debe ser único en todos los demás aspectos y se coloca en la clave de seguridad como una capa adicional de seguridad. balde.
Vaya a Políticas de AWS IAM para crear una nueva política. escoger S3 como un servicio y permitir el acceso obtener objeto y cubo de listaPuede limitar aún más el recurso anulando la selección ninguna y seleccione ARN Permita el acceso a cubos u objetos específicos. No agregue ninguna etiqueta y elija Crear política, creará el archivo JSON para la política.
Ahora cree un objeto de juego vacío y asígnele el nombre AWSManager.
Agregue un nuevo script AWSManager que requiere algunos espacios de nombres como se muestra a continuación.
cierre Administrador de AWS en uno persona soltera Para que se pueda acceder fácilmente, ver más abajo.privado _Ejemplo las variables se asignan más tarde anular la activación ().
A continuación, establezca la región de Amazon, _Área S3, Como sigue.Esta área S3 es una variable pública que permite ingresar el nombre de la zona en el inspector como una cadena.luego convierte esa cadena a punto final del área Avalado por AWS.
Esta _IdentityPoolID definición de uso SecureKeys.awsKey como se define arriba.Esta _IdentityPoolID y _Área S3 Para crear _Certificado Acceda al cliente S3.
Esta cliente S3 La definición es la siguiente, usando Certificado y _Área S3.
existe Vacío despiertocomplete la asignación singleton Esta guion para _Ejemplo. utilizar UnityInitializer Seguido por Configuración de AWS Establezca una conexión con Amazon AWS.transferir S3GetBundle() Cómo descargar la unidad paquete de activos Creado para caballos caballo prefabricado.
Esta S3GetBundle() como se muestra a continuación, y utilice cliente S3 llegar obtener objeto de forma asíncrona. Esta respuesta de objeto de respuesta Compruebe el contenido, es decir, no vacío.un byte[] La matriz se inicializa para almacenar datos en la memoria.próximo lector de corrienteel lector, abre una responseObj.Respose.ResponseStream. Próximo flujo de memoria, memoria se crea usando buffer matriz de bytes.luego escribe la secuencia en memoria utilizar lectura de bytes enteroluego se almacena en datosLos datos se convierten a paquete de activos, manojoutilizar AssetBundle.LoadFromMemory. Esta caballo prefabricado guardar como caballo objeto de juego
La aplicación se ejecutará cuando la ejecute en el editor de Unity, pero Amazon AWS no podrá acceder a ella cuando se ejecute en un dispositivo Android. Android Logcat es un paquete de Unity útil que se puede usar para monitorear dispositivos Android en busca de errores usando las opciones de desarrollador. El siguiente enlace detalla cómo permitir el acceso a AWS. Este error aún existe a partir de Unity 2020.3.28f1.
asegurarse construir objetivo Establecer en Android como construir canalización, como sigue. Asegúrese de que este archivo de destino esté almacenado en un depósito de Amazon S3 en la nube.en el inspector Fuente de la sesión AR configurar Prefabricado de imagen de seguimiento no.rebautizar caballo prefabricado llegar CaballoPrefabricado_antiguo De esta manera, no se fusionará en la compilación.
Este artículo utiliza recursos de GameDevHQ Filebase.