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()
{
AnimationStage stage = Workspace.GetCurrentAnimationStage().Copy();
AnimationStage stage = Workspace.GetCurrentAnimationStage().GetClone();
stage.StageName += " (Clone)";
Workspace.animationDef.AnimationStages.Insert(Workspace.StageID + 1, stage);

View File

@ -59,7 +59,7 @@ namespace RimWorldAnimationStudio
[XmlIgnore] public int StageLoopsQuick
{
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
@ -86,13 +86,15 @@ namespace RimWorldAnimationStudio
public void StretchStageWindow(int newStageWindowSize)
{
ResizeStageWindow(newStageWindowSize);
float scale = (float)newStageWindowSize / Workspace.StageWindowSize;
foreach (PawnAnimationClip clip in AnimationClips)
{
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;
}
@ -103,10 +105,10 @@ namespace RimWorldAnimationStudio
}
public void ResizeStageWindow(int newStageWindowSize)
{
Workspace.GetCurrentAnimationStage().stageWindowSize = newStageWindowSize;
{
Workspace.GetCurrentAnimationStage().PlayTimeTicks = newStageWindowSize * StageLoopsNormal;
Workspace.GetCurrentAnimationStage().PlayTimeTicksQuick = newStageWindowSize * StageLoopsQuick;
Workspace.GetCurrentAnimationStage().stageWindowSize = newStageWindowSize;
EventsManager.OnStageWindowSizeChanged(this);
}
@ -121,17 +123,17 @@ namespace RimWorldAnimationStudio
if (lastkeyframe != null)
{
PawnKeyframe keyframeA = lastkeyframe.Copy();
PawnKeyframe keyframeA = lastkeyframe.GetClone();
keyframeA.GenerateKeyframeID(actorID);
keyframeA.atTick = null;
keyframeA.TickDuration = Constants.defaultAnimationClipLength - 1;
keyframeA.GenerateKeyframeID(actorID);
clip.Keyframes.Add(keyframeA);
PawnKeyframe keyframeB = lastkeyframe.Copy();
PawnKeyframe keyframeB = lastkeyframe.GetClone();
keyframeB.GenerateKeyframeID(actorID);
keyframeB.atTick = null;
keyframeB.TickDuration = 1;
keyframeB.GenerateKeyframeID(actorID);
clip.Keyframes.Add(keyframeB);
}
@ -151,6 +153,19 @@ namespace RimWorldAnimationStudio
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
public void OnPreSave()
{

View File

@ -236,7 +236,7 @@ namespace RimWorldAnimationStudio
List<PawnKeyframe> keyframesToClone = Workspace.GetPawnKeyframesByID(Workspace.keyframeID);
foreach (PawnKeyframe keyframe in keyframesToClone)
{ Workspace.copiedKeyframes.Add(keyframe.Copy()); }
{ Workspace.copiedKeyframes.Add(keyframe.GetClone()); }
}
public void PastePawnKeyframes()
@ -273,7 +273,7 @@ namespace RimWorldAnimationStudio
Workspace.GetAnimationClipThatOwnsKeyframe(oldKeyframe.keyframeID).RemovePawnKeyframe(oldKeyframe.keyframeID, true);
}
PawnKeyframe clonedKeyframe = copiedKeyframe.Copy();
PawnKeyframe clonedKeyframe = copiedKeyframe.GetClone();
clonedKeyframe.GenerateKeyframeID(targetActorID);
clonedKeyframe.atTick = tickToPasteAt;
@ -305,13 +305,24 @@ namespace RimWorldAnimationStudio
PawnKeyframe keyframe = Workspace.GetPawnKeyframe(keyframeID);
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);
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();
EventsManager.OnKeyframeCountChanged(this);
@ -323,11 +334,6 @@ namespace RimWorldAnimationStudio
return Keyframes.Any(x => x.keyframeID == keyframeID);
}
public float GetStageTickPercentage()
{
return (float)(Workspace.StageTick % duration) / duration;
}
// Pre-save / post-load
public void OnPreSave()
{

View File

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

View File

@ -23,7 +23,7 @@ namespace RimWorldAnimationStudio
{
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 (Workspace.GetCurrentAnimationStage().IsLooping == false)

View File

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

View File

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

View File

@ -58,6 +58,8 @@ namespace RimWorldAnimationStudio
else
{
Workspace.GetCurrentAnimationStage().ResizeStageWindow(newStageWindowSize);
foreach (PawnAnimationClip clip in Workspace.GetCurrentAnimationStage().AnimationClips)
{
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");
UpdateGUI();

View File

@ -111,7 +111,8 @@ namespace RimWorldAnimationStudio
}
public void OnBeginDrag(PointerEventData eventData)
{
{
// Select key
Workspace.ActorID = actorID;
dragTimeStart = Time.unscaledTime;
dragTickStart = keyframe.atTick.Value;
@ -119,6 +120,12 @@ namespace RimWorldAnimationStudio
if (Workspace.keyframeID.NullOrEmpty() || Workspace.keyframeID.Contains(keyframeID) == false)
{ 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();
// Link other selected keyframes to the movement of this one
@ -134,6 +141,7 @@ namespace RimWorldAnimationStudio
if (unlinkedSlider != null)
{
if (selectedKeyframe.atTick == Constants.minTick) continue;
if (Workspace.stretchKeyframes && unlinkedSlider.keyframe.atTick == pivotKeyframe.atTick) continue;
unlinkedSlider.linkedSlider = this;
@ -147,31 +155,19 @@ namespace RimWorldAnimationStudio
{
Workspace.ActorID = actorID;
// The first keyframe can't be moved
if (keyframe.atTick == Constants.minTick)
{ value = Constants.minTick; return; }
// Sticky drag
if (Time.unscaledTime - dragTimeStart < 0.05f) return;
interactable = true;
base.OnDrag(eventData);
// Snap to nearest keyframe (on another timeline)
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)
{ 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)
{
if (keyframe.atTick == Constants.minTick)
{ value = Constants.minTick; return; }
List<PawnKeyframe> keyframesToCheck = Workspace.GetAllPawnKeyframesAtTick(actorID, keyframe.atTick.Value);
if (keyframesToCheck.NotNullOrEmpty())
{
@ -227,7 +223,7 @@ namespace RimWorldAnimationStudio
{ value = Mathf.CeilToInt(linkedSlider.keyframe.atTick.Value + linkedOffset * linkedSlider.ScaledOffsetFromPivot()); }
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)
{ value = keyframe.atTick.Value; }

View File

@ -89,21 +89,24 @@ namespace RimWorldAnimationStudio
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);
// Get their animation clip and rebuild it to ensure it is up to date
PawnAnimationClip clip = Workspace.GetPawnAnimationClip(actorID);
clip.BuildSimpleCurves();
// Get flags
bool quiver = Workspace.IsAnimating && Workspace.GetCurrentOrPreviousKeyframe(actorID).Quiver == true;
bool requiresGenitals = actor.RequiredGenitals.Any(x => x == "Penis") || actor.IsFucking;
// Get clip percentage
float clipPercent = clip.GetStageTickPercentage();
if (Workspace.StageTick > Constants.minTick && Workspace.StageTick == clip.duration) clipPercent = 1f;
// Get clip percentage
float clipPercent = (float)(Workspace.StageTick % clip.duration) / clip.duration;
if (Workspace.StageTick > Constants.minTick && Workspace.StageTick == clip.duration) clipPercent = 1f;
if (Workspace.GetCurrentAnimationStage().IsLooping == false)
{ clipPercent = (float)Workspace.StageTick / clip.duration; }
// Get the actors race and body type
PawnRaceDef pawnRaceDef = actor.GetPawnRaceDef();
string bodyType = pawnRaceDef.isHumanoid ? actor.bodyType : "None";
@ -188,7 +191,7 @@ namespace RimWorldAnimationStudio
// Play sounds
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)
{ actorBody.GetComponent<AudioController>().PlaySound(keyframe.soundEffect); }

View File

@ -316,8 +316,8 @@ namespace RimWorldAnimationStudio
{
if (Workspace.animationDef == null) return;
ActorBody actorBody = AnimationController.Instance.actorBodies.GetChild(Workspace.ActorID).GetComponent<ActorBody>();
List<ActorBodyPart> actorBodyParts = actorBody.GetComponentsInChildren<ActorBodyPart>().Where(x => x.gameObject.activeInHierarchy)?.ToList();
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();
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
width: 1920
height: 947
m_MinSize: {x: 679, y: 492}
m_MaxSize: {x: 14002, y: 14042}
m_MinSize: {x: 677, y: 492}
m_MaxSize: {x: 14001, y: 14042}
vertical: 0
controlID: 2473
controlID: 3533
--- !u!114 &6
MonoBehaviour:
m_ObjectHideFlags: 52
@ -137,10 +137,10 @@ MonoBehaviour:
y: 0
width: 1414
height: 947
m_MinSize: {x: 403, y: 492}
m_MinSize: {x: 402, y: 492}
m_MaxSize: {x: 10001, y: 14042}
vertical: 1
controlID: 2478
controlID: 3534
--- !u!114 &7
MonoBehaviour:
m_ObjectHideFlags: 52
@ -162,10 +162,10 @@ MonoBehaviour:
y: 0
width: 1414
height: 671
m_MinSize: {x: 403, y: 221}
m_MaxSize: {x: 8003, y: 4021}
m_MinSize: {x: 402, y: 221}
m_MaxSize: {x: 8002, y: 4021}
vertical: 0
controlID: 2479
controlID: 3535
--- !u!114 &8
MonoBehaviour:
m_ObjectHideFlags: 52
@ -398,7 +398,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 28a2feff3ca2feffe2a2feff62fbffff7a3d0000a83d000010410000b4420000
m_ExpandedIDs: 74a0fcff88a0fcff2ea1fcff4cfbffffbc420000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@ -1115,9 +1115,9 @@ MonoBehaviour:
m_IsLocked: 0
m_FolderTreeState:
scrollPos: {x: 0, y: 143}
m_SelectedIDs: 464e0000
m_LastClickedID: 20038
m_ExpandedIDs: 000000003a4e00003c4e00003e4e0000404e0000424e0000444e0000464e0000484e00004a4e00004c4e00004e4e0000504e000000ca9a3b
m_SelectedIDs: 4e4e0000
m_LastClickedID: 20046
m_ExpandedIDs: 00000000424e0000444e0000464e0000484e00004a4e00004c4e00004e4e0000504e0000524e0000544e0000564e0000584e000000ca9a3b
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@ -1145,7 +1145,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 000000003a4e00003c4e00003e4e0000404e0000424e0000444e0000464e0000484e00004a4e00004c4e00004e4e0000504e000000ca9a3b
m_ExpandedIDs: 00000000424e0000444e0000464e0000484e00004a4e00004c4e00004e4e0000504e0000524e0000544e0000564e0000584e000000ca9a3b
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@ -1295,4 +1295,4 @@ MonoBehaviour:
m_PrefName: Preview_InspectorPreview
m_PreviewWindow: {fileID: 0}
m_LastInspectedObjectInstanceID: -1
m_LastVerticalScrollValue: 100
m_LastVerticalScrollValue: 0

View File

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

Binary file not shown.

View File

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