Bug fixes

- Animation keys should be better synced with the animation (fewer instance of missing keys)
- Copied keyframes and cloned stages should no longer be linked to each other
-If you delete the first keyframe in a clip, instead of denying you, it will reset the associated actor it to its default starting position
- You can now move keyframes over the first one in a clip and override it. If less than two keys remain, new keys will be generated to a minimum of a two
- Fixed error when cycling through actor body parts
This commit is contained in:
AbstractConcept 2022-11-05 23:03:51 -05:00
parent 39f771a720
commit 23f8d8cfec
85 changed files with 192 additions and 142 deletions

View File

@ -128,7 +128,7 @@ namespace RimWorldAnimationStudio
public void CloneAnimationStage() public void CloneAnimationStage()
{ {
AnimationStage stage = Workspace.GetCurrentAnimationStage().Copy(); AnimationStage stage = Workspace.GetCurrentAnimationStage().GetClone();
stage.StageName += " (Clone)"; stage.StageName += " (Clone)";
Workspace.animationDef.AnimationStages.Insert(Workspace.StageID + 1, stage); Workspace.animationDef.AnimationStages.Insert(Workspace.StageID + 1, stage);

View File

@ -59,7 +59,7 @@ namespace RimWorldAnimationStudio
[XmlIgnore] public int StageLoopsQuick [XmlIgnore] public int StageLoopsQuick
{ {
get { return Mathf.CeilToInt(PlayTimeTicksQuick / Workspace.StageWindowSize); } get { return Mathf.CeilToInt(PlayTimeTicksQuick / Workspace.StageWindowSize); }
set { value = Math.Max(0, Math.Min(value, StageLoopsNormal)); PlayTimeTicksQuick = value * Workspace.StageWindowSize; IsLooping = value > 1; } set { value = Math.Max(0, Math.Min(value, StageLoopsNormal)); PlayTimeTicksQuick = value * Workspace.StageWindowSize; }
} }
// Local data // Local data
@ -86,13 +86,15 @@ namespace RimWorldAnimationStudio
public void StretchStageWindow(int newStageWindowSize) public void StretchStageWindow(int newStageWindowSize)
{ {
ResizeStageWindow(newStageWindowSize);
float scale = (float)newStageWindowSize / Workspace.StageWindowSize; float scale = (float)newStageWindowSize / Workspace.StageWindowSize;
foreach (PawnAnimationClip clip in AnimationClips) foreach (PawnAnimationClip clip in AnimationClips)
{ {
foreach (PawnKeyframe keyframe in clip.Keyframes) foreach (PawnKeyframe keyframe in clip.Keyframes)
{ {
keyframe.atTick = Mathf.CeilToInt((float)keyframe.atTick.Value * scale); keyframe.atTick = keyframe.atTick == Constants.minTick ? Constants.minTick : Mathf.CeilToInt((float)keyframe.atTick.Value * scale);
keyframe.TickDuration = 0; keyframe.TickDuration = 0;
} }
@ -104,9 +106,9 @@ namespace RimWorldAnimationStudio
public void ResizeStageWindow(int newStageWindowSize) public void ResizeStageWindow(int newStageWindowSize)
{ {
Workspace.GetCurrentAnimationStage().stageWindowSize = newStageWindowSize;
Workspace.GetCurrentAnimationStage().PlayTimeTicks = newStageWindowSize * StageLoopsNormal; Workspace.GetCurrentAnimationStage().PlayTimeTicks = newStageWindowSize * StageLoopsNormal;
Workspace.GetCurrentAnimationStage().PlayTimeTicksQuick = newStageWindowSize * StageLoopsQuick; Workspace.GetCurrentAnimationStage().PlayTimeTicksQuick = newStageWindowSize * StageLoopsQuick;
Workspace.GetCurrentAnimationStage().stageWindowSize = newStageWindowSize;
EventsManager.OnStageWindowSizeChanged(this); EventsManager.OnStageWindowSizeChanged(this);
} }
@ -121,17 +123,17 @@ namespace RimWorldAnimationStudio
if (lastkeyframe != null) if (lastkeyframe != null)
{ {
PawnKeyframe keyframeA = lastkeyframe.Copy(); PawnKeyframe keyframeA = lastkeyframe.GetClone();
keyframeA.GenerateKeyframeID(actorID);
keyframeA.atTick = null; keyframeA.atTick = null;
keyframeA.TickDuration = Constants.defaultAnimationClipLength - 1; keyframeA.TickDuration = Constants.defaultAnimationClipLength - 1;
keyframeA.GenerateKeyframeID(actorID);
clip.Keyframes.Add(keyframeA); clip.Keyframes.Add(keyframeA);
PawnKeyframe keyframeB = lastkeyframe.Copy(); PawnKeyframe keyframeB = lastkeyframe.GetClone();
keyframeB.GenerateKeyframeID(actorID);
keyframeB.atTick = null; keyframeB.atTick = null;
keyframeB.TickDuration = 1; keyframeB.TickDuration = 1;
keyframeB.GenerateKeyframeID(actorID);
clip.Keyframes.Add(keyframeB); clip.Keyframes.Add(keyframeB);
} }
@ -151,6 +153,19 @@ namespace RimWorldAnimationStudio
animationClips.Add(clip); animationClips.Add(clip);
} }
public AnimationStage GetClone()
{
AnimationStage clone = this.Copy();
foreach (PawnAnimationClip clip in clone.animationClips)
{
foreach (PawnKeyframe keyframe in clip.Keyframes)
{ keyframe.GenerateKeyframeID(keyframe.actorID); }
}
return clone;
}
// Pre-save / post-load // Pre-save / post-load
public void OnPreSave() public void OnPreSave()
{ {

View File

@ -236,7 +236,7 @@ namespace RimWorldAnimationStudio
List<PawnKeyframe> keyframesToClone = Workspace.GetPawnKeyframesByID(Workspace.keyframeID); List<PawnKeyframe> keyframesToClone = Workspace.GetPawnKeyframesByID(Workspace.keyframeID);
foreach (PawnKeyframe keyframe in keyframesToClone) foreach (PawnKeyframe keyframe in keyframesToClone)
{ Workspace.copiedKeyframes.Add(keyframe.Copy()); } { Workspace.copiedKeyframes.Add(keyframe.GetClone()); }
} }
public void PastePawnKeyframes() public void PastePawnKeyframes()
@ -273,7 +273,7 @@ namespace RimWorldAnimationStudio
Workspace.GetAnimationClipThatOwnsKeyframe(oldKeyframe.keyframeID).RemovePawnKeyframe(oldKeyframe.keyframeID, true); Workspace.GetAnimationClipThatOwnsKeyframe(oldKeyframe.keyframeID).RemovePawnKeyframe(oldKeyframe.keyframeID, true);
} }
PawnKeyframe clonedKeyframe = copiedKeyframe.Copy(); PawnKeyframe clonedKeyframe = copiedKeyframe.GetClone();
clonedKeyframe.GenerateKeyframeID(targetActorID); clonedKeyframe.GenerateKeyframeID(targetActorID);
clonedKeyframe.atTick = tickToPasteAt; clonedKeyframe.atTick = tickToPasteAt;
@ -305,13 +305,24 @@ namespace RimWorldAnimationStudio
PawnKeyframe keyframe = Workspace.GetPawnKeyframe(keyframeID); PawnKeyframe keyframe = Workspace.GetPawnKeyframe(keyframeID);
if (keyframe == null || IsOwnerOfKeyframe(keyframeID) == false) return; if (keyframe == null || IsOwnerOfKeyframe(keyframeID) == false) return;
if (keyframe.atTick == Constants.minTick && force == false)
{ Debug.LogWarning("Cannot delete key frame - the first key frame of an animation clip cannot be deleted"); return; }
if (Keyframes.Count <= 2 && force == false)
{ Debug.LogWarning("Cannot delete key frame - an animation clip must have two or more keyframes"); return; }
Keyframes.Remove(keyframe); Keyframes.Remove(keyframe);
if (Workspace.GetAllPawnKeyframesAtTick(GetOwningActorID(), Constants.minTick).NullOrEmpty())
{
PawnKeyframe newKeyframe = new PawnKeyframe();
newKeyframe.GenerateKeyframeID(GetOwningActorID());
newKeyframe.atTick = Constants.minTick;
Keyframes.Insert(0, newKeyframe);
}
// Add missing second keyframe (if needed)
if (Keyframes.Count == 1)
{
PawnKeyframe newKeyframe = Workspace.GetAllPawnKeyframesAtTick(GetOwningActorID(), Constants.minTick).First().GetClone();
newKeyframe.atTick = 10;
Keyframes.Add(newKeyframe);
}
BuildSimpleCurves(); BuildSimpleCurves();
EventsManager.OnKeyframeCountChanged(this); EventsManager.OnKeyframeCountChanged(this);
@ -323,11 +334,6 @@ namespace RimWorldAnimationStudio
return Keyframes.Any(x => x.keyframeID == keyframeID); return Keyframes.Any(x => x.keyframeID == keyframeID);
} }
public float GetStageTickPercentage()
{
return (float)(Workspace.StageTick % duration) / duration;
}
// Pre-save / post-load // Pre-save / post-load
public void OnPreSave() public void OnPreSave()
{ {

View File

@ -39,7 +39,7 @@ namespace RimWorldAnimationStudio
// Data helper functions // Data helper functions
[XmlIgnore] public float BodyAngle [XmlIgnore] public float BodyAngle
{ {
get { return bodyAngle.HasValue ? bodyAngle.Value : 0f; } get { return bodyAngle.HasValue ? bodyAngle.Value : (float)(bodyAngle = 0f); }
set { bodyAngle = value; } set { bodyAngle = value; }
} }
@ -205,6 +205,14 @@ namespace RimWorldAnimationStudio
Workspace.RecordEvent("Actor position / orientation"); Workspace.RecordEvent("Actor position / orientation");
} }
public PawnKeyframe GetClone()
{
PawnKeyframe clone = this.Copy();
clone.GenerateKeyframeID(actorID);
return clone;
}
// Pre-save / post-load // Pre-save / post-load
public void OnPreSave() public void OnPreSave()
{ {

View File

@ -23,7 +23,7 @@ namespace RimWorldAnimationStudio
{ {
PawnAnimationClip clip = Workspace.GetPawnAnimationClip(actorID); PawnAnimationClip clip = Workspace.GetPawnAnimationClip(actorID);
float clipPercent = (float)atTick / Workspace.StageWindowSize; float clipPercent = (float)(atTick % clip.duration) / clip.duration;
if (atTick > Constants.minTick && atTick == clip.duration) clipPercent = 1f; if (atTick > Constants.minTick && atTick == clip.duration) clipPercent = 1f;
if (Workspace.GetCurrentAnimationStage().IsLooping == false) if (Workspace.GetCurrentAnimationStage().IsLooping == false)

View File

@ -18,6 +18,10 @@ namespace RimWorldAnimationStudio
{ {
EventsManager.onActorBodyPartSelected.AddListener(delegate(ActorBodyPart bodyPart) { OnActorBodyPartSelected(bodyPart); }); EventsManager.onActorBodyPartSelected.AddListener(delegate(ActorBodyPart bodyPart) { OnActorBodyPartSelected(bodyPart); });
EventsManager.onActorBodySelected.AddListener(delegate(ActorBody actorBody) { OnActorBodySelected(actorBody); }); EventsManager.onActorBodySelected.AddListener(delegate(ActorBody actorBody) { OnActorBodySelected(actorBody); });
EventsManager.onActorIDChanged.AddListener(delegate {
if (Workspace.ActorID == actorID)
{ EventsManager.OnActorBodySelected(this); }
});
if (Workspace.ActorID == actorID) if (Workspace.ActorID == actorID)
{ Activate(); } { Activate(); }

View File

@ -22,6 +22,7 @@ namespace RimWorldAnimationStudio
EventsManager.onKeyframeCountChanged.AddListener(delegate { UpdateGUI(); }); EventsManager.onKeyframeCountChanged.AddListener(delegate { UpdateGUI(); });
EventsManager.onActorIDChanged.AddListener(delegate { UpdateTimelineSelection(); }); EventsManager.onActorIDChanged.AddListener(delegate { UpdateTimelineSelection(); });
EventsManager.onStageWindowSizeChanged.AddListener(delegate { UpdateGUI(); }); EventsManager.onStageWindowSizeChanged.AddListener(delegate { UpdateGUI(); });
EventsManager.onAnimationStageChanged.AddListener(delegate { UpdateGUI(); });
UpdateTimelineSelection(); UpdateTimelineSelection();
UpdateGUI(); UpdateGUI();

View File

@ -58,6 +58,8 @@ namespace RimWorldAnimationStudio
else else
{ {
Workspace.GetCurrentAnimationStage().ResizeStageWindow(newStageWindowSize);
foreach (PawnAnimationClip clip in Workspace.GetCurrentAnimationStage().AnimationClips) foreach (PawnAnimationClip clip in Workspace.GetCurrentAnimationStage().AnimationClips)
{ {
List<PawnKeyframe> keyframes = clip.Keyframes.Where(x => x.atTick > newStageWindowSize)?.ToList(); List<PawnKeyframe> keyframes = clip.Keyframes.Where(x => x.atTick > newStageWindowSize)?.ToList();
@ -75,7 +77,6 @@ namespace RimWorldAnimationStudio
} }
} }
Workspace.GetCurrentAnimationStage().ResizeStageWindow(newStageWindowSize);
Workspace.RecordEvent("Stage length"); Workspace.RecordEvent("Stage length");
UpdateGUI(); UpdateGUI();

View File

@ -112,6 +112,7 @@ namespace RimWorldAnimationStudio
public void OnBeginDrag(PointerEventData eventData) public void OnBeginDrag(PointerEventData eventData)
{ {
// Select key
Workspace.ActorID = actorID; Workspace.ActorID = actorID;
dragTimeStart = Time.unscaledTime; dragTimeStart = Time.unscaledTime;
dragTickStart = keyframe.atTick.Value; dragTickStart = keyframe.atTick.Value;
@ -119,6 +120,12 @@ namespace RimWorldAnimationStudio
if (Workspace.keyframeID.NullOrEmpty() || Workspace.keyframeID.Contains(keyframeID) == false) if (Workspace.keyframeID.NullOrEmpty() || Workspace.keyframeID.Contains(keyframeID) == false)
{ Workspace.keyframeID = new List<int> { keyframeID }; } { Workspace.keyframeID = new List<int> { keyframeID }; }
// The first key can't be moved though
if (keyframe.atTick == Constants.minTick)
{ interactable = false; return; }
interactable = true;
List<PawnKeyframe> selectedKeyframes = Workspace.GetPawnKeyframesByID(Workspace.keyframeID).Except(new List<PawnKeyframe>() { keyframe })?.ToList(); List<PawnKeyframe> selectedKeyframes = Workspace.GetPawnKeyframesByID(Workspace.keyframeID).Except(new List<PawnKeyframe>() { keyframe })?.ToList();
// Link other selected keyframes to the movement of this one // Link other selected keyframes to the movement of this one
@ -134,6 +141,7 @@ namespace RimWorldAnimationStudio
if (unlinkedSlider != null) if (unlinkedSlider != null)
{ {
if (selectedKeyframe.atTick == Constants.minTick) continue;
if (Workspace.stretchKeyframes && unlinkedSlider.keyframe.atTick == pivotKeyframe.atTick) continue; if (Workspace.stretchKeyframes && unlinkedSlider.keyframe.atTick == pivotKeyframe.atTick) continue;
unlinkedSlider.linkedSlider = this; unlinkedSlider.linkedSlider = this;
@ -147,31 +155,19 @@ namespace RimWorldAnimationStudio
{ {
Workspace.ActorID = actorID; Workspace.ActorID = actorID;
// The first keyframe can't be moved
if (keyframe.atTick == Constants.minTick)
{ value = Constants.minTick; return; }
// Sticky drag // Sticky drag
if (Time.unscaledTime - dragTimeStart < 0.05f) return; if (Time.unscaledTime - dragTimeStart < 0.05f) return;
interactable = true;
base.OnDrag(eventData); base.OnDrag(eventData);
// Snap to nearest keyframe (on another timeline) // Snap to nearest keyframe (on another timeline)
int targetTick = Workspace.FindClosestKeyFrameAtTick(keyframe.atTick.Value, Mathf.CeilToInt(Workspace.StageWindowSize * 0.01f), actorID); int targetTick = Workspace.FindClosestKeyFrameAtTick(keyframe.atTick.Value, Mathf.CeilToInt(Workspace.StageWindowSize * 0.01f), actorID);
if (Input.GetKey(KeyCode.LeftShift) && Workspace.DoesPawnKeyframeExistAtTick(Workspace.StageID, actorID, targetTick) == false) if (Input.GetKey(KeyCode.LeftShift) && Workspace.DoesPawnKeyframeExistAtTick(Workspace.StageID, actorID, targetTick) == false)
{ value = (float)targetTick; } { value = (float)targetTick; }
// Prevent other frames from being moved to the first keyframe
if (value == Constants.minTick)
{ value = Constants.minTick + 1; }
} }
public void OnEndDrag(PointerEventData eventData) public void OnEndDrag(PointerEventData eventData)
{ {
if (keyframe.atTick == Constants.minTick)
{ value = Constants.minTick; return; }
List<PawnKeyframe> keyframesToCheck = Workspace.GetAllPawnKeyframesAtTick(actorID, keyframe.atTick.Value); List<PawnKeyframe> keyframesToCheck = Workspace.GetAllPawnKeyframesAtTick(actorID, keyframe.atTick.Value);
if (keyframesToCheck.NotNullOrEmpty()) if (keyframesToCheck.NotNullOrEmpty())
{ {
@ -227,7 +223,7 @@ namespace RimWorldAnimationStudio
{ value = Mathf.CeilToInt(linkedSlider.keyframe.atTick.Value + linkedOffset * linkedSlider.ScaledOffsetFromPivot()); } { value = Mathf.CeilToInt(linkedSlider.keyframe.atTick.Value + linkedOffset * linkedSlider.ScaledOffsetFromPivot()); }
else if (Workspace.stretchKeyframes == false && linkedSlider != null) else if (Workspace.stretchKeyframes == false && linkedSlider != null)
{ value = Mathf.Clamp(linkedSlider.keyframe.atTick.Value + linkedOffset, Constants.minTick + 1, Workspace.StageWindowSize); } { value = Mathf.Clamp(linkedSlider.keyframe.atTick.Value + linkedOffset, Constants.minTick, Workspace.StageWindowSize); }
else if (keyframe.atTick.Value != value) else if (keyframe.atTick.Value != value)
{ value = keyframe.atTick.Value; } { value = keyframe.atTick.Value; }

View File

@ -89,16 +89,19 @@ namespace RimWorldAnimationStudio
for (int actorID = 0; actorID < Workspace.animationDef.actors.Count; actorID++) for (int actorID = 0; actorID < Workspace.animationDef.actors.Count; actorID++)
{ {
// Get the current actor and their animation clip // Get the current actor
Actor actor = Workspace.GetActor(actorID); Actor actor = Workspace.GetActor(actorID);
// Get their animation clip and rebuild it to ensure it is up to date
PawnAnimationClip clip = Workspace.GetPawnAnimationClip(actorID); PawnAnimationClip clip = Workspace.GetPawnAnimationClip(actorID);
clip.BuildSimpleCurves();
// Get flags // Get flags
bool quiver = Workspace.IsAnimating && Workspace.GetCurrentOrPreviousKeyframe(actorID).Quiver == true; bool quiver = Workspace.IsAnimating && Workspace.GetCurrentOrPreviousKeyframe(actorID).Quiver == true;
bool requiresGenitals = actor.RequiredGenitals.Any(x => x == "Penis") || actor.IsFucking; bool requiresGenitals = actor.RequiredGenitals.Any(x => x == "Penis") || actor.IsFucking;
// Get clip percentage // Get clip percentage
float clipPercent = clip.GetStageTickPercentage(); float clipPercent = (float)(Workspace.StageTick % clip.duration) / clip.duration;
if (Workspace.StageTick > Constants.minTick && Workspace.StageTick == clip.duration) clipPercent = 1f; if (Workspace.StageTick > Constants.minTick && Workspace.StageTick == clip.duration) clipPercent = 1f;
if (Workspace.GetCurrentAnimationStage().IsLooping == false) if (Workspace.GetCurrentAnimationStage().IsLooping == false)
@ -188,7 +191,7 @@ namespace RimWorldAnimationStudio
// Play sounds // Play sounds
if (Workspace.IsAnimating) if (Workspace.IsAnimating)
{ {
PawnKeyframe keyframe = clip.keyframes.FirstOrDefault(x => x.atTick == Workspace.StageTick); PawnKeyframe keyframe = clip.keyframes.FirstOrDefault(x => x.atTick == (int)(clip.duration * clipPercent));
if (keyframe != null && string.IsNullOrEmpty(keyframe.soundEffect) == false) if (keyframe != null && string.IsNullOrEmpty(keyframe.soundEffect) == false)
{ actorBody.GetComponent<AudioController>().PlaySound(keyframe.soundEffect); } { actorBody.GetComponent<AudioController>().PlaySound(keyframe.soundEffect); }

View File

@ -316,8 +316,8 @@ namespace RimWorldAnimationStudio
{ {
if (Workspace.animationDef == null) return; if (Workspace.animationDef == null) return;
ActorBody actorBody = AnimationController.Instance.actorBodies.GetChild(Workspace.ActorID).GetComponent<ActorBody>(); ActorBody actorBody = AnimationController.Instance.actorBodies.GetComponentsInChildren<ActorBody>().FirstOrDefault(x => x.actorID == Workspace.ActorID);
List<ActorBodyPart> actorBodyParts = actorBody.GetComponentsInChildren<ActorBodyPart>().Where(x => x.gameObject.activeInHierarchy)?.ToList(); List<ActorBodyPart> actorBodyParts = actorBody?.GetComponentsInChildren<ActorBodyPart>()?.Where(x => x.gameObject.activeInHierarchy)?.ToList();
if (actorBodyParts.NullOrEmpty()) return; if (actorBodyParts.NullOrEmpty()) return;

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -112,10 +112,10 @@ MonoBehaviour:
y: 30 y: 30
width: 1920 width: 1920
height: 947 height: 947
m_MinSize: {x: 679, y: 492} m_MinSize: {x: 677, y: 492}
m_MaxSize: {x: 14002, y: 14042} m_MaxSize: {x: 14001, y: 14042}
vertical: 0 vertical: 0
controlID: 2473 controlID: 3533
--- !u!114 &6 --- !u!114 &6
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 52 m_ObjectHideFlags: 52
@ -137,10 +137,10 @@ MonoBehaviour:
y: 0 y: 0
width: 1414 width: 1414
height: 947 height: 947
m_MinSize: {x: 403, y: 492} m_MinSize: {x: 402, y: 492}
m_MaxSize: {x: 10001, y: 14042} m_MaxSize: {x: 10001, y: 14042}
vertical: 1 vertical: 1
controlID: 2478 controlID: 3534
--- !u!114 &7 --- !u!114 &7
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 52 m_ObjectHideFlags: 52
@ -162,10 +162,10 @@ MonoBehaviour:
y: 0 y: 0
width: 1414 width: 1414
height: 671 height: 671
m_MinSize: {x: 403, y: 221} m_MinSize: {x: 402, y: 221}
m_MaxSize: {x: 8003, y: 4021} m_MaxSize: {x: 8002, y: 4021}
vertical: 0 vertical: 0
controlID: 2479 controlID: 3535
--- !u!114 &8 --- !u!114 &8
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 52 m_ObjectHideFlags: 52
@ -398,7 +398,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0} scrollPos: {x: 0, y: 0}
m_SelectedIDs: m_SelectedIDs:
m_LastClickedID: 0 m_LastClickedID: 0
m_ExpandedIDs: 28a2feff3ca2feffe2a2feff62fbffff7a3d0000a83d000010410000b4420000 m_ExpandedIDs: 74a0fcff88a0fcff2ea1fcff4cfbffffbc420000
m_RenameOverlay: m_RenameOverlay:
m_UserAcceptedRename: 0 m_UserAcceptedRename: 0
m_Name: m_Name:
@ -1115,9 +1115,9 @@ MonoBehaviour:
m_IsLocked: 0 m_IsLocked: 0
m_FolderTreeState: m_FolderTreeState:
scrollPos: {x: 0, y: 143} scrollPos: {x: 0, y: 143}
m_SelectedIDs: 464e0000 m_SelectedIDs: 4e4e0000
m_LastClickedID: 20038 m_LastClickedID: 20046
m_ExpandedIDs: 000000003a4e00003c4e00003e4e0000404e0000424e0000444e0000464e0000484e00004a4e00004c4e00004e4e0000504e000000ca9a3b m_ExpandedIDs: 00000000424e0000444e0000464e0000484e00004a4e00004c4e00004e4e0000504e0000524e0000544e0000564e0000584e000000ca9a3b
m_RenameOverlay: m_RenameOverlay:
m_UserAcceptedRename: 0 m_UserAcceptedRename: 0
m_Name: m_Name:
@ -1145,7 +1145,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0} scrollPos: {x: 0, y: 0}
m_SelectedIDs: m_SelectedIDs:
m_LastClickedID: 0 m_LastClickedID: 0
m_ExpandedIDs: 000000003a4e00003c4e00003e4e0000404e0000424e0000444e0000464e0000484e00004a4e00004c4e00004e4e0000504e000000ca9a3b m_ExpandedIDs: 00000000424e0000444e0000464e0000484e00004a4e00004c4e00004e4e0000504e0000524e0000544e0000564e0000584e000000ca9a3b
m_RenameOverlay: m_RenameOverlay:
m_UserAcceptedRename: 0 m_UserAcceptedRename: 0
m_Name: m_Name:
@ -1295,4 +1295,4 @@ MonoBehaviour:
m_PrefName: Preview_InspectorPreview m_PrefName: Preview_InspectorPreview
m_PreviewWindow: {fileID: 0} m_PreviewWindow: {fileID: 0}
m_LastInspectedObjectInstanceID: -1 m_LastInspectedObjectInstanceID: -1
m_LastVerticalScrollValue: 100 m_LastVerticalScrollValue: 0

View File

@ -21,10 +21,10 @@ MonoBehaviour:
y: 30 y: 30
width: 1920 width: 1920
height: 947 height: 947
m_MinSize: {x: 679, y: 492} m_MinSize: {x: 677, y: 492}
m_MaxSize: {x: 14002, y: 14042} m_MaxSize: {x: 14001, y: 14042}
vertical: 0 vertical: 0
controlID: 2139 controlID: 3438
--- !u!114 &2 --- !u!114 &2
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 52 m_ObjectHideFlags: 52
@ -138,10 +138,10 @@ MonoBehaviour:
y: 0 y: 0
width: 1414 width: 1414
height: 947 height: 947
m_MinSize: {x: 403, y: 492} m_MinSize: {x: 402, y: 492}
m_MaxSize: {x: 10001, y: 14042} m_MaxSize: {x: 10001, y: 14042}
vertical: 1 vertical: 1
controlID: 2140 controlID: 3439
--- !u!114 &4 --- !u!114 &4
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 52 m_ObjectHideFlags: 52
@ -163,10 +163,10 @@ MonoBehaviour:
y: 0 y: 0
width: 1414 width: 1414
height: 671 height: 671
m_MinSize: {x: 403, y: 221} m_MinSize: {x: 402, y: 221}
m_MaxSize: {x: 8003, y: 4021} m_MaxSize: {x: 8002, y: 4021}
vertical: 0 vertical: 0
controlID: 2141 controlID: 3440
--- !u!114 &5 --- !u!114 &5
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 52 m_ObjectHideFlags: 52
@ -186,8 +186,8 @@ MonoBehaviour:
y: 0 y: 0
width: 337 width: 337
height: 671 height: 671
m_MinSize: {x: 201, y: 221} m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4001, y: 4021} m_MaxSize: {x: 4000, y: 4000}
m_ActualView: {fileID: 6} m_ActualView: {fileID: 6}
m_Panes: m_Panes:
- {fileID: 6} - {fileID: 6}
@ -224,7 +224,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0} scrollPos: {x: 0, y: 0}
m_SelectedIDs: m_SelectedIDs:
m_LastClickedID: 0 m_LastClickedID: 0
m_ExpandedIDs: 62fbffff7a3d0000a83d000010410000b4420000 m_ExpandedIDs: 4cfbffffbc420000
m_RenameOverlay: m_RenameOverlay:
m_UserAcceptedRename: 0 m_UserAcceptedRename: 0
m_Name: m_Name:
@ -939,8 +939,8 @@ MonoBehaviour:
y: 671 y: 671
width: 1414 width: 1414
height: 276 height: 276
m_MinSize: {x: 231, y: 271} m_MinSize: {x: 230, y: 250}
m_MaxSize: {x: 10001, y: 10021} m_MaxSize: {x: 10000, y: 10000}
m_ActualView: {fileID: 12} m_ActualView: {fileID: 12}
m_Panes: m_Panes:
- {fileID: 12} - {fileID: 12}
@ -998,9 +998,9 @@ MonoBehaviour:
m_IsLocked: 0 m_IsLocked: 0
m_FolderTreeState: m_FolderTreeState:
scrollPos: {x: 0, y: 143} scrollPos: {x: 0, y: 143}
m_SelectedIDs: 464e0000 m_SelectedIDs: 4e4e0000
m_LastClickedID: 20038 m_LastClickedID: 20046
m_ExpandedIDs: 000000003a4e00003c4e00003e4e0000404e0000424e0000444e0000464e0000484e00004a4e00004c4e00004e4e0000504e000000ca9a3b m_ExpandedIDs: 00000000424e0000444e0000464e0000484e00004a4e00004c4e00004e4e0000504e0000524e0000544e0000564e0000584e000000ca9a3b
m_RenameOverlay: m_RenameOverlay:
m_UserAcceptedRename: 0 m_UserAcceptedRename: 0
m_Name: m_Name:
@ -1028,7 +1028,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0} scrollPos: {x: 0, y: 0}
m_SelectedIDs: m_SelectedIDs:
m_LastClickedID: 0 m_LastClickedID: 0
m_ExpandedIDs: 000000003a4e00003c4e00003e4e0000404e0000424e0000444e0000464e0000484e00004a4e00004c4e00004e4e0000504e000000ca9a3b m_ExpandedIDs: 00000000424e0000444e0000464e0000484e00004a4e00004c4e00004e4e0000504e0000524e0000544e0000564e0000584e000000ca9a3b
m_RenameOverlay: m_RenameOverlay:
m_UserAcceptedRename: 0 m_UserAcceptedRename: 0
m_Name: m_Name:
@ -1053,8 +1053,8 @@ MonoBehaviour:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_ResourceFile: m_ResourceFile:
m_ListAreaState: m_ListAreaState:
m_SelectedInstanceIDs: ec440000 m_SelectedInstanceIDs:
m_LastClickedInstanceID: 17644 m_LastClickedInstanceID: 0
m_HadKeyboardFocusLastEvent: 0 m_HadKeyboardFocusLastEvent: 0
m_ExpandedInstanceIDs: c6230000303a0000063a0000a83d00005c66000000870000f8860000004a00004a4600000c430000004900007e9800000249000086980000000000007a140100 m_ExpandedInstanceIDs: c6230000303a0000063a0000a83d00005c66000000870000f8860000004a00004a4600000c430000004900007e9800000249000086980000000000007a140100
m_RenameOverlay: m_RenameOverlay:
@ -1203,5 +1203,5 @@ MonoBehaviour:
m_ControlHash: -371814159 m_ControlHash: -371814159
m_PrefName: Preview_InspectorPreview m_PrefName: Preview_InspectorPreview
m_PreviewWindow: {fileID: 0} m_PreviewWindow: {fileID: 0}
m_LastInspectedObjectInstanceID: 17644 m_LastInspectedObjectInstanceID: -1
m_LastVerticalScrollValue: 100 m_LastVerticalScrollValue: 0

Binary file not shown.

View File

@ -130,129 +130,129 @@ ScriptsOnlyBuild:
- Class: 114 - Class: 114
Script: {instanceID: 11264} Script: {instanceID: 11264}
- Class: 114 - Class: 114
Script: {instanceID: 11268} Script: {instanceID: 11270}
- Class: 114 - Class: 114
Script: {instanceID: 11292} Script: {instanceID: 11294}
- Class: 114 - Class: 114
Script: {instanceID: 11450} Script: {instanceID: 11452}
- Class: 114 - Class: 114
Script: {instanceID: 11504} Script: {instanceID: 11506}
- Class: 114 - Class: 114
Script: {instanceID: 11580} Script: {instanceID: 11582}
- Class: 114 - Class: 114
Script: {instanceID: 11592} Script: {instanceID: 11594}
- Class: 114 - Class: 114
Script: {instanceID: 11606} Script: {instanceID: 11608}
- Class: 114 - Class: 114
Script: {instanceID: 11660} Script: {instanceID: 11662}
- Class: 114 - Class: 114
Script: {instanceID: 11734} Script: {instanceID: 11736}
- Class: 114 - Class: 114
Script: {instanceID: 11760} Script: {instanceID: 11762}
- Class: 114
Script: {instanceID: 11764}
- Class: 114 - Class: 114
Script: {instanceID: 11766} Script: {instanceID: 11766}
- Class: 114 - Class: 114
Script: {instanceID: 11774} Script: {instanceID: 11768}
- Class: 114 - Class: 114
Script: {instanceID: 11784} Script: {instanceID: 11776}
- Class: 114 - Class: 114
Script: {instanceID: 11806} Script: {instanceID: 11786}
- Class: 114 - Class: 114
Script: {instanceID: 11870} Script: {instanceID: 11808}
- Class: 114 - Class: 114
Script: {instanceID: 11876} Script: {instanceID: 11872}
- Class: 114 - Class: 114
Script: {instanceID: 12144} Script: {instanceID: 11878}
- Class: 114 - Class: 114
Script: {instanceID: 12180} Script: {instanceID: 12146}
- Class: 114 - Class: 114
Script: {instanceID: 12324} Script: {instanceID: 12182}
- Class: 114 - Class: 114
Script: {instanceID: 12348} Script: {instanceID: 12326}
- Class: 114 - Class: 114
Script: {instanceID: 12364} Script: {instanceID: 12350}
- Class: 114 - Class: 114
Script: {instanceID: 12434} Script: {instanceID: 12366}
- Class: 114 - Class: 114
Script: {instanceID: 12614} Script: {instanceID: 12436}
- Class: 114 - Class: 114
Script: {instanceID: 12638} Script: {instanceID: 12616}
- Class: 114 - Class: 114
Script: {instanceID: 12756} Script: {instanceID: 12640}
- Class: 114 - Class: 114
Script: {instanceID: 12880} Script: {instanceID: 12758}
- Class: 114 - Class: 114
Script: {instanceID: 12924} Script: {instanceID: 12882}
- Class: 114 - Class: 114
Script: {instanceID: 13174} Script: {instanceID: 12926}
- Class: 114 - Class: 114
Script: {instanceID: 13200} Script: {instanceID: 13176}
- Class: 114 - Class: 114
Script: {instanceID: 13240} Script: {instanceID: 13202}
- Class: 114 - Class: 114
Script: {instanceID: 13250} Script: {instanceID: 13242}
- Class: 114 - Class: 114
Script: {instanceID: 13260} Script: {instanceID: 13252}
- Class: 114 - Class: 114
Script: {instanceID: 13270} Script: {instanceID: 13262}
- Class: 114 - Class: 114
Script: {instanceID: 13372} Script: {instanceID: 13272}
- Class: 114 - Class: 114
Script: {instanceID: 13390} Script: {instanceID: 13374}
- Class: 114 - Class: 114
Script: {instanceID: 13392} Script: {instanceID: 13392}
- Class: 114 - Class: 114
Script: {instanceID: 13426} Script: {instanceID: 13394}
- Class: 114 - Class: 114
Script: {instanceID: 13466} Script: {instanceID: 13428}
- Class: 114 - Class: 114
Script: {instanceID: 13482} Script: {instanceID: 13468}
- Class: 114 - Class: 114
Script: {instanceID: 13498} Script: {instanceID: 13484}
- Class: 114 - Class: 114
Script: {instanceID: 13510} Script: {instanceID: 13500}
- Class: 114 - Class: 114
Script: {instanceID: 13514} Script: {instanceID: 13512}
- Class: 114 - Class: 114
Script: {instanceID: 13550} Script: {instanceID: 13516}
- Class: 114 - Class: 114
Script: {instanceID: 13682} Script: {instanceID: 13552}
- Class: 114 - Class: 114
Script: {instanceID: 13708} Script: {instanceID: 13684}
- Class: 114 - Class: 114
Script: {instanceID: 13840} Script: {instanceID: 13710}
- Class: 114 - Class: 114
Script: {instanceID: 13914} Script: {instanceID: 13842}
- Class: 114 - Class: 114
Script: {instanceID: 13918} Script: {instanceID: 13916}
- Class: 114 - Class: 114
Script: {instanceID: 14046} Script: {instanceID: 13920}
- Class: 114 - Class: 114
Script: {instanceID: 14110} Script: {instanceID: 14048}
- Class: 114 - Class: 114
Script: {instanceID: 14206} Script: {instanceID: 14112}
- Class: 114 - Class: 114
Script: {instanceID: 14356} Script: {instanceID: 14208}
- Class: 114 - Class: 114
Script: {instanceID: 14504} Script: {instanceID: 14358}
- Class: 114 - Class: 114
Script: {instanceID: 14530} Script: {instanceID: 14506}
- Class: 114 - Class: 114
Script: {instanceID: 14532} Script: {instanceID: 14532}
- Class: 114 - Class: 114
Script: {instanceID: 14564} Script: {instanceID: 14534}
- Class: 114 - Class: 114
Script: {instanceID: 14586} Script: {instanceID: 14566}
- Class: 114 - Class: 114
Script: {instanceID: 14588} Script: {instanceID: 14588}
- Class: 114 - Class: 114
Script: {instanceID: 14628} Script: {instanceID: 14590}
- Class: 114 - Class: 114
Script: {instanceID: 14634} Script: {instanceID: 14630}
- Class: 114 - Class: 114
Script: {instanceID: 14676} Script: {instanceID: 14636}
- Class: 114
Script: {instanceID: 14678}
- Class: 115 - Class: 115
Script: {instanceID: 0} Script: {instanceID: 0}
- Class: 128 - Class: 128

Binary file not shown.

View File

@ -1,2 +1,4 @@
Base path: 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data/PlaybackEngines' Base path: 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data/PlaybackEngines'
Cmd: initializeCompiler Cmd: initializeCompiler
Quitting shader compiler process

View File

@ -1,2 +1,4 @@
Base path: 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data/PlaybackEngines' Base path: 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data/PlaybackEngines'
Cmd: initializeCompiler Cmd: initializeCompiler
Quitting shader compiler process

View File

@ -1,2 +1,4 @@
Base path: 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data/PlaybackEngines' Base path: 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data/PlaybackEngines'
Cmd: initializeCompiler Cmd: initializeCompiler
Quitting shader compiler process

View File

@ -1,2 +1,4 @@
Base path: 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data/PlaybackEngines' Base path: 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data/PlaybackEngines'
Cmd: initializeCompiler Cmd: initializeCompiler
Quitting shader compiler process

View File

@ -1,2 +1,4 @@
Base path: 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data/PlaybackEngines' Base path: 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data/PlaybackEngines'
Cmd: initializeCompiler Cmd: initializeCompiler
Quitting shader compiler process

View File

@ -1,2 +1,4 @@
Base path: 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data/PlaybackEngines' Base path: 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data/PlaybackEngines'
Cmd: initializeCompiler Cmd: initializeCompiler
Quitting shader compiler process

View File

@ -1,2 +1,4 @@
Base path: 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data/PlaybackEngines' Base path: 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data/PlaybackEngines'
Cmd: initializeCompiler Cmd: initializeCompiler
Quitting shader compiler process

View File

@ -1,2 +1,4 @@
Base path: 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data/PlaybackEngines' Base path: 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data', plugins path 'C:/Program Files/Unity/Hub/Editor/2019.4.20f1/Editor/Data/PlaybackEngines'
Cmd: initializeCompiler Cmd: initializeCompiler
Quitting shader compiler process