Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Guardar un GameObjects en la carpeta Resources mediante una script

Iniciado por Ivan dario, Abril 29, 2018, 02:04:13 AM

Tema anterior - Siguiente tema
Hola.
 
ayuda plz
 
como puedo guardar un gameObject desde una script . es decir que al presionar un boton la script guarde el gameobjet player en la carpeta resources
 
gracias de antemano :D
 


AssetDatabase.CreateAsset(miMesh, "Assets/miCarpeta/miObjeto.asset")

 
 

Abril 30, 2018, 01:02:56 AM #2 Ultima modificación: Mayo 02, 2018, 11:38:58 AM por pioj
Cita de: Igor date=1524995500

AssetDatabase.CreateAsset(miMesh, "Assets/miCarpeta/miObjeto.asset")

   
       
   


Tengo un problema . no se si lo estoy haciendo mal pero me da este error
 
 
 
este es el codigo que estoy usando :
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Unit***itor;
public class Guardar : MonoBehaviour {
    public GameObject Player;
    public string GuardarEn = "Assets/Resources/Jugador/player.asset";
 
    public void GuardarPersonaje()
    {
AssetDatabase.CreateAsset (Player, GuardarEn);
}
 
}

 

Cita de: Igor date=1524995500

AssetDatabase.CreateAsset(miMesh, "Assets/miCarpeta/miObjeto.asset")

   
       
   


Esto solo funciona dentro del editor, en Runtime no va a funcionar, aparte de que no va a compilar.

Cita de: francoe1 date=1525046573Esto solo funciona dentro del editor, en Runtime no va a funcionar, aparte de que no va a compilar.
   


Me podrias decir como hacerlo ? como hago para al presionar un boton guarde un objeto de la escena en la carpeta resources

Cita de: Ivan dario date=1525047126Me podrias decir como hacerlo ? como hago para al presionar un boton guarde un objeto de la escena en la carpeta resources
   


pero q quieres lograr con eso?... no es lo q piensas guardar el objeto solo funciona desde el editor

Cita de: Braltor date=1525048165pero q quieres lograr con eso?... no es lo q piensas guardar el objeto solo funciona desde el editor
   


La idea es guardar un personaje después de ser editado algo asi como crear tu personaje de un rpg. para luego instanciarlo en otra escena

Cita de: Ivan dario date=1525048365La idea es guardar un personaje después de ser editado algo asi como crear tu personaje de un rpg. para luego instanciarlo en otra escena
   


ah ok... eso no se hace asi amigo
 
lo q tienes q almacenar es cuales objetos estan activos y sus transformaciones (posicion+rotacion+escala), los objetos en si ya existen en el juego no tienes q guardarlos o cargarlos
 
creas una estructura de datos para guardar eso y la serializas en un archivo (ej. JSON o XML)
 
si logras eso luego puedes modificarlo para guardar otras propiedades como colores de pelo/piel etc

Cita de: Braltor date=1525048976ah ok... eso no se hace asi amigo
   
   
      lo q tienes q almacenar es cuales objetos estan activos y sus transformaciones (posicion+rotacion+escala), los objetos en si ya existen en el juego no tienes q guardarlos o cargarlos
   
   
      creas una estructura de datos para guardar eso y la serializas en un archivo (ej. JSON o XML)
   


Ya me estaba imaginando algo así con tu primer comentario.
 
Gracias :D estaba un poco perdido.
 
intentare hacerlo desde una base de datos ScriptableObject

Cita de: Ivan dario date=1525049159intentare hacerlo desde una base de datos ScriptableObject
   


Tampoco, osea podés hacerlo (?) pero no es lo ideal se me ocurre por dos razones 1- el sco está pensado para vivir en editor, la verdad no se como responderá una vez hecho la build, me ha pasado de modificar directamente valores en un sco, darle play en la build y chau valores, lo cual es lógico , y 2-todo el mundo serializa alguna clase generica de datos crudos y guarda sus datos, se da en todos lados, es muy común y muy fácil de hacer, el truco IMO está en qué guardas y sobretodo tenés que tener la cabeza puesta al momento de la carga de datos, ... ponele que tenes 14 tipos de bigote en tu RPG para tu personaje, esos bigotes existen todos en tus recursos (unos prefabs por ej, aunque podrían ser deformaciones guardadas... ej editor de cara en fallout4), solamente te alcanza con guardar el id (un entero identificador) del bigote, a la hora de cargar el juego por el mismo id se instancia el bigote guardado (o mete una mesh, etc), acá es donde te sirve y muuuuucho tener un sco para poder organizar los ids y los bigotes, o los nombres.
 
Lo mismo con todo, es necesario serializar un gameObject entero? si pudieras, no será posible meter un prefab simple (podés verlo como un gameObject guardado del que todas las variaciones parten de él) y guardar/cargar lo mínimo e indispensable (ej el bigote de arriba), vas a tocar escalas? no? no las guardes, es necesario guardar a la escena entera o el juego puede dar un reset cada vez que te metes? esas cosas te sirven mucho a la hora de planificar un juego.

Cita de: francoe1 date=1525046573Esto solo funciona dentro del editor, en Runtime no va a funcionar, aparte de que no va a compilar.
   


si, es verdad, se me olvido que eso solo funciina en el editor, y no en el built....

Etiquetas: