Merge pull request #41 from mackysoft/feature/new-object-from-json

Restore values from json on create new managed reference
This commit is contained in:
Makihiro 2023-12-31 16:59:03 +09:00 committed by GitHub
commit e6f57ed763
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 5 deletions

View File

@ -28,9 +28,13 @@ jobs:
# Build
- name: Build .unitypackage
uses: game-ci/unity-builder@v2
uses: game-ci/unity-builder@v4
env:
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
with:
unityVersion: 2020.3.8f1
unityVersion: 2021.3.29f1
buildMethod: MackySoft.PackageTools.Editor.UnityPackageExporter.Export
# Upload

View File

@ -2,14 +2,27 @@
using System;
using System.Reflection;
using UnityEditor;
using UnityEngine;
namespace MackySoft.SerializeReferenceExtensions.Editor {
public static class ManagedReferenceUtility {
public static object SetManagedReference (this SerializedProperty property,Type type) {
object obj = (type != null) ? Activator.CreateInstance(type) : null;
property.managedReferenceValue = obj;
return obj;
object result;
if (property.managedReferenceValue != null)
{
// Restore an previous values from json.
string json = JsonUtility.ToJson(property.managedReferenceValue);
result = JsonUtility.FromJson(json, type);
}
else
{
result = (type != null) ? Activator.CreateInstance(type) : null;
}
property.managedReferenceValue = result;
return result;
}
public static Type GetType (string typeName) {