Ac Save Tool Unity

1 view
Skip to first unread message

Waneta

unread,
Aug 3, 2024, 5:12:54 PM8/3/24
to fluxpecawols

I'm a little confused as before I would get a 3 way merge when selecting files with Merge Conflicts for my previous Merge on another change set. The Output would be automatically specified and saved ok. Once I process all merges the files would disappear from the conflict list, this is not happening in this scenario.

I'm also aware that it's the Diff preferences that control which tool to open in preferences for this scenario. I would have expected the Merge preferences to be responsible for opening the tool on Merge conflicts.

I can't commit my pending changes due to warning saying I need merge changeset 41, I find it in branch explorer and right click and select Merge From This Change Set. Then get to the list of Merge conflicts. Its at this point I have no idea why I can't resolve my conflicts. It opens the DIff Tool, not the Merge Tool?

Thanks for helping Manu that line does not help, as when I open the file to Diff no output parameter is passed to KDiff because it's not using the Merge Tool string in preferences, instead it's using the Diff Tool preference string which does not support the @output.

2. I get 86 Merge errors, I right click and select the option in the image! (We made big boo boo, I updated my Unity version and then someone else commited changes on the old version, very bad thing to do)

You can find the plugin on GitHub here. You can also download it through the Unity Asset Store using the link below. Do note that the plugin has become paid since v1.1. The version of Github lacks some features and architectural changes the new version has.

Most save systems do not handle the work of giving each object a unique identification. For instance, I want two enemies in my scene with a uniquely saved position, visibility and such. You could store a string like this with a popular saving system:

However, once you rename your object or scene name you already run into issues. Also, you would have to rewrite the same implementation in each script, each time to create a proper identification. It could easily turn into a mess, adding more work to turn it into a extendable system. In this case, most of that legwork has already been done for you. Only requiring you to write implementations for your components.

Once you add a Saveable component to the root of a game object, it will fetch all components that implement ISaveable, and serve as a messener and identifier for the object and the components that implement the interface. The saveable is responsible for sending messages to all components that implement ISaveable, for instance once a save or load request has been made. Once a Saveable gets destroyed, the data gets automatically sent to the save game file, meaning that when you switch scenes or exit to the main menu everything is kept saved.

Creating a saveable component is quite straightforward, atleast if you use a IDE like Microsoft Visual Studio or Rider. Which make it very easy to implement interfaces into existing classes by pressing ALT+Enter.

You may be wondering, how can I use a string to send and retrieve data and make it usable for my object? The easiest answer is to use JSON. A text based representation of data. Unity has a built-in tool to turn objects into a JSON string and back into an object. This is called the JSONUtility. Below is an example that uses this utility. This same example is also shown on the github repository.

Currently there is only support of the Resources folder as a source. How it works is, each scene has a Instance Manager, which keeps track of what has been spawned, and the save identification it contained. Using the given path it will spawn it again using the tracked data.

Well, maybe some tweak in the script that checks if the object should be disabled after adding it to the save system? I have some level objects enabling by trigger, and they should remain the same after saving / loading. Yeah, and thanks for great save system ?

Hey, could you create a component or show me some code on how to do manuall saving?
I managed to do some kind of manual saving but it would still auto save becouse I hade to untoggle manual saving.
Thanks

I will add a new event called onSpawnedSavedInstance in the next update. This is a delegate that sends a scene struct and InstanceID.
This way you can at least fetch potential instances when they are spawned.

I assume you have a open and closed animation, correct?
If you open the animator, do you have a open and closed state?
What you want to do, is save the state of the chest, and apply that upon load.

You then send back this data using the OnSave() interface callback,
and during the onload you look if this is set to true. If it is true, you set your local variable to opened (if necessary).
And set the animation to the open state using Animator.Play()

The background of my project is that I have a login system that users have to sign up from which directs them to the scene. If they leave the scene at any given time their location are supposed to be recorded and saved alongside their login information so that in the future, that individual is able to revisit their progress. To put it simply, I am trying to achieve something like the game Minecraft where each different user have differing spawn locations after they log in where their positions are based on their previous activity. The problem that I am facing is that I am unable to successfully save the different variables of the user inside their own user information.

Hello Sharu, a new version of the Component Save System is getting launched soon.
Make sure to get it from the Asset Store, because the new version will become a paid version. (Existing users get it free)
The new version will allow you to add a new resource loader by providing a Func binding.
This new version should be dropping in the upcoming weeks.

There are multiple approaches for this, you could opt for using the SaveVisibility, so it never shows up again.
And having a variable stored in some kind of GameManager. You can check out the YouTube video, in this video I explain how to save
variables. You can also choose to save variables in each pickup and iterate over them / or send it to a singleton.
If you need more help, send me an email to in...@low-scope.com

I have a lot of issues with immutable folders in the new Meta SDK packages.
I tried different things to but the error keeps coming back in different projects.

I first installed Meta Core SDK, I installed 4 building blocks. XR rig, passthrough, controller and hands building block. After this I imported the Meta interaction SDK and get this error:

Saving Prefab to immutable folder is not allowed: Packages/com.meta.xr.sdk.interaction.ovr/Editor/Blocks/Interactors/Prefabs/[BB] Hand Ray.prefab
UnityEditor.EditorApplication:Internal_CallGlobalEventHandler ()

@nickrocky213 I tried this in several ways, but I cannot just copy the item.

Could you explain how you copy the variant?
Do you place it in your scene first, and copy the complete rig as variant, or do you copy the specific item ( let's take "HandRay interactor") from packages and save it to your assets folder?

or do you access your project from files or explorer and copy from the cache folder?

So, as far as I understand it, you're trying to change a prefab of a package, that of course shouldn't be changed as the original prefab. For that, you create variants in Unity.

And saving the whole folder in unity somewhere else is disconnecting the official package from the package manager and can not be updated anymore. I would not advise that if you ever want to update your project to a newer version, but that's your choice.

It is not the official way you should be doing that. Official packages are not changeable for a reason (also because of copyright issues, which you are probably breaking by copying the official version).

I just got the latest meta all-in-one sdk package and this still happens.

Any idea if Meta can have this fixed?

Seems crazy that after you install the Package the first thing u encounter is a seemingly unsolvable problem and u have to solve it with this hacky way...

The sorting function is called on EditorApplication.hierarchyChanged event but does not cause any errors while editing a scene. But the error is thrown while saving a scene. In addition, writing Debug.Log shows the EditorApplication.hierarchyChanged event is also called while saving a scene.
So the issue seems to be caused by simultaneous saving and editing, plus the specifications of the related package.
I have seen similar issues occur with packages other than Meta XR SDK.

This is a tool that lets you look at and modify the contents of your save file.
Want to rename your character? Sure.
Want to change your level? What about skill points or devotion points? Not a problem.
Want to a specific piece of gear? Easy.

Okay. Now your character is at level 85. Save your character by inputting w at the prompt. This will make a backup of your current save file, then write out a file that gives you a level 85 character. Go ahead and make sure it worked by loading up the character in the game. I can wait. =)

What is it?
This is a tool that lets you look at and modify the contents of your save file.
Want to rename your character? Sure.
Want to change your level? What about skill points or devotion points? Not a problem.
Want to a specific piece of gear? Easy.

That just lets us look at the item though. How do we change the item?
As mentioned earlier, if you know the exact basename, prefix, and suffix, you make any item you want! As a matter
of fact, the editor has a command to help look up records in the database!

If we add a new feature for the editor to also be able to find save files in custom locations, then the previous workflow would become quite a bit more complicated. Making edits and checking those edits would then involve having to manually move the save files to where the game can see the file. I imagine juggling files like this might get tiresome quite quickly.

c80f0f1006
Reply all
Reply to author
Forward
0 new messages