Uma ajudinha por favor
4 participantes
Página 1 de 1
Uma ajudinha por favor
Alguém sabe como solucionar esse problema: "MyComponent' could not be found (are you missing a using directive or an assembly reference?)"
a IA que escreveu esse script me respondeu como solucionar, mas eu tentei e não deu certo.
foi isso que a IA me passou como resposta:
Ou
Também perguntei se o script funcionava sozinho ou dependia de outros, a IA dise que o script funciona sozinho, então não parece que esse MyComponent seja outro script.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using System.Reflection;
using System.Linq;
using System.Reflection;
using System.Runtime.Serialization.Formatters.Binary;
public class SaveLoadManager : MonoBehaviour
{
public static void SaveGame(GameObject gameObjectToSave)
{
BinaryFormatter formatter = new BinaryFormatter();
string path = Application.persistentDataPath + "/game.sav";
FileStream stream = new FileStream(path, FileMode.Create);
GameData data = new GameData(gameObjectToSave);
formatter.Serialize(stream, data);
stream.Close();
}
public static GameData LoadGame()
{
string path = Application.persistentDataPath + "/game.sav";
if (File.Exists(path))
{
BinaryFormatter formatter = new BinaryFormatter();
FileStream stream = new FileStream(path, FileMode.Open);
GameData data = formatter.Deserialize(stream) as GameData;
stream.Close();
return data;
}
else
{
Debug.LogError("Save file not found in " + path);
return null;
}
}
}
[System.Serializable]
public class GameData
{
public Vector3 position;
public Quaternion rotation;
public float[] componentData;
public GameData(GameObject gameObjectToSave)
{
position = gameObjectToSave.transform.position;
rotation = gameObjectToSave.transform.rotation;
// Aqui, você pode armazenar os dados dos componentes do GameObject.
// Por exemplo, você pode usar a função GetComponents para obter uma lista de todos os componentes do tipo especificado e, em seguida, armazenar os dados relevantes em um array de floats.
componentData = gameObjectToSave.GetComponents<MyComponent>().Select(c => c.GetData()).ToArray();
}
}
a IA que escreveu esse script me respondeu como solucionar, mas eu tentei e não deu certo.
foi isso que a IA me passou como resposta:
- Código:
using MyNamespace;
Ou
- Código:
using System.Reflection;
[assembly: AssemblyTitle("MyAssembly")
Também perguntei se o script funcionava sozinho ou dependia de outros, a IA dise que o script funciona sozinho, então não parece que esse MyComponent seja outro script.
malamo- Iniciante
- PONTOS : 738
REPUTAÇÃO : 4
Respeito as regras :
Re: Uma ajudinha por favor
Open AI.malamo escreveu:Olá, qual IA vc utilizou para desenvolver esse codigo?
Re: Uma ajudinha por favor
malamo escreveu:Olá, qual IA vc utilizou para desenvolver esse codigo?
Ele usou a AI deste tutorial:
https://www.schultzgames.com/t12691-tutorial-ai-que-cria-scripts-para-voce-inclusive-scripts-para-unity#79194
Pra cadastrar pede número do celular, mas é seguro... é uma AI muito poderosa.
Re: Uma ajudinha por favor
Umas dicas para quem for usar essa IA: Não peça algo complexo demais. Não peça códigos que você sabe que vão ser longos demais, pelo que percebi, códigos com mais de 60 linhas tem risco da IA não terminar de escrever, aí você pede para ela escrever o código novamente e ela volta a deixá-lo inacabado e isso vira um ciclo que parece durar para sempre. Apesar desses problemas, é uma ferramenta absurda de avançada. Provavelmente ela será melhorada com o tempo.
Re: Uma ajudinha por favor
- Código:
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using YamlDotNet.Serialization;
public class SaveLoadScript : MonoBehaviour
{
// Path to the save file
string saveFilePath = "save.yaml";
// List of game objects to save
[SerializeField]
List<GameObject> gameObjects;
void Start()
{
// Load the save data on startup
Load();
}
// Save the data to a yaml file
public void Save()
{
// Serialize the data into a yaml string
var serializer = new SerializerBuilder().Build();
string yamlString = serializer.Serialize(gameObjects);
// Save the yaml string to a file
File.WriteAllText(saveFilePath, yamlString);
}
// Load the data from a yaml file
public void Load()
{
// Read the yaml string from the save file
string yamlString = File.ReadAllText(saveFilePath);
// Deserialize the yaml string into a new list of game objects
var deserializer = new DeserializerBuilder().Build();
gameObjects = deserializer.Deserialize<List<GameObject>>(yamlString);
}
}
consegui esse outro código com a IA, mas ocorreu esse erro sobre o Componente Rigidbody ter sido removido. NotSupportedException: rigidbody property has been deprecated
UnityEngine.GameObject.get_rigidbody () (at <8f6273cfb38947c9ab9b03fcb4ab3d17>:0)
System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <7b935204f5ff4bcab44b3b0ebca330bf>:0)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.RuntimeMethodInfo.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <7b935204f5ff4bcab44b3b0ebca330bf>:0)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <7b935204f5ff4bcab44b3b0ebca330bf>:0)
YamlDotNet.PropertyInfoExtensions.ReadValue (System.Reflection.PropertyInfo property, System.Object target) (at Assets/YamlDotNet/Portability/unitysubset3.5/PropertyInfoExtensions.cs:30)
YamlDotNet.Serialization.TypeInspectors.ReadablePropertiesTypeInspector+ReflectionPropertyDescriptor.Read (System.Object target) (at Assets/YamlDotNet/Serialization/TypeInspectors/ReadablePropertiesTypeInspector.cs:95)
YamlDotNet.Serialization.YamlAttributeOverridesInspector+OverridePropertyDescriptor.Read (System.Object target) (at Assets/YamlDotNet/Serialization/YamlAttributeOverridesInspector.cs:106)
YamlDotNet.Serialization.PropertyDescriptor.Read (System.Object target) (at Assets/YamlDotNet/Serialization/PropertyDescriptor.cs:72)
YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseProperties[TContext] (YamlDotNet.Serialization.IObjectDescriptor value, YamlDotNet.Serialization.IObjectGraphVisitor`1[TContext] visitor, TContext context, System.Collections.Generic.Stack`1[T] path) (at Assets/YamlDotNet/Serialization/ObjectGraphTraversalStrategies/FullObjectGraphTraversalStrategy.cs:241)
YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext] (YamlDotNet.Serialization.IObjectDescriptor value, YamlDotNet.Serialization.IObjectGraphVisitor`1[TContext] visitor, TContext context, System.Collections.Generic.Stack`1[T] path) (at Assets/YamlDotNet/Serialization/ObjectGraphTraversalStrategies/FullObjectGraphTraversalStrategy.cs:191)
YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext] (System.Object name, YamlDotNet.Serialization.IObjectDescriptor value, YamlDotNet.Serialization.IObjectGraphVisitor`1[TContext] visitor, TContext context, System.Collections.Generic.Stack`1[T] path) (at Assets/YamlDotNet/Serialization/ObjectGraphTraversalStrategies/FullObjectGraphTraversalStrategy.cs:157)
YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseList[TContext] (YamlDotNet.Serialization.IObjectDescriptor value, YamlDotNet.Serialization.IObjectGraphVisitor`1[TContext] visitor, TContext context, System.Collections.Generic.Stack`1[T] path) (at Assets/YamlDotNet/Serialization/ObjectGraphTraversalStrategies/FullObjectGraphTraversalStrategy.cs:227)
YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.TraverseObject[TContext] (YamlDotNet.Serialization.IObjectDescriptor value, YamlDotNet.Serialization.IObjectGraphVisitor`1[TContext] visitor, TContext context, System.Collections.Generic.Stack`1[T] path) (at Assets/YamlDotNet/Serialization/ObjectGraphTraversalStrategies/FullObjectGraphTraversalStrategy.cs:187)
YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.Traverse[TContext] (System.Object name, YamlDotNet.Serialization.IObjectDescriptor value, YamlDotNet.Serialization.IObjectGraphVisitor`1[TContext] visitor, TContext context, System.Collections.Generic.Stack`1[T] path) (at Assets/YamlDotNet/Serialization/ObjectGraphTraversalStrategies/FullObjectGraphTraversalStrategy.cs:157)
YamlDotNet.Serialization.ObjectGraphTraversalStrategies.FullObjectGraphTraversalStrategy.YamlDotNet.Serialization.IObjectGraphTraversalStrategy.Traverse[TContext] (YamlDotNet.Serialization.IObjectDescriptor graph, YamlDotNet.Serialization.IObjectGraphVisitor`1[TContext] visitor, TContext context) (at Assets/YamlDotNet/Serialization/ObjectGraphTraversalStrategies/FullObjectGraphTraversalStrategy.cs:59)
YamlDotNet.Serialization.SerializerBuilder+ValueSerializer.SerializeValue (YamlDotNet.Core.IEmitter emitter, System.Object value, System.Type type) (at Assets/YamlDotNet/Serialization/SerializerBuilder.cs:579)
YamlDotNet.Serialization.Serializer.EmitDocument (YamlDotNet.Core.IEmitter emitter, System.Object graph, System.Type type) (at Assets/YamlDotNet/Serialization/Serializer.cs:138)
YamlDotNet.Serialization.Serializer.Serialize (YamlDotNet.Core.IEmitter emitter, System.Object graph) (at Assets/YamlDotNet/Serialization/Serializer.cs:109)
YamlDotNet.Serialization.Serializer.Serialize (System.IO.TextWriter writer, System.Object graph) (at Assets/YamlDotNet/Serialization/Serializer.cs:72)
YamlDotNet.Serialization.Serializer.Serialize (System.Object graph) (at Assets/YamlDotNet/Serialization/Serializer.cs:82)
SaveLoadScript.Save () (at Assets/SaveLoadScript.cs:26)
UnityEngine.Events.InvokableCall.Invoke () (at <8f6273cfb38947c9ab9b03fcb4ab3d17>:0)
UnityEngine.Events.UnityEvent.Invoke () (at <8f6273cfb38947c9ab9b03fcb4ab3d17>:0)
UnityEngine.UI.Button.Press () (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/UI/Core/Button.cs:70)
UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/UI/Core/Button.cs:114)
UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/ExecuteEvents.cs:57)
UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/ExecuteEvents.cs:272)
UnityEngine.EventSystems.EventSystem:Update() (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/EventSystem.cs:501)
Curtir
Re: Uma ajudinha por favor
Optei por pedir para a IA salvar apenas a informação de se o GameObject está ativo ou não, para o Transform eu usei outro script que eu já tinha. Considerem esse assunto aqui encerrado.
Re: Uma ajudinha por favor
Rangel Oblivion escreveu:Umas dicas para quem for usar essa IA: Não peça algo complexo demais. Não peça códigos que você sabe que vão ser longos demais, pelo que percebi, códigos com mais de 60 linhas tem risco da IA não terminar de escrever, aí você pede para ela escrever o código novamente e ela volta a deixá-lo inacabado e isso vira um ciclo que parece durar para sempre. Apesar desses problemas, é uma ferramenta absurda de avançada. Provavelmente ela será melhorada com o tempo.
Dá pra contornar esse problema, basta em vez de pedir um script longo, tu pedir os métodos.
Tópicos semelhantes
» Ajudinha com Bug
» AJUDINHA GALERA
» [RESOLVIDO] Ajudinha com código
» ME AJUDA POR FAVOR
» Me ajudem por favor
» AJUDINHA GALERA
» [RESOLVIDO] Ajudinha com código
» ME AJUDA POR FAVOR
» Me ajudem por favor
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos