mirror of
https://github.com/DCFApixels/DragonECS-Unity.git
synced 2025-09-18 01:54:35 +08:00
stash
This commit is contained in:
parent
04423b2274
commit
bb6c2cec43
@ -1,6 +1,5 @@
|
|||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
using DCFApixels.DragonECS.Unity.RefRepairer.Editors;
|
using DCFApixels.DragonECS.Unity.RefRepairer.Editors;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
using UnityEditor.SceneManagement;
|
using UnityEditor.SceneManagement;
|
||||||
@ -20,8 +19,28 @@ namespace DCFApixels.DragonECS.Unity.Editors
|
|||||||
wnd.Show();
|
wnd.Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
//private List<ContainerMissingRefs> _missingTypes;
|
private MissingRefContainer _missingRefContainer = new MissingRefContainer();
|
||||||
//private readonly CollectorMissingTypes _collectorMissingTypes = new CollectorMissingTypes();
|
|
||||||
|
|
||||||
|
private void OnGUI()
|
||||||
|
{
|
||||||
|
if (_missingRefContainer.IsEmplty)
|
||||||
|
{
|
||||||
|
if(GUILayout.Button("Collect missing references"))
|
||||||
|
{
|
||||||
|
if (TryInit())
|
||||||
|
{
|
||||||
|
_missingRefContainer.Collect();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
_missingRefContainer.MissingsResolvingDatas
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private bool TryInit()
|
private bool TryInit()
|
||||||
{
|
{
|
||||||
@ -47,7 +66,7 @@ namespace DCFApixels.DragonECS.Unity.Editors
|
|||||||
EditorSceneManager.SaveScene(dirtyScene);
|
EditorSceneManager.SaveScene(dirtyScene);
|
||||||
}
|
}
|
||||||
|
|
||||||
//_missingTypes = _collectorMissingTypes.Collect();
|
_missingRefContainer.Collect();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,11 @@ namespace DCFApixels.DragonECS.Unity.RefRepairer.Editors
|
|||||||
public CollectedAssetMissingRecord[] collectedMissingTypesBuffer = null;
|
public CollectedAssetMissingRecord[] collectedMissingTypesBuffer = null;
|
||||||
public int collectedMissingTypesBufferCount = 0;
|
public int collectedMissingTypesBufferCount = 0;
|
||||||
public readonly Dictionary<TypeData, MissingsResolvingData> MissingsResolvingDatas = new Dictionary<TypeData, MissingsResolvingData>();
|
public readonly Dictionary<TypeData, MissingsResolvingData> MissingsResolvingDatas = new Dictionary<TypeData, MissingsResolvingData>();
|
||||||
|
public MissingsResolvingData[] MissingsResolvingDataValues;
|
||||||
|
public bool IsEmplty
|
||||||
|
{
|
||||||
|
get { return collectedMissingTypesBufferCount == 0; }
|
||||||
|
}
|
||||||
|
|
||||||
#region Clear/RemoveResolved
|
#region Clear/RemoveResolved
|
||||||
public void Clear()
|
public void Clear()
|
||||||
@ -93,6 +98,7 @@ namespace DCFApixels.DragonECS.Unity.RefRepairer.Editors
|
|||||||
CollectByScriptableObjects();
|
CollectByScriptableObjects();
|
||||||
CollectByScenes();
|
CollectByScenes();
|
||||||
|
|
||||||
|
MissingsResolvingDataValues = MissingsResolvingDatas.Values.ToArray();
|
||||||
for (int i = collectedMissingTypesBufferCount; i < oldCollectedMissingTypesBufferCount; i++)
|
for (int i = collectedMissingTypesBufferCount; i < oldCollectedMissingTypesBufferCount; i++)
|
||||||
{
|
{
|
||||||
collectedMissingTypesBuffer[i] = default;
|
collectedMissingTypesBuffer[i] = default;
|
||||||
|
@ -40,21 +40,21 @@ namespace DCFApixels.DragonECS.Unity.RefRepairer.Editors
|
|||||||
{
|
{
|
||||||
if (container.collectedMissingTypesBufferCount <= 0) { return; }
|
if (container.collectedMissingTypesBufferCount <= 0) { return; }
|
||||||
|
|
||||||
MissingsResolvingData[] missingsResolvingDatas = container.MissingsResolvingDatas.Values.Where(o => o.IsResolved).ToArray();
|
//MissingsResolvingData[] missingsResolvingDatas = container.MissingsResolvingDatas.Values.Where(o => o.IsResolved).ToArray();
|
||||||
for (int i = 0; i < container.collectedMissingTypesBufferCount; i++)
|
for (int i = 0; i < container.collectedMissingTypesBufferCount; i++)
|
||||||
{
|
{
|
||||||
ref var missing = ref container.collectedMissingTypesBuffer[i];
|
ref var missing = ref container.collectedMissingTypesBuffer[i];
|
||||||
if (missing.IsNull) { continue; }
|
if (missing.IsNull) { continue; }
|
||||||
|
|
||||||
var unityObjectData = missing.UnityObject;
|
var unityObjectData = missing.UnityObject;
|
||||||
using (var file = new FileScope(AssetDatabase.GUIDToAssetPath(unityObjectData.AssetGuid)))
|
using (var file = new FileScope(unityObjectData.GetLocalAssetPath()))
|
||||||
{
|
{
|
||||||
int startRepaierLineIndex = 0;//Ýòî íóæíî ÷òîáû ñêèïàòü óæå "îòðåìîíòèðîâàííóþ" ÷àñòü ôàéë.
|
int startRepaierLineIndex = 0;//Ýòî íóæíî ÷òîáû ñêèïàòü óæå "îòðåìîíòèðîâàííóþ" ÷àñòü ôàéë.
|
||||||
|
|
||||||
// òóò èòåðèðóþñü ïî áëîêó missingsResolvingDatas ñ îäèíàêîâûì þíèòè îáúåêòîì, òàê êàê òàêèå èäåóò ïîäðÿò
|
// òóò èòåðèðóþñü ïî áëîêó missingsResolvingDatas ñ îäèíàêîâûì þíèòè îáúåêòîì, òàê êàê òàêèå èäåóò ïîäðÿò
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
bool isAnySkiped = false;
|
//bool isAnySkiped = false;
|
||||||
int lineIndex = NextRefLine(file.lines, startRepaierLineIndex);
|
int lineIndex = NextRefLine(file.lines, startRepaierLineIndex);
|
||||||
while (lineIndex > 0)
|
while (lineIndex > 0)
|
||||||
{
|
{
|
||||||
@ -71,14 +71,15 @@ namespace DCFApixels.DragonECS.Unity.RefRepairer.Editors
|
|||||||
|
|
||||||
if (isChanged == false)
|
if (isChanged == false)
|
||||||
{
|
{
|
||||||
isAnySkiped = true;
|
//isAnySkiped = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (isAnySkiped == false)
|
break;
|
||||||
{
|
//if (isAnySkiped == false)
|
||||||
startRepaierLineIndex = lineIndex;
|
//{
|
||||||
}
|
// startRepaierLineIndex = lineIndex;
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
lineIndex = NextRefLine(file.lines, lineIndex);
|
lineIndex = NextRefLine(file.lines, lineIndex);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 495419751a448a848853d4df10955da7
|
guid: 7fb76d31aa28c1d42b68087f23db29ec
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
@ -1,21 +0,0 @@
|
|||||||
#if UNITY_EDITOR
|
|
||||||
using DCFApixels.DragonECS.Unity.RefRepairer.Internal;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace DCFApixels.DragonECS.Unity.RefRepairer.Editors
|
|
||||||
{
|
|
||||||
//internal class ContainerMissingRefs
|
|
||||||
//{
|
|
||||||
// public readonly TypeData TypeData;
|
|
||||||
// public readonly string ReplacedLine;
|
|
||||||
// public readonly List<MissingTypeData> ManagedReferencesMissingTypeDatas = new List<MissingTypeData>(4);
|
|
||||||
// public readonly bool IsHasMetaIDRegistry;
|
|
||||||
// public ContainerMissingRefs(TypeData typeData)
|
|
||||||
// {
|
|
||||||
// TypeData = typeData;
|
|
||||||
// ReplacedLine = RepaireFileUtility.GenerateReplacedLine(typeData);
|
|
||||||
// IsHasMetaIDRegistry = MetaIDRegistry.instance.TryGetMetaID(TypeData, out _);
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
#endif
|
|
@ -1,18 +0,0 @@
|
|||||||
#if UNITY_EDITOR
|
|
||||||
using UnityEditor;
|
|
||||||
|
|
||||||
namespace DCFApixels.DragonECS.Unity.RefRepairer.Editors
|
|
||||||
{
|
|
||||||
//internal readonly struct MissingTypeData
|
|
||||||
//{
|
|
||||||
// public readonly ManagedReferenceMissingType Data;
|
|
||||||
// public readonly UnityObjectDataBase UnityObject;
|
|
||||||
//
|
|
||||||
// public MissingTypeData(ManagedReferenceMissingType missingType, UnityObjectDataBase unityObject)
|
|
||||||
// {
|
|
||||||
// Data = missingType;
|
|
||||||
// UnityObject = unityObject;
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
#endif
|
|
@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 447f4a0f7419475438468e8f08d8b7cd
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 7999f2711e8e3e040b8ae48ce5acec71
|
guid: f41c9df5930a6b44cbe9d043e224b514
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
@ -1,19 +0,0 @@
|
|||||||
#if UNITY_EDITOR
|
|
||||||
using UnityEditor;
|
|
||||||
using UnityEngine.SceneManagement;
|
|
||||||
|
|
||||||
namespace DCFApixels.DragonECS.Unity.RefRepairer.Editors
|
|
||||||
{
|
|
||||||
internal class SceneObjectData : UnityObjectDataBase
|
|
||||||
{
|
|
||||||
private readonly GUID _assetGUID;
|
|
||||||
public readonly string SceneName;
|
|
||||||
public sealed override GUID AssetGuid { get { return _assetGUID; } }
|
|
||||||
public SceneObjectData(Scene scene)
|
|
||||||
{
|
|
||||||
_assetGUID = AssetDatabase.GUIDFromAssetPath(scene.path);
|
|
||||||
SceneName = scene.name;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
@ -1,19 +0,0 @@
|
|||||||
#if UNITY_EDITOR
|
|
||||||
using UnityEditor;
|
|
||||||
using UnityObject = UnityEngine.Object;
|
|
||||||
|
|
||||||
namespace DCFApixels.DragonECS.Unity.RefRepairer.Editors
|
|
||||||
{
|
|
||||||
internal class UnityObjectData : UnityObjectDataBase
|
|
||||||
{
|
|
||||||
private readonly GUID _assetGUID;
|
|
||||||
public readonly UnityObject UnityObject;
|
|
||||||
public sealed override GUID AssetGuid { get { return _assetGUID; } }
|
|
||||||
public UnityObjectData(UnityObject unityObject, string pathToPrefab)
|
|
||||||
{
|
|
||||||
_assetGUID = AssetDatabase.GUIDFromAssetPath(pathToPrefab);
|
|
||||||
UnityObject = unityObject;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 0037513c31abb5d4ebd572d2fd17ccec
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,16 +1,41 @@
|
|||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
|
using UnityEngine.SceneManagement;
|
||||||
|
using UnityObject = UnityEngine.Object;
|
||||||
|
|
||||||
namespace DCFApixels.DragonECS.Unity.RefRepairer.Editors
|
namespace DCFApixels.DragonECS.Unity.RefRepairer.Editors
|
||||||
{
|
{
|
||||||
internal abstract class UnityObjectDataBase
|
internal abstract class UnityObjectDataBase
|
||||||
{
|
{
|
||||||
//public string LocalAssetPath => AssetDatabase.GUIDToAssetPath(AssetGuid);
|
|
||||||
public abstract GUID AssetGuid { get; }
|
public abstract GUID AssetGuid { get; }
|
||||||
public string GetLocalAssetPath()
|
public string GetLocalAssetPath()
|
||||||
{
|
{
|
||||||
return AssetDatabase.GUIDToAssetPath(AssetGuid);
|
return AssetDatabase.GUIDToAssetPath(AssetGuid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal class UnityObjectData : UnityObjectDataBase
|
||||||
|
{
|
||||||
|
private readonly GUID _assetGUID;
|
||||||
|
public readonly UnityObject UnityObject;
|
||||||
|
public sealed override GUID AssetGuid { get { return _assetGUID; } }
|
||||||
|
public UnityObjectData(UnityObject unityObject, string pathToPrefab)
|
||||||
|
{
|
||||||
|
_assetGUID = AssetDatabase.GUIDFromAssetPath(pathToPrefab);
|
||||||
|
UnityObject = unityObject;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal class SceneObjectData : UnityObjectDataBase
|
||||||
|
{
|
||||||
|
private readonly GUID _assetGUID;
|
||||||
|
public readonly string SceneName;
|
||||||
|
public sealed override GUID AssetGuid { get { return _assetGUID; } }
|
||||||
|
public SceneObjectData(Scene scene)
|
||||||
|
{
|
||||||
|
_assetGUID = AssetDatabase.GUIDFromAssetPath(scene.path);
|
||||||
|
SceneName = scene.name;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
Loading…
Reference in New Issue
Block a user