Merge branch 'master' into dev

This commit is contained in:
NathanSweet 2016-11-26 23:51:56 +01:00
commit 66b5f49f2e
203 changed files with 20367 additions and 11661 deletions

View File

@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
## Spine version ## Spine version
spine-as3 works with data exported from Spine 3.4.02. spine-as3 works with data exported from Spine 3.5.xx.
spine-as3 supports all Spine features, including meshes. If using the `spine.flash` classes for rendering, meshes are not supported. spine-as3 supports all Spine features, including meshes. If using the `spine.flash` classes for rendering, meshes are not supported.

View File

@ -14,7 +14,7 @@ com.powerflasher.fdt.core.PassManifests=true
com.powerflasher.fdt.core.PassRsls=false com.powerflasher.fdt.core.PassRsls=false
com.powerflasher.fdt.core.PassSwcs=true com.powerflasher.fdt.core.PassSwcs=true
com.powerflasher.fdt.core.PlatformType=WEB com.powerflasher.fdt.core.PlatformType=WEB
com.powerflasher.fdt.core.PlayerVersion=22.0 com.powerflasher.fdt.core.PlayerVersion=23.0
com.powerflasher.fdt.core.ProjectTypeHint=Web com.powerflasher.fdt.core.ProjectTypeHint=Web
com.powerflasher.fdt.core.Runtime=Flash_Player com.powerflasher.fdt.core.Runtime=Flash_Player
com.powerflasher.fdt.core.SdkName=Flex 4.6.0 com.powerflasher.fdt.core.SdkName=Flex 4.6.0

View File

@ -14,7 +14,7 @@ com.powerflasher.fdt.core.PassManifests=true
com.powerflasher.fdt.core.PassRsls=false com.powerflasher.fdt.core.PassRsls=false
com.powerflasher.fdt.core.PassSwcs=true com.powerflasher.fdt.core.PassSwcs=true
com.powerflasher.fdt.core.PlatformType=WEB com.powerflasher.fdt.core.PlatformType=WEB
com.powerflasher.fdt.core.PlayerVersion=22.0 com.powerflasher.fdt.core.PlayerVersion=23.0
com.powerflasher.fdt.core.ProjectTypeHint=Web com.powerflasher.fdt.core.ProjectTypeHint=Web
com.powerflasher.fdt.core.Runtime=Flash_Player com.powerflasher.fdt.core.Runtime=Flash_Player
com.powerflasher.fdt.core.SdkName=Flex 4.6.0 com.powerflasher.fdt.core.SdkName=Flex 4.6.0

View File

@ -727,7 +727,7 @@ public class SkeletonJson {
import spine.attachments.MeshAttachment; import spine.attachments.MeshAttachment;
internal class LinkedMesh { class LinkedMesh {
internal var parent:String, skin:String; internal var parent:String, skin:String;
internal var slotIndex:int; internal var slotIndex:int;
internal var mesh:MeshAttachment; internal var mesh:MeshAttachment;

View File

@ -95,10 +95,8 @@ public class AnimationState {
next = next.mixingFrom; next = next.mixingFrom;
} }
continue; continue;
} }
updateMixingFrom(current, delta, true);
} else { } else {
updateMixingFrom(current, delta, true);
// Clear the track when there is no next entry, the track end time is reached, and there is no mixingFrom. // Clear the track when there is no next entry, the track end time is reached, and there is no mixingFrom.
if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { if (current.trackLast >= current.trackEnd && current.mixingFrom == null) {
tracks[i] = null; tracks[i] = null;
@ -107,6 +105,7 @@ public class AnimationState {
continue; continue;
} }
} }
updateMixingFrom(current, delta);
current.trackTime += currentDelta; current.trackTime += currentDelta;
} }
@ -114,27 +113,22 @@ public class AnimationState {
queue.drain(); queue.drain();
} }
private function updateMixingFrom (entry:TrackEntry, delta:Number, canEnd:Boolean):void { private function updateMixingFrom (entry:TrackEntry, delta:Number):void {
var from:TrackEntry = entry.mixingFrom; var from:TrackEntry = entry.mixingFrom;
if (from == null) return; if (from == null) return;
updateMixingFrom(from, delta);
if (canEnd && entry.mixTime >= entry.mixDuration && entry.mixTime > 0) { if (entry.mixTime >= entry.mixDuration && from.mixingFrom == null && entry.mixTime > 0) {
entry.mixingFrom = null;
queue.end(from); queue.end(from);
var newFrom:TrackEntry = from.mixingFrom; return;
entry.mixingFrom = newFrom;
if (newFrom == null) return;
entry.mixTime = from.mixTime;
entry.mixDuration = from.mixDuration;
from = newFrom;
} }
from.animationLast = from.nextAnimationLast; from.animationLast = from.nextAnimationLast;
from.trackLast = from.nextTrackLast; from.trackLast = from.nextTrackLast;
var mixingFromDelta:Number = delta * from.timeScale; from.trackTime += delta * from.timeScale;
from.trackTime += mixingFromDelta; entry.mixTime += delta * entry.timeScale;
entry.mixTime += mixingFromDelta;
updateMixingFrom(from, delta, canEnd && from.alpha == 1);
} }
public function apply (skeleton:Skeleton):void { public function apply (skeleton:Skeleton):void {
@ -149,7 +143,10 @@ public class AnimationState {
// Apply mixing from entries first. // Apply mixing from entries first.
var mix:Number = current.alpha; var mix:Number = current.alpha;
if (current.mixingFrom != null) mix *= applyMixingFrom(current, skeleton); if (current.mixingFrom != null)
mix *= applyMixingFrom(current, skeleton);
else if (current.trackTime >= current.trackEnd)
mix = 0;
// Apply current entry. // Apply current entry.
var animationLast:Number = current.animationLast, animationTime:Number = current.getAnimationTime(); var animationLast:Number = current.animationLast, animationTime:Number = current.getAnimationTime();
@ -388,11 +385,11 @@ public class AnimationState {
if (current != null) { if (current != null) {
if (current.nextTrackLast == -1) { if (current.nextTrackLast == -1) {
// Don't mix from an entry that was never applied. // Don't mix from an entry that was never applied.
tracks[trackIndex] = null; tracks[trackIndex] = current.mixingFrom;
queue.interrupt(current); queue.interrupt(current);
queue.end(current); queue.end(current);
disposeNext(current); disposeNext(current);
current = null; current = current.mixingFrom;
} else } else
disposeNext(current); disposeNext(current);
} }

View File

@ -12,7 +12,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
## Spine version ## Spine version
spine-c works with data exported from Spine 3.4.02. spine-c works with data exported from Spine 3.5.xx.
spine-c supports all Spine features. spine-c supports all Spine features.

View File

@ -138,6 +138,9 @@ void spAnimationState_clearListenerNotifications(spAnimationState* self);
float spTrackEntry_getAnimationTime (spTrackEntry* entry); float spTrackEntry_getAnimationTime (spTrackEntry* entry);
/** Use this to dispose static memory before your app exits to appease your memory leak detector*/
void spAnimationState_disposeStatics ();
#ifdef SPINE_SHORT_NAMES #ifdef SPINE_SHORT_NAMES
typedef spEventType EventType; typedef spEventType EventType;
#define ANIMATION_START SP_ANIMATION_START #define ANIMATION_START SP_ANIMATION_START

View File

@ -611,7 +611,7 @@ void _spAttachmentTimeline_apply (const spTimeline* timeline, spSkeleton* skelet
if (mixingOut && setupPose) { if (mixingOut && setupPose) {
const char* attachmentName = slot->data->attachmentName; const char* attachmentName = slot->data->attachmentName;
spSlot_setAttachment(slot, attachmentName ? 0 : spSkeleton_getAttachmentForSlotIndex(skeleton, self->slotIndex, attachmentName)); spSlot_setAttachment(slot, attachmentName ? spSkeleton_getAttachmentForSlotIndex(skeleton, self->slotIndex, attachmentName) : 0);
return; return;
} }

View File

@ -33,12 +33,16 @@
#include <limits.h> #include <limits.h>
static spAnimation* SP_EMPTY_ANIMATION = 0; static spAnimation* SP_EMPTY_ANIMATION = 0;
void spAnimationState_disposeStatics () {
if (SP_EMPTY_ANIMATION) spAnimation_dispose(SP_EMPTY_ANIMATION);
SP_EMPTY_ANIMATION = 0;
}
/* Forward declaration of some "private" functions so we can keep /* Forward declaration of some "private" functions so we can keep
the same function order in C as we have method order in Java */ the same function order in C as we have method order in Java */
void _spAnimationState_disposeTrackEntry (spTrackEntry* entry); void _spAnimationState_disposeTrackEntry (spTrackEntry* entry);
void _spAnimationState_disposeTrackEntries (spAnimationState* state, spTrackEntry* entry); void _spAnimationState_disposeTrackEntries (spAnimationState* state, spTrackEntry* entry);
void _spAnimationState_updateMixingFrom (spAnimationState* self, spTrackEntry* entry, float delta, int /*boolean*/ canEnd); void _spAnimationState_updateMixingFrom (spAnimationState* self, spTrackEntry* entry, float delta);
float _spAnimationState_applyMixingFrom (spAnimationState* self, spTrackEntry* entry, spSkeleton* skeleton); float _spAnimationState_applyMixingFrom (spAnimationState* self, spTrackEntry* entry, spSkeleton* skeleton);
void _spAnimationState_applyRotateTimeline (spAnimationState* self, spTimeline* timeline, spSkeleton* skeleton, float time, float alpha, int /*boolean*/ setupPose, float* timelinesRotation, int i, int /*boolean*/ firstFrame); void _spAnimationState_applyRotateTimeline (spAnimationState* self, spTimeline* timeline, spSkeleton* skeleton, float time, float alpha, int /*boolean*/ setupPose, float* timelinesRotation, int i, int /*boolean*/ firstFrame);
void _spAnimationState_queueEvents (spAnimationState* self, spTrackEntry* entry, float animationTime); void _spAnimationState_queueEvents (spAnimationState* self, spTrackEntry* entry, float animationTime);
@ -67,6 +71,7 @@ _spEventQueue* _spEventQueue_create (_spAnimationState* state) {
void _spEventQueue_free (_spEventQueue* self) { void _spEventQueue_free (_spEventQueue* self) {
FREE(self->objects); FREE(self->objects);
FREE(self);
} }
void _spEventQueue_ensureCapacity (_spEventQueue* self, int newElements) { void _spEventQueue_ensureCapacity (_spEventQueue* self, int newElements) {
@ -74,7 +79,7 @@ void _spEventQueue_ensureCapacity (_spEventQueue* self, int newElements) {
_spEventQueueItem* newObjects; _spEventQueueItem* newObjects;
self->objectsCapacity <<= 1; self->objectsCapacity <<= 1;
newObjects = CALLOC(_spEventQueueItem, self->objectsCapacity); newObjects = CALLOC(_spEventQueueItem, self->objectsCapacity);
memcpy(newObjects, self->objects, self->objectsCount); memcpy(newObjects, self->objects, sizeof(_spEventQueueItem) * self->objectsCount);
FREE(self->objects); FREE(self->objects);
self->objects = newObjects; self->objects = newObjects;
} }
@ -152,8 +157,8 @@ void _spEventQueue_drain (_spEventQueue* self) {
if (self->state->super.listener) self->state->super.listener(SUPER(self->state), type, entry, 0); if (self->state->super.listener) self->state->super.listener(SUPER(self->state), type, entry, 0);
/* Fall through. */ /* Fall through. */
case SP_ANIMATION_DISPOSE: case SP_ANIMATION_DISPOSE:
if (entry->listener) entry->listener(SUPER(self->state), type, entry, 0); if (entry->listener) entry->listener(SUPER(self->state), SP_ANIMATION_DISPOSE, entry, 0);
if (self->state->super.listener) self->state->super.listener(SUPER(self->state), type, entry, 0); if (self->state->super.listener) self->state->super.listener(SUPER(self->state), SP_ANIMATION_DISPOSE, entry, 0);
_spAnimationState_disposeTrackEntry(entry); _spAnimationState_disposeTrackEntry(entry);
break; break;
case SP_ANIMATION_EVENT: case SP_ANIMATION_EVENT:
@ -170,6 +175,9 @@ void _spEventQueue_drain (_spEventQueue* self) {
} }
void _spAnimationState_disposeTrackEntry (spTrackEntry* entry) { void _spAnimationState_disposeTrackEntry (spTrackEntry* entry) {
if (entry->mixingFrom) _spAnimationState_disposeTrackEntry(entry->mixingFrom);
FREE(entry->timelinesFirst);
FREE(entry->timelinesRotation);
FREE(entry); FREE(entry);
} }
@ -214,6 +222,7 @@ void spAnimationState_dispose (spAnimationState* self) {
_spEventQueue_free(internal->queue); _spEventQueue_free(internal->queue);
FREE(internal->events); FREE(internal->events);
FREE(internal->propertyIDs); FREE(internal->propertyIDs);
FREE(internal);
} }
void spAnimationState_update (spAnimationState* self, float delta) { void spAnimationState_update (spAnimationState* self, float delta) {
@ -253,9 +262,7 @@ void spAnimationState_update (spAnimationState* self, float delta) {
} }
continue; continue;
} }
_spAnimationState_updateMixingFrom(self, current, delta, 1);
} else { } else {
_spAnimationState_updateMixingFrom(self, current, delta, 1);
/* Clear the track when there is no next entry, the track end time is reached, and there is no mixingFrom. */ /* Clear the track when there is no next entry, the track end time is reached, and there is no mixingFrom. */
if (current->trackLast >= current->trackEnd && current->mixingFrom == 0) { if (current->trackLast >= current->trackEnd && current->mixingFrom == 0) {
self->tracks[i] = 0; self->tracks[i] = 0;
@ -264,6 +271,7 @@ void spAnimationState_update (spAnimationState* self, float delta) {
continue; continue;
} }
} }
_spAnimationState_updateMixingFrom(self, current, delta);
current->trackTime += currentDelta; current->trackTime += currentDelta;
} }
@ -271,30 +279,23 @@ void spAnimationState_update (spAnimationState* self, float delta) {
_spEventQueue_drain(internal->queue); _spEventQueue_drain(internal->queue);
} }
void _spAnimationState_updateMixingFrom (spAnimationState* self, spTrackEntry* entry, float delta, int /*boolean*/ canEnd) { void _spAnimationState_updateMixingFrom (spAnimationState* self, spTrackEntry* entry, float delta) {
spTrackEntry* from = entry->mixingFrom; spTrackEntry* from = entry->mixingFrom;
spTrackEntry* newFrom;
float mixingFromDelta;
_spAnimationState* internal = SUB_CAST(_spAnimationState, self); _spAnimationState* internal = SUB_CAST(_spAnimationState, self);
if (!from) return; if (!from) return;
_spAnimationState_updateMixingFrom(self, from, delta);
if (canEnd && entry->mixTime >= entry->mixDuration && entry->mixTime > 0) { if (entry->mixTime >= entry->mixDuration && from->mixingFrom == 0 && entry->mixTime > 0) {
entry->mixingFrom = 0;
_spEventQueue_end(internal->queue, from); _spEventQueue_end(internal->queue, from);
newFrom = from->mixingFrom; return;
entry->mixingFrom = newFrom;
if (!newFrom) return;
entry->mixTime = from->mixTime;
entry->mixDuration = from->mixDuration;
from = newFrom;
} }
from->animationLast = from->nextAnimationLast; from->animationLast = from->nextAnimationLast;
from->trackLast = from->nextTrackLast; from->trackLast = from->nextTrackLast;
mixingFromDelta = delta * from->timeScale; from->trackTime += delta * from->timeScale;
from->trackTime += mixingFromDelta; entry->mixTime += delta * entry->timeScale;
entry->mixTime += mixingFromDelta;
_spAnimationState_updateMixingFrom(self, from, delta, canEnd && from->alpha == 1);
} }
void spAnimationState_apply (spAnimationState* self, spSkeleton* skeleton) { void spAnimationState_apply (spAnimationState* self, spSkeleton* skeleton) {
@ -318,7 +319,10 @@ void spAnimationState_apply (spAnimationState* self, spSkeleton* skeleton) {
/* Apply mixing from entries first. */ /* Apply mixing from entries first. */
mix = current->alpha; mix = current->alpha;
if (current->mixingFrom) mix *= _spAnimationState_applyMixingFrom(self, current, skeleton); if (current->mixingFrom)
mix *= _spAnimationState_applyMixingFrom(self, current, skeleton);
else if (current->trackTime >= current->trackEnd)
mix = 0;
/* Apply current entry. */ /* Apply current entry. */
animationLast = current->animationLast; animationTime = spTrackEntry_getAnimationTime(current); animationLast = current->animationLast; animationTime = spTrackEntry_getAnimationTime(current);
@ -593,11 +597,11 @@ spTrackEntry* spAnimationState_setAnimation (spAnimationState* self, int trackIn
if (current) { if (current) {
if (current->nextTrackLast == -1) { if (current->nextTrackLast == -1) {
/* Don't mix from an entry that was never applied. */ /* Don't mix from an entry that was never applied. */
self->tracks[trackIndex] = 0; self->tracks[trackIndex] = current->mixingFrom;
_spEventQueue_interrupt(internal->queue, current); _spEventQueue_interrupt(internal->queue, current);
_spEventQueue_end(internal->queue, current); _spEventQueue_end(internal->queue, current);
_spAnimationState_disposeNext(self, current); _spAnimationState_disposeNext(self, current);
current = 0; current = current->mixingFrom;
} else } else
_spAnimationState_disposeNext(self, current); _spAnimationState_disposeNext(self, current);
} }
@ -771,7 +775,7 @@ void _spAnimationState_ensureCapacityPropertyIDs(spAnimationState* self, int cap
_spAnimationState* internal = SUB_CAST(_spAnimationState, self); _spAnimationState* internal = SUB_CAST(_spAnimationState, self);
if (internal->propertyIDsCapacity < capacity) { if (internal->propertyIDsCapacity < capacity) {
int *newPropertyIDs = CALLOC(int, capacity << 1); int *newPropertyIDs = CALLOC(int, capacity << 1);
memcpy(newPropertyIDs, internal->propertyIDs, internal->propertyIDsCount); memcpy(newPropertyIDs, internal->propertyIDs, sizeof(int) * internal->propertyIDsCount);
FREE(internal->propertyIDs); FREE(internal->propertyIDs);
internal->propertyIDs = newPropertyIDs; internal->propertyIDs = newPropertyIDs;
internal->propertyIDsCapacity = capacity << 1; internal->propertyIDsCapacity = capacity << 1;
@ -788,6 +792,7 @@ int _spAnimationState_addPropertyID(spAnimationState* self, int id) {
_spAnimationState_ensureCapacityPropertyIDs(self, internal->propertyIDsCount + 1); _spAnimationState_ensureCapacityPropertyIDs(self, internal->propertyIDsCount + 1);
internal->propertyIDs[internal->propertyIDsCount] = id; internal->propertyIDs[internal->propertyIDsCount] = id;
internal->propertyIDsCount++;
return 1; return 1;
} }

View File

@ -112,7 +112,7 @@ void spSkeletonBounds_update (spSkeletonBounds* self, spSkeleton* skeleton, int/
self->boundingBoxes = MALLOC(spBoundingBoxAttachment*, skeleton->slotsCount); self->boundingBoxes = MALLOC(spBoundingBoxAttachment*, skeleton->slotsCount);
newPolygons = CALLOC(spPolygon*, skeleton->slotsCount); newPolygons = CALLOC(spPolygon*, skeleton->slotsCount);
memcpy(newPolygons, self->polygons, internal->capacity); memcpy(newPolygons, self->polygons, sizeof(spPolygon*) * internal->capacity);
FREE(self->polygons); FREE(self->polygons);
self->polygons = newPolygons; self->polygons = newPolygons;

View File

@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
## Spine version ## Spine version
spine-cocos2d-objc works with data exported from Spine 3.4.02. spine-cocos2d-objc works with data exported from Spine 3.5.xx.
spine-cocos2d-objc supports all Spine features. spine-cocos2d-objc supports all Spine features.

View File

@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
## Spine version ## Spine version
spine-cocos2dx works with data exported from Spine 3.4.02. spine-cocos2dx works with data exported from Spine 3.5.xx.
spine-cocos2dx supports all Spine features. spine-cocos2dx supports all Spine features.

View File

@ -64,11 +64,11 @@ bool SpineboyExample::init () {
log("%d event: %s, %d, %f, %s", entry->trackIndex, event->data->name, event->intValue, event->floatValue, event->stringValue); log("%d event: %s, %d, %f, %s", entry->trackIndex, event->data->name, event->intValue, event->floatValue, event->stringValue);
}); });
skeletonNode->setMix("walk", "jump", 0.2f); skeletonNode->setMix("walk", "jump", 0.4);
skeletonNode->setMix("jump", "run", 0.2f); skeletonNode->setMix("jump", "run", 0.4);
skeletonNode->setAnimation(0, "walk", true); skeletonNode->setAnimation(0, "walk", true);
spTrackEntry* jumpEntry = skeletonNode->addAnimation(0, "jump", false, 3); spTrackEntry* jumpEntry = skeletonNode->addAnimation(0, "jump", false, 1);
skeletonNode->addAnimation(0, "run", true); skeletonNode->addAnimation(0, "run", true);
skeletonNode->setTrackStartListener(jumpEntry, [] (spTrackEntry* entry) { skeletonNode->setTrackStartListener(jumpEntry, [] (spTrackEntry* entry) {
log("jumped!"); log("jumped!");

View File

@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
## Spine version ## Spine version
spine-corona works with data exported from Spine 3.4.02. spine-corona works with data exported from Spine 3.5.xx.
spine-corona supports all Spine features. spine-corona supports all Spine features.

View File

@ -61,7 +61,15 @@ function loadSkeleton(atlasFile, jsonFile, x, y, scale, animation, skin)
print(entry.trackIndex.." event: "..entry.animation.name..", "..event.data.name..", "..event.intValue..", "..event.floatValue..", '"..(event.stringValue or "").."'") print(entry.trackIndex.." event: "..entry.animation.name..", "..event.data.name..", "..event.intValue..", "..event.floatValue..", '"..(event.stringValue or "").."'")
end end
animationState:setAnimationByName(0, animation, true) if atlasFile == "spineboy.atlas" then
animationStateData:setMix("walk", "jump", 0.4)
animationStateData:setMix("jump", "run", 0.4);
animationState:setAnimationByName(0, "walk", true)
local jumpEntry = animationState:addAnimationByName(0, "jump", false, 3)
animationState:addAnimationByName(0, "run", true, 0)
else
animationState:setAnimationByName(0, animation, true)
end
-- return the skeleton an animation state -- return the skeleton an animation state
return { skeleton = skeleton, state = animationState } return { skeleton = skeleton, state = animationState }

View File

@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
## Spine version ## Spine version
spine-csharp works with data exported from Spine 3.5.x. spine-csharp works with data exported from Spine 3.5.xx.
spine-csharp supports all Spine features. spine-csharp supports all Spine features.

View File

@ -581,7 +581,7 @@ namespace Spine {
} }
float[] frames = this.frames; float[] frames = this.frames;
if (time < frames[0]) { if (time < frames[0]) { // Time is before first frame.
if (setupPose) { if (setupPose) {
attachmentName = slot.data.attachmentName; attachmentName = slot.data.attachmentName;
slot.Attachment = attachmentName == null ? null : skeleton.GetAttachment(slotIndex, attachmentName); slot.Attachment = attachmentName == null ? null : skeleton.GetAttachment(slotIndex, attachmentName);

View File

@ -102,9 +102,7 @@ namespace Spine {
} }
continue; continue;
} }
UpdateMixingFrom(current, delta, true);
} else { } else {
UpdateMixingFrom(current, delta, true);
// Clear the track when there is no next entry, the track end time is reached, and there is no mixingFrom. // Clear the track when there is no next entry, the track end time is reached, and there is no mixingFrom.
if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { if (current.trackLast >= current.trackEnd && current.mixingFrom == null) {
tracksItems[i] = null; tracksItems[i] = null;
@ -113,6 +111,7 @@ namespace Spine {
continue; continue;
} }
} }
UpdateMixingFrom(current, delta);
current.trackTime += currentDelta; current.trackTime += currentDelta;
} }
@ -120,27 +119,22 @@ namespace Spine {
queue.Drain(); queue.Drain();
} }
private void UpdateMixingFrom (TrackEntry entry, float delta, bool canEnd) { private void UpdateMixingFrom (TrackEntry entry, float delta) {
TrackEntry from = entry.mixingFrom; TrackEntry from = entry.mixingFrom;
if (from == null) return; if (from == null) return;
if (canEnd && entry.mixTime >= entry.mixDuration && entry.mixTime > 0) { UpdateMixingFrom(from, delta);
if (entry.mixTime >= entry.mixDuration && from.mixingFrom == null && entry.mixTime > 0) {
entry.mixingFrom = null;
queue.End(from); queue.End(from);
TrackEntry newFrom = from.mixingFrom; return;
entry.mixingFrom = newFrom;
if (newFrom == null) return;
entry.mixTime = from.mixTime;
entry.mixDuration = from.mixDuration;
from = newFrom;
} }
from.animationLast = from.nextAnimationLast; from.animationLast = from.nextAnimationLast;
from.trackLast = from.nextTrackLast; from.trackLast = from.nextTrackLast;
float mixingFromDelta = delta * from.timeScale; from.trackTime += delta * from.timeScale;
from.trackTime += mixingFromDelta; entry.mixTime += delta * entry.timeScale;
entry.mixTime += mixingFromDelta;
UpdateMixingFrom(from, delta, canEnd && from.alpha == 1);
} }
@ -160,7 +154,10 @@ namespace Spine {
// Apply mixing from entries first. // Apply mixing from entries first.
float mix = current.alpha; float mix = current.alpha;
if (current.mixingFrom != null) mix *= ApplyMixingFrom(current, skeleton); if (current.mixingFrom != null)
mix *= ApplyMixingFrom(current, skeleton);
else if (current.trackTime >= current.trackEnd) //
mix = 0; // Set to setup pose the last time the entry will be applied.
// Apply current entry. // Apply current entry.
float animationLast = current.animationLast, animationTime = current.AnimationTime; float animationLast = current.animationLast, animationTime = current.AnimationTime;
@ -228,7 +225,7 @@ namespace Spine {
if (rotateTimeline != null) { if (rotateTimeline != null) {
ApplyRotateTimeline(rotateTimeline, skeleton, animationTime, alpha, setupPose, timelinesRotation, i << 1, firstFrame); ApplyRotateTimeline(rotateTimeline, skeleton, animationTime, alpha, setupPose, timelinesRotation, i << 1, firstFrame);
} else { } else {
if (setupPose) { if (!setupPose) {
if (!attachments && timeline is AttachmentTimeline) continue; if (!attachments && timeline is AttachmentTimeline) continue;
if (!drawOrder && timeline is DrawOrderTimeline) continue; if (!drawOrder && timeline is DrawOrderTimeline) continue;
} }
@ -236,7 +233,7 @@ namespace Spine {
} }
} }
QueueEvents(entry, animationTime); QueueEvents(from, animationTime);
from.nextAnimationLast = animationTime; from.nextAnimationLast = animationTime;
from.nextTrackLast = from.trackTime; from.nextTrackLast = from.trackTime;
@ -420,11 +417,11 @@ namespace Spine {
if (current != null) { if (current != null) {
if (current.nextTrackLast == -1) { if (current.nextTrackLast == -1) {
// Don't mix from an entry that was never applied. // Don't mix from an entry that was never applied.
tracks.Items[trackIndex] = null; tracks.Items[trackIndex] = current.mixingFrom;
queue.Interrupt(current); queue.Interrupt(current);
queue.End(current); queue.End(current);
DisposeNext(current); DisposeNext(current);
current = null; current = current.mixingFrom;
} else { } else {
DisposeNext(current); DisposeNext(current);
} }
@ -686,11 +683,11 @@ namespace Spine {
/// <summary> /// <summary>
/// The track time in seconds when this animation will be removed from the track. Defaults to the animation duration for /// The track time in seconds when this animation will be removed from the track. Defaults to the animation duration for
/// non-looping animations and to <see cref="int.MaxValue"/> for looping animations. If the track end time is reached and no /// non-looping animations and to <see cref="int.MaxValue"/> for looping animations. If the track end time is reached and no
/// other animations are queued for playback, and mixing from any previous animations is complete, then the track is cleared, /// other animations are queued for playback, and mixing from any previous animations is complete, properties keyed by the animation,
/// leaving skeletons in their previous pose. /// are set to the setup pose and the track is cleared.
/// ///
/// It may be desired to use <see cref="AnimationState.AddEmptyAnimation(int, float, float)"/> to mix the skeletons back to the /// It may be desired to use <see cref="AnimationState.AddEmptyAnimation(int, float, float)"/> to mix the properties back to the
/// setup pose, rather than leaving them in their previous pose. /// setup pose over time, rather than have it happen instantly.
/// </summary> /// </summary>
public float TrackEnd { get { return trackEnd; } set { trackEnd = value; } } public float TrackEnd { get { return trackEnd; } set { trackEnd = value; } }

View File

@ -82,7 +82,7 @@ namespace Spine {
} }
if (updateAabb) { if (updateAabb) {
aabbCompute(); AabbCompute();
} else { } else {
minX = int.MinValue; minX = int.MinValue;
minY = int.MinValue; minY = int.MinValue;
@ -91,7 +91,7 @@ namespace Spine {
} }
} }
private void aabbCompute () { private void AabbCompute () {
float minX = int.MaxValue, minY = int.MaxValue, maxX = int.MinValue, maxY = int.MinValue; float minX = int.MaxValue, minY = int.MaxValue, maxX = int.MinValue, maxY = int.MinValue;
ExposedList<Polygon> polygons = Polygons; ExposedList<Polygon> polygons = Polygons;
for (int i = 0, n = polygons.Count; i < n; i++) { for (int i = 0, n = polygons.Count; i < n; i++) {
@ -204,7 +204,7 @@ namespace Spine {
return false; return false;
} }
public Polygon getPolygon (BoundingBoxAttachment attachment) { public Polygon GetPolygon (BoundingBoxAttachment attachment) {
int index = BoundingBoxes.IndexOf(attachment); int index = BoundingBoxes.IndexOf(attachment);
return index == -1 ? null : Polygons.Items[index]; return index == -1 ? null : Polygons.Items[index];
} }

View File

@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
## Spine version ## Spine version
spine-libgdx works with data exported from Spine 3.4.02. spine-libgdx works with data exported from Spine 3.5.xx.
spine-libgdx supports all Spine features and is the reference runtime implementation. spine-libgdx supports all Spine features and is the reference runtime implementation.

View File

@ -650,8 +650,8 @@ public class AnimationStateTests {
expect(0, "end", 0.8f, 0.9f), // expect(0, "end", 0.8f, 0.9f), //
expect(0, "dispose", 0.8f, 0.9f), // expect(0, "dispose", 0.8f, 0.9f), //
expect(-1, "end", 0.1f, 0.9f), // expect(-1, "end", 0.2f, 1), //
expect(-1, "dispose", 0.1f, 0.9f) // expect(-1, "dispose", 0.2f, 1) //
); );
state.addAnimation(0, "events1", false, 0); state.addAnimation(0, "events1", false, 0);
run(0.1f, 10, new TestListener() { run(0.1f, 10, new TestListener() {

View File

@ -108,9 +108,7 @@ public class AnimationState {
} }
continue; continue;
} }
updateMixingFrom(current, delta, true);
} else { } else {
updateMixingFrom(current, delta, true);
// Clear the track when there is no next entry, the track end time is reached, and there is no mixingFrom. // Clear the track when there is no next entry, the track end time is reached, and there is no mixingFrom.
if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { if (current.trackLast >= current.trackEnd && current.mixingFrom == null) {
tracks.set(i, null); tracks.set(i, null);
@ -119,6 +117,7 @@ public class AnimationState {
continue; continue;
} }
} }
updateMixingFrom(current, delta);
current.trackTime += currentDelta; current.trackTime += currentDelta;
} }
@ -126,27 +125,22 @@ public class AnimationState {
queue.drain(); queue.drain();
} }
private void updateMixingFrom (TrackEntry entry, float delta, boolean canEnd) { private void updateMixingFrom (TrackEntry entry, float delta) {
TrackEntry from = entry.mixingFrom; TrackEntry from = entry.mixingFrom;
if (from == null) return; if (from == null) return;
if (canEnd && entry.mixTime >= entry.mixDuration && entry.mixTime > 0) { updateMixingFrom(from, delta);
if (entry.mixTime >= entry.mixDuration && from.mixingFrom == null && entry.mixTime > 0) {
entry.mixingFrom = null;
queue.end(from); queue.end(from);
TrackEntry newFrom = from.mixingFrom; return;
entry.mixingFrom = newFrom;
if (newFrom == null) return;
entry.mixTime = from.mixTime;
entry.mixDuration = from.mixDuration;
from = newFrom;
} }
from.animationLast = from.nextAnimationLast; from.animationLast = from.nextAnimationLast;
from.trackLast = from.nextTrackLast; from.trackLast = from.nextTrackLast;
float mixingFromDelta = delta * from.timeScale; from.trackTime += delta * from.timeScale;
from.trackTime += mixingFromDelta; entry.mixTime += delta * entry.timeScale;
entry.mixTime += mixingFromDelta;
updateMixingFrom(from, delta, canEnd && from.alpha == 1);
} }
/** Poses the skeleton using the track entry animations. There are no side effects other than invoking listeners, so the /** Poses the skeleton using the track entry animations. There are no side effects other than invoking listeners, so the
@ -163,7 +157,10 @@ public class AnimationState {
// Apply mixing from entries first. // Apply mixing from entries first.
float mix = current.alpha; float mix = current.alpha;
if (current.mixingFrom != null) mix *= applyMixingFrom(current, skeleton); if (current.mixingFrom != null)
mix *= applyMixingFrom(current, skeleton);
else if (current.trackTime >= current.trackEnd) //
mix = 0; // Set to setup pose the last time the entry will be applied.
// Apply current entry. // Apply current entry.
float animationLast = current.animationLast, animationTime = current.getAnimationTime(); float animationLast = current.animationLast, animationTime = current.getAnimationTime();
@ -413,11 +410,11 @@ public class AnimationState {
if (current != null) { if (current != null) {
if (current.nextTrackLast == -1) { if (current.nextTrackLast == -1) {
// Don't mix from an entry that was never applied. // Don't mix from an entry that was never applied.
tracks.set(trackIndex, null); tracks.set(trackIndex, current.mixingFrom);
queue.interrupt(current); queue.interrupt(current);
queue.end(current); queue.end(current);
disposeNext(current); disposeNext(current);
current = null; current = current.mixingFrom;
} else } else
disposeNext(current); disposeNext(current);
} }
@ -755,10 +752,10 @@ public class AnimationState {
/** The track time in seconds when this animation will be removed from the track. Defaults to the animation /** The track time in seconds when this animation will be removed from the track. Defaults to the animation
* {@link Animation#duration} for non-looping animations and the highest float possible for looping animations. If the track * {@link Animation#duration} for non-looping animations and the highest float possible for looping animations. If the track
* end time is reached, no other animations are queued for playback, and mixing from any previous animations is complete, * end time is reached, no other animations are queued for playback, and mixing from any previous animations is complete,
* then the track is cleared, leaving skeletons in their previous pose. * then the properties keyed by the animation are set to the setup pose and the track is cleared.
* <p> * <p>
* It may be desired to use {@link AnimationState#addEmptyAnimation(int, float, float)} to mix the skeletons back to the * It may be desired to use {@link AnimationState#addEmptyAnimation(int, float, float)} to mix the properties back to the
* setup pose, rather than leaving them in their previous pose. */ * setup pose over time, rather than have it happen instantly. */
public float getTrackEnd () { public float getTrackEnd () {
return trackEnd; return trackEnd;
} }

View File

@ -51,7 +51,7 @@ public class SkeletonData {
String version, hash; String version, hash;
// Nonessential. // Nonessential.
float fps; float fps = 30;
String imagesPath; String imagesPath;
// --- Bones. // --- Bones.

View File

@ -117,7 +117,7 @@ public class SkeletonJson {
skeletonData.version = skeletonMap.getString("spine", null); skeletonData.version = skeletonMap.getString("spine", null);
skeletonData.width = skeletonMap.getFloat("width", 0); skeletonData.width = skeletonMap.getFloat("width", 0);
skeletonData.height = skeletonMap.getFloat("height", 0); skeletonData.height = skeletonMap.getFloat("height", 0);
skeletonData.fps = skeletonMap.getFloat("fps", 0); skeletonData.fps = skeletonMap.getFloat("fps", 30);
skeletonData.imagesPath = skeletonMap.getString("images", null); skeletonData.imagesPath = skeletonMap.getString("images", null);
} }

View File

@ -227,10 +227,8 @@ public class SkeletonViewer extends ApplicationAdapter {
state.setEmptyAnimation(track, 0); state.setEmptyAnimation(track, 0);
entry = state.addAnimation(track, ui.animationList.getSelected(), ui.loopCheckbox.isChecked(), 0); entry = state.addAnimation(track, ui.animationList.getSelected(), ui.loopCheckbox.isChecked(), 0);
entry.setMixDuration(ui.mixSlider.getValue()); entry.setMixDuration(ui.mixSlider.getValue());
entry.setTrackEnd(Integer.MAX_VALUE);
} else { } else {
entry = state.setAnimation(track, ui.animationList.getSelected(), ui.loopCheckbox.isChecked()); entry = state.setAnimation(track, ui.animationList.getSelected(), ui.loopCheckbox.isChecked());
entry.setTrackEnd(Integer.MAX_VALUE);
} }
entry.setAlpha(ui.alphaSlider.getValue()); entry.setAlpha(ui.alphaSlider.getValue());
} }
@ -597,7 +595,10 @@ public class SkeletonViewer extends ApplicationAdapter {
int track = trackButtons.getCheckedIndex(); int track = trackButtons.getCheckedIndex();
if (track > 0) { if (track > 0) {
TrackEntry current = state.getCurrent(track); TrackEntry current = state.getCurrent(track);
if (current != null) current.setAlpha(alphaSlider.getValue()); if (current != null) {
current.setAlpha(alphaSlider.getValue());
current.resetRotationDirections();
}
} }
} }
}); });
@ -702,6 +703,12 @@ public class SkeletonViewer extends ApplicationAdapter {
} }
void render () { void render () {
if (state.getCurrent(ui.trackButtons.getCheckedIndex()) == null) {
ui.animationList.getSelection().setProgrammaticChangeEvents(false);
ui.animationList.setSelected(null);
ui.animationList.getSelection().setProgrammaticChangeEvents(true);
}
statusLabel.pack(); statusLabel.pack();
if (minimizeButton.isChecked()) if (minimizeButton.isChecked())
statusLabel.setPosition(10, 25, Align.bottom | Align.left); statusLabel.setPosition(10, 25, Align.bottom | Align.left);

View File

@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
## Spine version ## Spine version
spine-love works with data exported from Spine 3.4.02. spine-love works with data exported from Spine 3.5.xx.
spine-love supports all Spine features except for blending modes other than normal. spine-love supports all Spine features except for blending modes other than normal.

View File

@ -581,7 +581,7 @@ function Animation.AttachmentTimeline.new (frameCount)
end end
function self:getPropertyId () function self:getPropertyId ()
return Timeline.attachment * SHL_24 + self.slotIndex return TimelineType.attachment * SHL_24 + self.slotIndex
end end
function self:apply (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut) function self:apply (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut)
@ -592,7 +592,7 @@ function Animation.AttachmentTimeline.new (frameCount)
if not attachmentName then if not attachmentName then
slot:setAttachment(nil) slot:setAttachment(nil)
else else
skeleton:setAttachment(skeleton:getAttachmentByIndex(self.slotIndex, attachmentName)) slot:setAttachment(skeleton:getAttachmentByIndex(self.slotIndex, attachmentName))
end end
return; return;
end end
@ -604,7 +604,7 @@ function Animation.AttachmentTimeline.new (frameCount)
if not attachmentName then if not attachmentName then
slot:setAttachment(nil) slot:setAttachment(nil)
else else
skeleton:setAttachment(skeleton:getAttachmentByIndex(self.slotIndex, attachmentName)) slot:setAttachment(skeleton:getAttachmentByIndex(self.slotIndex, attachmentName))
end end
end end
return return
@ -619,9 +619,9 @@ function Animation.AttachmentTimeline.new (frameCount)
attachmentName = self.attachmentNames[frameIndex] attachmentName = self.attachmentNames[frameIndex]
if not attachmentName then if not attachmentName then
skeleton.slots[self.slotIndex]:setAttachment(nil) slot:setAttachment(nil)
else else
skeleton.slots[self.slotIndex]:setAttachment(skeleton:getAttachmentByIndex(self.slotIndex, attachmentName)) slot:setAttachment(skeleton:getAttachmentByIndex(self.slotIndex, attachmentName))
end end
end end
@ -767,7 +767,7 @@ function Animation.EventTimeline.new (frameCount)
} }
function self:getPropertyId () function self:getPropertyId ()
return Timeline.event * SHL_24 return TimelineType.event * SHL_24
end end
function self:getFrameCount () function self:getFrameCount ()
@ -824,7 +824,7 @@ function Animation.DrawOrderTimeline.new (frameCount)
} }
function self:getPropertyId () function self:getPropertyId ()
return Timeline.drawOrder * SHL_24 return TimelineType.drawOrder * SHL_24
end end
function self:getFrameCount () function self:getFrameCount ()

View File

@ -232,26 +232,22 @@ function AnimationState:update (delta)
end end
if not skip then if not skip then
local next = current.next local _next = current.next
if next then if _next then
-- When the next entry's delay is passed, change to the next entry, preserving leftover time. -- When the next entry's delay is passed, change to the next entry, preserving leftover time.
local nextTime = current.trackLast - next.delay local nextTime = current.trackLast - _next.delay
if nextTime >= 0 then if nextTime >= 0 then
next.delay = 0 _next.delay = 0
next.trackTime = nextTime + delta * next.timeScale _next.trackTime = nextTime + delta * _next.timeScale
current.trackTime = current.trackTime + currentDelta current.trackTime = current.trackTime + currentDelta
self:setCurrent(i, next) self:setCurrent(i, _next)
while next.mixingFrom do while _next.mixingFrom do
next.mixTime = next.mixTime + currentDelta _next.mixTime = _next.mixTime + currentDelta
next = next.mixingFrom _next = _next.mixingFrom
end end
skip = true skip = true
end end
if not skip then
self:updateMixingFrom(current, delta, true);
end
else else
self:updateMixingFrom(current, delta, true)
-- Clear the track when there is no next entry, the track end time is reached, and there is no mixingFrom. -- Clear the track when there is no next entry, the track end time is reached, and there is no mixingFrom.
if current.trackLast >= current.trackEnd and current.mixingFrom == nil then if current.trackLast >= current.trackEnd and current.mixingFrom == nil then
tracks[i] = nil tracks[i] = nil
@ -261,7 +257,10 @@ function AnimationState:update (delta)
end end
end end
if not skip then current.trackTime = current.trackTime + currentDelta end if not skip then
self:updateMixingFrom(current, delta)
current.trackTime = current.trackTime + currentDelta
end
end end
end end
end end
@ -269,28 +268,23 @@ function AnimationState:update (delta)
queue:drain() queue:drain()
end end
function AnimationState:updateMixingFrom (entry, delta, canEnd) function AnimationState:updateMixingFrom (entry, delta)
local from = entry.mixingFrom local from = entry.mixingFrom
if from == nil then return end if from == nil then return end
self:updateMixingFrom(from, delta)
local queue = self.queue local queue = self.queue
if canEnd and entry.mixTime >= entry.mixDuration and entry.mixTime > 0 then if entry.mixTime >= entry.mixDuration and from.mixingFrom == nil and entry.mixTime > 0 then
entry.mixingFrom = null
queue:_end(from) queue:_end(from)
local newFrom = from.mixingFrom return
entry.mixingFrom = newFrom
if newFrom == nil then return end
entry.mixTime = from.mixTime;
entry.mixDuration = from.mixDuration;
from = newFrom;
end end
from.animationLast = from.nextAnimationLast from.animationLast = from.nextAnimationLast
from.trackLast = from.nextTrackLast from.trackLast = from.nextTrackLast
local mixingFromDelta = delta * from.timeScale from.trackTime = from.trackTime + delta * from.timeScale;
from.trackTime = from.trackTime + mixingFromDelta; entry.mixTime = entry.mixTime + delta * entry.timeScale;
entry.mixTime = entry.mixTime + mixingFromDelta;
self:updateMixingFrom(from, delta, canEnd and from.alpha == 1)
end end
function AnimationState:apply (skeleton) function AnimationState:apply (skeleton)
@ -305,7 +299,11 @@ function AnimationState:apply (skeleton)
if not (current == nil or current.delay > 0) then if not (current == nil or current.delay > 0) then
-- Apply mixing from entries first. -- Apply mixing from entries first.
local mix = current.alpha local mix = current.alpha
if current.mixingFrom then mix = mix * self:applyMixingFrom(current, skeleton) end if current.mixingFrom then
mix = mix * self:applyMixingFrom(current, skeleton)
elseif current.trackTime >= current.trackEnd then
mix = 0
end
-- Apply current entry. -- Apply current entry.
local animationLast = current.animationLast local animationLast = current.animationLast
@ -563,11 +561,11 @@ function AnimationState:setAnimation (trackIndex, animation, loop)
if current then if current then
if current.nextTrackLast == -1 then if current.nextTrackLast == -1 then
-- Don't mix from an entry that was never applied. -- Don't mix from an entry that was never applied.
tracks[trackIndex] = nil tracks[trackIndex] = current.mixingFrom
queue:interrupt(current) queue:interrupt(current)
queue:_end(current) queue:_end(current)
self:disposeNext(current) self:disposeNext(current)
current = nil current = current.mixingFrom
else else
self:disposeNext(current) self:disposeNext(current)
end end
@ -708,9 +706,9 @@ function AnimationState:_animationsChanged ()
end end
-- Set timelinesFirst for all entries, from lowest track to highest. -- Set timelinesFirst for all entries, from lowest track to highest.
local i = 1 local i = 0
local n = highest local n = highest + 1
while i <= n do while i < n do
local entry = tracks[i] local entry = tracks[i]
if entry then if entry then
self:setTimelinesFirst(entry); self:setTimelinesFirst(entry);
@ -719,7 +717,7 @@ function AnimationState:_animationsChanged ()
end end
i = i + 1 i = i + 1
end end
while i <= n do while i < n do
local entry = tracks[i] local entry = tracks[i]
if entry then self:checkTimelinesFirst(entry) end if entry then self:checkTimelinesFirst(entry) end
i = i + 1 i = i + 1
@ -756,6 +754,7 @@ function AnimationState:checkTimelinesUsage (entry, usageArray)
local n = #entry.animation.timelines local n = #entry.animation.timelines
local timelines = entry.animation.timelines local timelines = entry.animation.timelines
local usage = usageArray local usage = usageArray
local i = 1
while i <= n do while i <= n do
local id = "" .. timelines[i]:getPropertyId() local id = "" .. timelines[i]:getPropertyId()
local contained = propertyIDs[id] == id local contained = propertyIDs[id] == id

View File

@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
## Spine version ## Spine version
spine-lua works with data exported from Spine 3.4.02. spine-lua works with data exported from Spine 3.5.xx.
spine-lua supports all Spine features. spine-lua supports all Spine features.

View File

@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
## Spine version ## Spine version
spine-monogame works with data exported from Spine 3.5.x. spine-monogame works with data exported from Spine 3.5.xx.
spine-monogame supports all Spine features. spine-monogame supports all Spine features.

View File

@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
## Spine version ## Spine version
spine-sfml works with data exported from Spine 3.4.02. spine-sfml works with data exported from Spine 3.5.xx.
spine-sfml supports all Spine features. spine-sfml supports all Spine features.

View File

@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
## Spine version ## Spine version
spine-starling works with data exported from Spine 3.4.02. spine-starling works with data exported from Spine 3.5.xx.
spine-starling supports all Spine features. spine-starling supports all Spine features.

View File

@ -14,7 +14,7 @@ com.powerflasher.fdt.core.PassManifests=true
com.powerflasher.fdt.core.PassRsls=false com.powerflasher.fdt.core.PassRsls=false
com.powerflasher.fdt.core.PassSwcs=true com.powerflasher.fdt.core.PassSwcs=true
com.powerflasher.fdt.core.PlatformType=WEB com.powerflasher.fdt.core.PlatformType=WEB
com.powerflasher.fdt.core.PlayerVersion=22.0 com.powerflasher.fdt.core.PlayerVersion=23.0
com.powerflasher.fdt.core.ProjectTypeHint=Web com.powerflasher.fdt.core.ProjectTypeHint=Web
com.powerflasher.fdt.core.Runtime=Flash_Player com.powerflasher.fdt.core.Runtime=Flash_Player
com.powerflasher.fdt.core.SdkName=Flex 4.6.0 com.powerflasher.fdt.core.SdkName=Flex 4.6.0

View File

@ -64,9 +64,9 @@ public class SpineboyExample extends Sprite {
var skeletonData:SkeletonData = json.readSkeletonData(new SpineboyJson()); var skeletonData:SkeletonData = json.readSkeletonData(new SpineboyJson());
var stateData:AnimationStateData = new AnimationStateData(skeletonData); var stateData:AnimationStateData = new AnimationStateData(skeletonData);
stateData.setMixByName("run", "jump", 0.2); stateData.setMixByName("run", "jump", 0.4);
stateData.setMixByName("jump", "run", 0.4); stateData.setMixByName("jump", "run", 0.4);
stateData.setMixByName("jump", "jump", 0.2); stateData.setMixByName("jump", "jump", 0.4);
skeleton = new SkeletonAnimation(skeletonData, stateData); skeleton = new SkeletonAnimation(skeletonData, stateData);
skeleton.x = 400; skeleton.x = 400;

View File

@ -18,7 +18,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
## Spine version ## Spine version
spine-ts works with data exported from Spine 3.4.02. spine-ts works with data exported from Spine 3.5.xx.
spine-ts WebGL & Widget backends supports all Spine features. The spine-ts Canvas backend does not support color tinting, mesh attachments or shearing. Mesh attachments are supported by setting `spine.canvas.SkeletonRenderer.useTriangleRendering` to true. Note that this method is slow and may lead to artifacts on some browsers. The spine-ts THREE.JS backend does not support color tinting and blend modes. The THREE.JS backend provides `SkeletonMesh.zOffset` to avoid z-fighting. Adjust to your near/far plane settings. spine-ts WebGL & Widget backends supports all Spine features. The spine-ts Canvas backend does not support color tinting, mesh attachments or shearing. Mesh attachments are supported by setting `spine.canvas.SkeletonRenderer.useTriangleRendering` to true. Note that this method is slow and may lead to artifacts on some browsers. The spine-ts THREE.JS backend does not support color tinting and blend modes. The THREE.JS backend provides `SkeletonMesh.zOffset` to avoid z-fighting. Adjust to your near/far plane settings.

View File

@ -302,7 +302,7 @@ declare module spine {
trackEntryPool: Pool<TrackEntry>; trackEntryPool: Pool<TrackEntry>;
constructor(data: AnimationStateData); constructor(data: AnimationStateData);
update(delta: number): void; update(delta: number): void;
updateMixingFrom(entry: TrackEntry, delta: number, canEnd: boolean): void; updateMixingFrom(entry: TrackEntry, delta: number): void;
apply(skeleton: Skeleton): void; apply(skeleton: Skeleton): void;
applyMixingFrom(entry: TrackEntry, skeleton: Skeleton): number; applyMixingFrom(entry: TrackEntry, skeleton: Skeleton): number;
applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array<number>, i: number, firstFrame: boolean): void; applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array<number>, i: number, firstFrame: boolean): void;

View File

@ -1330,10 +1330,8 @@ var spine;
} }
continue; continue;
} }
this.updateMixingFrom(current, delta, true);
} }
else { else {
this.updateMixingFrom(current, delta, true);
if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { if (current.trackLast >= current.trackEnd && current.mixingFrom == null) {
tracks[i] = null; tracks[i] = null;
this.queue.end(current); this.queue.end(current);
@ -1341,30 +1339,25 @@ var spine;
continue; continue;
} }
} }
this.updateMixingFrom(current, delta);
current.trackTime += currentDelta; current.trackTime += currentDelta;
} }
this.queue.drain(); this.queue.drain();
}; };
AnimationState.prototype.updateMixingFrom = function (entry, delta, canEnd) { AnimationState.prototype.updateMixingFrom = function (entry, delta) {
var from = entry.mixingFrom; var from = entry.mixingFrom;
if (from == null) if (from == null)
return; return;
if (canEnd && entry.mixTime >= entry.mixDuration && entry.mixTime > 0) { this.updateMixingFrom(from, delta);
if (entry.mixTime >= entry.mixDuration && from.mixingFrom != null && entry.mixTime > 0) {
entry.mixingFrom = null;
this.queue.end(from); this.queue.end(from);
var newFrom = from.mixingFrom; return;
entry.mixingFrom = newFrom;
if (newFrom == null)
return;
entry.mixTime = from.mixTime;
entry.mixDuration = from.mixDuration;
from = newFrom;
} }
from.animationLast = from.nextAnimationLast; from.animationLast = from.nextAnimationLast;
from.trackLast = from.nextTrackLast; from.trackLast = from.nextTrackLast;
var mixingFromDelta = delta * from.timeScale; from.trackTime += delta * from.timeScale;
from.trackTime += mixingFromDelta; entry.mixTime += delta * from.timeScale;
entry.mixTime += mixingFromDelta;
this.updateMixingFrom(from, delta, canEnd && from.alpha == 1);
}; };
AnimationState.prototype.apply = function (skeleton) { AnimationState.prototype.apply = function (skeleton) {
if (skeleton == null) if (skeleton == null)
@ -1380,6 +1373,8 @@ var spine;
var mix = current.alpha; var mix = current.alpha;
if (current.mixingFrom != null) if (current.mixingFrom != null)
mix *= this.applyMixingFrom(current, skeleton); mix *= this.applyMixingFrom(current, skeleton);
else if (current.trackTime >= current.trackEnd)
mix = 0;
var animationLast = current.animationLast, animationTime = current.getAnimationTime(); var animationLast = current.animationLast, animationTime = current.getAnimationTime();
var timelineCount = current.animation.timelines.length; var timelineCount = current.animation.timelines.length;
var timelines = current.animation.timelines; var timelines = current.animation.timelines;
@ -1591,11 +1586,11 @@ var spine;
var current = this.expandToIndex(trackIndex); var current = this.expandToIndex(trackIndex);
if (current != null) { if (current != null) {
if (current.nextTrackLast == -1) { if (current.nextTrackLast == -1) {
this.tracks[trackIndex] = null; this.tracks[trackIndex] = current.mixingFrom;
this.queue.interrupt(current); this.queue.interrupt(current);
this.queue.end(current); this.queue.end(current);
this.disposeNext(current); this.disposeNext(current);
current = null; current = current.mixingFrom;
} }
else else
this.disposeNext(current); this.disposeNext(current);

File diff suppressed because one or more lines are too long

View File

@ -302,7 +302,7 @@ declare module spine {
trackEntryPool: Pool<TrackEntry>; trackEntryPool: Pool<TrackEntry>;
constructor(data: AnimationStateData); constructor(data: AnimationStateData);
update(delta: number): void; update(delta: number): void;
updateMixingFrom(entry: TrackEntry, delta: number, canEnd: boolean): void; updateMixingFrom(entry: TrackEntry, delta: number): void;
apply(skeleton: Skeleton): void; apply(skeleton: Skeleton): void;
applyMixingFrom(entry: TrackEntry, skeleton: Skeleton): number; applyMixingFrom(entry: TrackEntry, skeleton: Skeleton): number;
applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array<number>, i: number, firstFrame: boolean): void; applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array<number>, i: number, firstFrame: boolean): void;

View File

@ -1330,10 +1330,8 @@ var spine;
} }
continue; continue;
} }
this.updateMixingFrom(current, delta, true);
} }
else { else {
this.updateMixingFrom(current, delta, true);
if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { if (current.trackLast >= current.trackEnd && current.mixingFrom == null) {
tracks[i] = null; tracks[i] = null;
this.queue.end(current); this.queue.end(current);
@ -1341,30 +1339,25 @@ var spine;
continue; continue;
} }
} }
this.updateMixingFrom(current, delta);
current.trackTime += currentDelta; current.trackTime += currentDelta;
} }
this.queue.drain(); this.queue.drain();
}; };
AnimationState.prototype.updateMixingFrom = function (entry, delta, canEnd) { AnimationState.prototype.updateMixingFrom = function (entry, delta) {
var from = entry.mixingFrom; var from = entry.mixingFrom;
if (from == null) if (from == null)
return; return;
if (canEnd && entry.mixTime >= entry.mixDuration && entry.mixTime > 0) { this.updateMixingFrom(from, delta);
if (entry.mixTime >= entry.mixDuration && from.mixingFrom != null && entry.mixTime > 0) {
entry.mixingFrom = null;
this.queue.end(from); this.queue.end(from);
var newFrom = from.mixingFrom; return;
entry.mixingFrom = newFrom;
if (newFrom == null)
return;
entry.mixTime = from.mixTime;
entry.mixDuration = from.mixDuration;
from = newFrom;
} }
from.animationLast = from.nextAnimationLast; from.animationLast = from.nextAnimationLast;
from.trackLast = from.nextTrackLast; from.trackLast = from.nextTrackLast;
var mixingFromDelta = delta * from.timeScale; from.trackTime += delta * from.timeScale;
from.trackTime += mixingFromDelta; entry.mixTime += delta * from.timeScale;
entry.mixTime += mixingFromDelta;
this.updateMixingFrom(from, delta, canEnd && from.alpha == 1);
}; };
AnimationState.prototype.apply = function (skeleton) { AnimationState.prototype.apply = function (skeleton) {
if (skeleton == null) if (skeleton == null)
@ -1380,6 +1373,8 @@ var spine;
var mix = current.alpha; var mix = current.alpha;
if (current.mixingFrom != null) if (current.mixingFrom != null)
mix *= this.applyMixingFrom(current, skeleton); mix *= this.applyMixingFrom(current, skeleton);
else if (current.trackTime >= current.trackEnd)
mix = 0;
var animationLast = current.animationLast, animationTime = current.getAnimationTime(); var animationLast = current.animationLast, animationTime = current.getAnimationTime();
var timelineCount = current.animation.timelines.length; var timelineCount = current.animation.timelines.length;
var timelines = current.animation.timelines; var timelines = current.animation.timelines;
@ -1591,11 +1586,11 @@ var spine;
var current = this.expandToIndex(trackIndex); var current = this.expandToIndex(trackIndex);
if (current != null) { if (current != null) {
if (current.nextTrackLast == -1) { if (current.nextTrackLast == -1) {
this.tracks[trackIndex] = null; this.tracks[trackIndex] = current.mixingFrom;
this.queue.interrupt(current); this.queue.interrupt(current);
this.queue.end(current); this.queue.end(current);
this.disposeNext(current); this.disposeNext(current);
current = null; current = current.mixingFrom;
} }
else else
this.disposeNext(current); this.disposeNext(current);

File diff suppressed because one or more lines are too long

View File

@ -214,7 +214,7 @@ declare module spine {
trackEntryPool: Pool<TrackEntry>; trackEntryPool: Pool<TrackEntry>;
constructor(data: AnimationStateData); constructor(data: AnimationStateData);
update(delta: number): void; update(delta: number): void;
updateMixingFrom(entry: TrackEntry, delta: number, canEnd: boolean): void; updateMixingFrom(entry: TrackEntry, delta: number): void;
apply(skeleton: Skeleton): void; apply(skeleton: Skeleton): void;
applyMixingFrom(entry: TrackEntry, skeleton: Skeleton): number; applyMixingFrom(entry: TrackEntry, skeleton: Skeleton): number;
applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array<number>, i: number, firstFrame: boolean): void; applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array<number>, i: number, firstFrame: boolean): void;

View File

@ -983,10 +983,8 @@ var spine;
} }
continue; continue;
} }
this.updateMixingFrom(current, delta, true);
} }
else { else {
this.updateMixingFrom(current, delta, true);
if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { if (current.trackLast >= current.trackEnd && current.mixingFrom == null) {
tracks[i] = null; tracks[i] = null;
this.queue.end(current); this.queue.end(current);
@ -994,30 +992,25 @@ var spine;
continue; continue;
} }
} }
this.updateMixingFrom(current, delta);
current.trackTime += currentDelta; current.trackTime += currentDelta;
} }
this.queue.drain(); this.queue.drain();
}; };
AnimationState.prototype.updateMixingFrom = function (entry, delta, canEnd) { AnimationState.prototype.updateMixingFrom = function (entry, delta) {
var from = entry.mixingFrom; var from = entry.mixingFrom;
if (from == null) if (from == null)
return; return;
if (canEnd && entry.mixTime >= entry.mixDuration && entry.mixTime > 0) { this.updateMixingFrom(from, delta);
if (entry.mixTime >= entry.mixDuration && from.mixingFrom != null && entry.mixTime > 0) {
entry.mixingFrom = null;
this.queue.end(from); this.queue.end(from);
var newFrom = from.mixingFrom; return;
entry.mixingFrom = newFrom;
if (newFrom == null)
return;
entry.mixTime = from.mixTime;
entry.mixDuration = from.mixDuration;
from = newFrom;
} }
from.animationLast = from.nextAnimationLast; from.animationLast = from.nextAnimationLast;
from.trackLast = from.nextTrackLast; from.trackLast = from.nextTrackLast;
var mixingFromDelta = delta * from.timeScale; from.trackTime += delta * from.timeScale;
from.trackTime += mixingFromDelta; entry.mixTime += delta * from.timeScale;
entry.mixTime += mixingFromDelta;
this.updateMixingFrom(from, delta, canEnd && from.alpha == 1);
}; };
AnimationState.prototype.apply = function (skeleton) { AnimationState.prototype.apply = function (skeleton) {
if (skeleton == null) if (skeleton == null)
@ -1033,6 +1026,8 @@ var spine;
var mix = current.alpha; var mix = current.alpha;
if (current.mixingFrom != null) if (current.mixingFrom != null)
mix *= this.applyMixingFrom(current, skeleton); mix *= this.applyMixingFrom(current, skeleton);
else if (current.trackTime >= current.trackEnd)
mix = 0;
var animationLast = current.animationLast, animationTime = current.getAnimationTime(); var animationLast = current.animationLast, animationTime = current.getAnimationTime();
var timelineCount = current.animation.timelines.length; var timelineCount = current.animation.timelines.length;
var timelines = current.animation.timelines; var timelines = current.animation.timelines;
@ -1244,11 +1239,11 @@ var spine;
var current = this.expandToIndex(trackIndex); var current = this.expandToIndex(trackIndex);
if (current != null) { if (current != null) {
if (current.nextTrackLast == -1) { if (current.nextTrackLast == -1) {
this.tracks[trackIndex] = null; this.tracks[trackIndex] = current.mixingFrom;
this.queue.interrupt(current); this.queue.interrupt(current);
this.queue.end(current); this.queue.end(current);
this.disposeNext(current); this.disposeNext(current);
current = null; current = current.mixingFrom;
} }
else else
this.disposeNext(current); this.disposeNext(current);

File diff suppressed because one or more lines are too long

View File

@ -214,7 +214,7 @@ declare module spine {
trackEntryPool: Pool<TrackEntry>; trackEntryPool: Pool<TrackEntry>;
constructor(data: AnimationStateData); constructor(data: AnimationStateData);
update(delta: number): void; update(delta: number): void;
updateMixingFrom(entry: TrackEntry, delta: number, canEnd: boolean): void; updateMixingFrom(entry: TrackEntry, delta: number): void;
apply(skeleton: Skeleton): void; apply(skeleton: Skeleton): void;
applyMixingFrom(entry: TrackEntry, skeleton: Skeleton): number; applyMixingFrom(entry: TrackEntry, skeleton: Skeleton): number;
applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array<number>, i: number, firstFrame: boolean): void; applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array<number>, i: number, firstFrame: boolean): void;

View File

@ -983,10 +983,8 @@ var spine;
} }
continue; continue;
} }
this.updateMixingFrom(current, delta, true);
} }
else { else {
this.updateMixingFrom(current, delta, true);
if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { if (current.trackLast >= current.trackEnd && current.mixingFrom == null) {
tracks[i] = null; tracks[i] = null;
this.queue.end(current); this.queue.end(current);
@ -994,30 +992,25 @@ var spine;
continue; continue;
} }
} }
this.updateMixingFrom(current, delta);
current.trackTime += currentDelta; current.trackTime += currentDelta;
} }
this.queue.drain(); this.queue.drain();
}; };
AnimationState.prototype.updateMixingFrom = function (entry, delta, canEnd) { AnimationState.prototype.updateMixingFrom = function (entry, delta) {
var from = entry.mixingFrom; var from = entry.mixingFrom;
if (from == null) if (from == null)
return; return;
if (canEnd && entry.mixTime >= entry.mixDuration && entry.mixTime > 0) { this.updateMixingFrom(from, delta);
if (entry.mixTime >= entry.mixDuration && from.mixingFrom != null && entry.mixTime > 0) {
entry.mixingFrom = null;
this.queue.end(from); this.queue.end(from);
var newFrom = from.mixingFrom; return;
entry.mixingFrom = newFrom;
if (newFrom == null)
return;
entry.mixTime = from.mixTime;
entry.mixDuration = from.mixDuration;
from = newFrom;
} }
from.animationLast = from.nextAnimationLast; from.animationLast = from.nextAnimationLast;
from.trackLast = from.nextTrackLast; from.trackLast = from.nextTrackLast;
var mixingFromDelta = delta * from.timeScale; from.trackTime += delta * from.timeScale;
from.trackTime += mixingFromDelta; entry.mixTime += delta * from.timeScale;
entry.mixTime += mixingFromDelta;
this.updateMixingFrom(from, delta, canEnd && from.alpha == 1);
}; };
AnimationState.prototype.apply = function (skeleton) { AnimationState.prototype.apply = function (skeleton) {
if (skeleton == null) if (skeleton == null)
@ -1033,6 +1026,8 @@ var spine;
var mix = current.alpha; var mix = current.alpha;
if (current.mixingFrom != null) if (current.mixingFrom != null)
mix *= this.applyMixingFrom(current, skeleton); mix *= this.applyMixingFrom(current, skeleton);
else if (current.trackTime >= current.trackEnd)
mix = 0;
var animationLast = current.animationLast, animationTime = current.getAnimationTime(); var animationLast = current.animationLast, animationTime = current.getAnimationTime();
var timelineCount = current.animation.timelines.length; var timelineCount = current.animation.timelines.length;
var timelines = current.animation.timelines; var timelines = current.animation.timelines;
@ -1244,11 +1239,11 @@ var spine;
var current = this.expandToIndex(trackIndex); var current = this.expandToIndex(trackIndex);
if (current != null) { if (current != null) {
if (current.nextTrackLast == -1) { if (current.nextTrackLast == -1) {
this.tracks[trackIndex] = null; this.tracks[trackIndex] = current.mixingFrom;
this.queue.interrupt(current); this.queue.interrupt(current);
this.queue.end(current); this.queue.end(current);
this.disposeNext(current); this.disposeNext(current);
current = null; current = current.mixingFrom;
} }
else else
this.disposeNext(current); this.disposeNext(current);

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -214,7 +214,7 @@ declare module spine {
trackEntryPool: Pool<TrackEntry>; trackEntryPool: Pool<TrackEntry>;
constructor(data: AnimationStateData); constructor(data: AnimationStateData);
update(delta: number): void; update(delta: number): void;
updateMixingFrom(entry: TrackEntry, delta: number, canEnd: boolean): void; updateMixingFrom(entry: TrackEntry, delta: number): void;
apply(skeleton: Skeleton): void; apply(skeleton: Skeleton): void;
applyMixingFrom(entry: TrackEntry, skeleton: Skeleton): number; applyMixingFrom(entry: TrackEntry, skeleton: Skeleton): number;
applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array<number>, i: number, firstFrame: boolean): void; applyRotateTimeline(timeline: Timeline, skeleton: Skeleton, time: number, alpha: number, setupPose: boolean, timelinesRotation: Array<number>, i: number, firstFrame: boolean): void;

View File

@ -983,10 +983,8 @@ var spine;
} }
continue; continue;
} }
this.updateMixingFrom(current, delta, true);
} }
else { else {
this.updateMixingFrom(current, delta, true);
if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { if (current.trackLast >= current.trackEnd && current.mixingFrom == null) {
tracks[i] = null; tracks[i] = null;
this.queue.end(current); this.queue.end(current);
@ -994,30 +992,25 @@ var spine;
continue; continue;
} }
} }
this.updateMixingFrom(current, delta);
current.trackTime += currentDelta; current.trackTime += currentDelta;
} }
this.queue.drain(); this.queue.drain();
}; };
AnimationState.prototype.updateMixingFrom = function (entry, delta, canEnd) { AnimationState.prototype.updateMixingFrom = function (entry, delta) {
var from = entry.mixingFrom; var from = entry.mixingFrom;
if (from == null) if (from == null)
return; return;
if (canEnd && entry.mixTime >= entry.mixDuration && entry.mixTime > 0) { this.updateMixingFrom(from, delta);
if (entry.mixTime >= entry.mixDuration && from.mixingFrom != null && entry.mixTime > 0) {
entry.mixingFrom = null;
this.queue.end(from); this.queue.end(from);
var newFrom = from.mixingFrom; return;
entry.mixingFrom = newFrom;
if (newFrom == null)
return;
entry.mixTime = from.mixTime;
entry.mixDuration = from.mixDuration;
from = newFrom;
} }
from.animationLast = from.nextAnimationLast; from.animationLast = from.nextAnimationLast;
from.trackLast = from.nextTrackLast; from.trackLast = from.nextTrackLast;
var mixingFromDelta = delta * from.timeScale; from.trackTime += delta * from.timeScale;
from.trackTime += mixingFromDelta; entry.mixTime += delta * from.timeScale;
entry.mixTime += mixingFromDelta;
this.updateMixingFrom(from, delta, canEnd && from.alpha == 1);
}; };
AnimationState.prototype.apply = function (skeleton) { AnimationState.prototype.apply = function (skeleton) {
if (skeleton == null) if (skeleton == null)
@ -1033,6 +1026,8 @@ var spine;
var mix = current.alpha; var mix = current.alpha;
if (current.mixingFrom != null) if (current.mixingFrom != null)
mix *= this.applyMixingFrom(current, skeleton); mix *= this.applyMixingFrom(current, skeleton);
else if (current.trackTime >= current.trackEnd)
mix = 0;
var animationLast = current.animationLast, animationTime = current.getAnimationTime(); var animationLast = current.animationLast, animationTime = current.getAnimationTime();
var timelineCount = current.animation.timelines.length; var timelineCount = current.animation.timelines.length;
var timelines = current.animation.timelines; var timelines = current.animation.timelines;
@ -1244,11 +1239,11 @@ var spine;
var current = this.expandToIndex(trackIndex); var current = this.expandToIndex(trackIndex);
if (current != null) { if (current != null) {
if (current.nextTrackLast == -1) { if (current.nextTrackLast == -1) {
this.tracks[trackIndex] = null; this.tracks[trackIndex] = current.mixingFrom;
this.queue.interrupt(current); this.queue.interrupt(current);
this.queue.end(current); this.queue.end(current);
this.disposeNext(current); this.disposeNext(current);
current = null; current = current.mixingFrom;
} }
else else
this.disposeNext(current); this.disposeNext(current);

File diff suppressed because one or more lines are too long

View File

@ -80,10 +80,8 @@ module spine {
next = next.mixingFrom; next = next.mixingFrom;
} }
continue; continue;
} }
this.updateMixingFrom(current, delta, true); } else {
} else {
this.updateMixingFrom(current, delta, true);
// Clear the track when there is no next entry, the track end time is reached, and there is no mixingFrom. // Clear the track when there is no next entry, the track end time is reached, and there is no mixingFrom.
if (current.trackLast >= current.trackEnd && current.mixingFrom == null) { if (current.trackLast >= current.trackEnd && current.mixingFrom == null) {
tracks[i] = null; tracks[i] = null;
@ -92,6 +90,7 @@ module spine {
continue; continue;
} }
} }
this.updateMixingFrom(current, delta);
current.trackTime += currentDelta; current.trackTime += currentDelta;
} }
@ -99,27 +98,22 @@ module spine {
this.queue.drain(); this.queue.drain();
} }
updateMixingFrom (entry: TrackEntry, delta: number, canEnd: boolean) { updateMixingFrom (entry: TrackEntry, delta: number) {
let from = entry.mixingFrom; let from = entry.mixingFrom;
if (from == null) return; if (from == null) return;
if (canEnd && entry.mixTime >= entry.mixDuration && entry.mixTime > 0) { this.updateMixingFrom(from, delta);
if (entry.mixTime >= entry.mixDuration && from.mixingFrom != null && entry.mixTime > 0) {
entry.mixingFrom = null;
this.queue.end(from); this.queue.end(from);
let newFrom = from.mixingFrom; return;
entry.mixingFrom = newFrom;
if (newFrom == null) return;
entry.mixTime = from.mixTime;
entry.mixDuration = from.mixDuration;
from = newFrom;
} }
from.animationLast = from.nextAnimationLast; from.animationLast = from.nextAnimationLast;
from.trackLast = from.nextTrackLast; from.trackLast = from.nextTrackLast;
let mixingFromDelta = delta * from.timeScale; from.trackTime += delta * from.timeScale;
from.trackTime += mixingFromDelta; entry.mixTime += delta * from.timeScale;
entry.mixTime += mixingFromDelta;
this.updateMixingFrom(from, delta, canEnd && from.alpha == 1);
} }
apply (skeleton: Skeleton) { apply (skeleton: Skeleton) {
@ -135,7 +129,10 @@ module spine {
// Apply mixing from entries first. // Apply mixing from entries first.
let mix = current.alpha; let mix = current.alpha;
if (current.mixingFrom != null) mix *= this.applyMixingFrom(current, skeleton); if (current.mixingFrom != null)
mix *= this.applyMixingFrom(current, skeleton);
else if (current.trackTime >= current.trackEnd)
mix = 0;
// Apply current entry. // Apply current entry.
let animationLast = current.animationLast, animationTime = current.getAnimationTime(); let animationLast = current.animationLast, animationTime = current.getAnimationTime();
@ -369,11 +366,11 @@ module spine {
if (current != null) { if (current != null) {
if (current.nextTrackLast == -1) { if (current.nextTrackLast == -1) {
// Don't mix from an entry that was never applied. // Don't mix from an entry that was never applied.
this.tracks[trackIndex] = null; this.tracks[trackIndex] = current.mixingFrom;
this.queue.interrupt(current); this.queue.interrupt(current);
this.queue.end(current); this.queue.end(current);
this.disposeNext(current); this.disposeNext(current);
current = null; current = current.mixingFrom;
} else } else
this.disposeNext(current); this.disposeNext(current);
} }

View File

@ -116,8 +116,17 @@ function loadSkeleton (name, initialAnimation, premultipliedAlpha, skin) {
var bounds = calculateBounds(skeleton); var bounds = calculateBounds(skeleton);
// Create an AnimationState, and set the initial animation in looping mode. // Create an AnimationState, and set the initial animation in looping mode.
var animationState = new spine.AnimationState(new spine.AnimationStateData(skeleton.data)); animationStateData = new spine.AnimationStateData(skeleton.data);
animationState.setAnimation(0, initialAnimation, true); var animationState = new spine.AnimationState(animationStateData);
if (name == "spineboy") {
animationStateData.setMix("walk", "jump", 0.4)
animationStateData.setMix("jump", "run", 0.4);
animationState.setAnimation(0, "walk", true);
var jumpEntry = animationState.addAnimation(0, "jump", false, 3);
animationState.addAnimation(0, "run", true, 0);
} else {
animationState.setAnimation(0, initialAnimation, true);
}
animationState.addListener({ animationState.addListener({
start: function(track) { start: function(track) {
console.log("Animation on track " + track.trackIndex + " started"); console.log("Animation on track " + track.trackIndex + " started");

View File

@ -13,7 +13,7 @@ SceneSettings:
--- !u!104 &2 --- !u!104 &2
RenderSettings: RenderSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 6 serializedVersion: 7
m_Fog: 0 m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3 m_FogMode: 3
@ -37,12 +37,12 @@ RenderSettings:
m_ReflectionIntensity: 1 m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0} m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0} m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
--- !u!157 &3 --- !u!157 &3
LightmapSettings: LightmapSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 6 serializedVersion: 7
m_GIWorkflowMode: 1 m_GIWorkflowMode: 1
m_LightmapsMode: 1
m_GISettings: m_GISettings:
serializedVersion: 2 serializedVersion: 2
m_BounceScale: 1 m_BounceScale: 1
@ -53,17 +53,22 @@ LightmapSettings:
m_EnableBakedLightmaps: 0 m_EnableBakedLightmaps: 0
m_EnableRealtimeLightmaps: 0 m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings: m_LightmapEditorSettings:
serializedVersion: 3 serializedVersion: 4
m_Resolution: 2 m_Resolution: 2
m_BakeResolution: 40 m_BakeResolution: 40
m_TextureWidth: 1024 m_TextureWidth: 1024
m_TextureHeight: 1024 m_TextureHeight: 1024
m_AO: 0
m_AOMaxDistance: 1 m_AOMaxDistance: 1
m_Padding: 2
m_CompAOExponent: 0 m_CompAOExponent: 0
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0} m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1 m_TextureCompression: 1
m_DirectLightInLightProbes: 1
m_FinalGather: 0 m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 1024 m_FinalGatherRayCount: 1024
m_ReflectionCompression: 2 m_ReflectionCompression: 2
m_LightingDataAsset: {fileID: 0} m_LightingDataAsset: {fileID: 0}
@ -111,6 +116,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: m_Children:
- {fileID: 189134935} - {fileID: 189134935}
m_Father: {fileID: 289700665} m_Father: {fileID: 289700665}
@ -145,6 +151,7 @@ MonoBehaviour:
startingLoop: 1 startingLoop: 1
timeScale: 1 timeScale: 1
freeze: 0 freeze: 0
unscaledTime: 0
--- !u!222 &57002146 --- !u!222 &57002146
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -177,6 +184,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 57002144} m_Father: {fileID: 57002144}
m_RootOrder: 0 m_RootOrder: 0
@ -307,6 +315,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0, y: 0, z: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: m_Children:
- {fileID: 941001663} - {fileID: 941001663}
- {fileID: 774800194} - {fileID: 774800194}
@ -341,6 +350,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: m_Children:
- {fileID: 57002144} - {fileID: 57002144}
- {fileID: 1384013133} - {fileID: 1384013133}
@ -348,7 +358,7 @@ RectTransform:
m_RootOrder: 0 m_RootOrder: 0
m_AnchorMin: {x: 0, y: 1} m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -0.000061035156, y: 0} m_AnchoredPosition: {x: 0.000004069, y: 0}
m_SizeDelta: {x: 0, y: 1872} m_SizeDelta: {x: 0, y: 1872}
m_Pivot: {x: 0, y: 1} m_Pivot: {x: 0, y: 1}
--- !u!1 &611702901 --- !u!1 &611702901
@ -434,6 +444,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -10} m_LocalPosition: {x: 0, y: 0, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
@ -463,6 +474,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 249902688} m_Father: {fileID: 249902688}
m_RootOrder: 1 m_RootOrder: 1
@ -541,6 +553,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: m_Children:
- {fileID: 1351078838} - {fileID: 1351078838}
m_Father: {fileID: 941001663} m_Father: {fileID: 941001663}
@ -588,7 +601,7 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 1918252544} m_TargetGraphic: {fileID: 1918252544}
m_HandleRect: {fileID: 1918252543} m_HandleRect: {fileID: 1918252543}
m_Direction: 0 m_Direction: 0
m_Value: 1 m_Value: 0
m_Size: 1 m_Size: 1
m_NumberOfSteps: 0 m_NumberOfSteps: 0
m_OnValueChanged: m_OnValueChanged:
@ -656,6 +669,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: m_Children:
- {fileID: 2133858527} - {fileID: 2133858527}
- {fileID: 852403708} - {fileID: 852403708}
@ -757,6 +771,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 1384013133} m_Father: {fileID: 1384013133}
m_RootOrder: 0 m_RootOrder: 0
@ -828,6 +843,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: m_Children:
- {fileID: 1918252543} - {fileID: 1918252543}
m_Father: {fileID: 852403708} m_Father: {fileID: 852403708}
@ -863,6 +879,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: m_Children:
- {fileID: 1066372096} - {fileID: 1066372096}
m_Father: {fileID: 289700665} m_Father: {fileID: 289700665}
@ -897,6 +914,7 @@ MonoBehaviour:
startingLoop: 1 startingLoop: 1
timeScale: 1 timeScale: 1
freeze: 0 freeze: 0
unscaledTime: 0
--- !u!222 &1384013135 --- !u!222 &1384013135
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -930,6 +948,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: m_Children:
- {fileID: 1582800778} - {fileID: 1582800778}
m_Father: {fileID: 941001663} m_Father: {fileID: 941001663}
@ -977,8 +996,8 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 2091633436} m_TargetGraphic: {fileID: 2091633436}
m_HandleRect: {fileID: 2091633435} m_HandleRect: {fileID: 2091633435}
m_Direction: 2 m_Direction: 2
m_Value: 0 m_Value: 1
m_Size: 1 m_Size: 0.2719017
m_NumberOfSteps: 0 m_NumberOfSteps: 0
m_OnValueChanged: m_OnValueChanged:
m_PersistentCalls: m_PersistentCalls:
@ -1042,6 +1061,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: m_Children:
- {fileID: 2091633435} - {fileID: 2091633435}
m_Father: {fileID: 1428602577} m_Father: {fileID: 1428602577}
@ -1109,6 +1129,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 2 m_RootOrder: 2
@ -1138,6 +1159,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 1351078838} m_Father: {fileID: 1351078838}
m_RootOrder: 0 m_RootOrder: 0
@ -1205,6 +1227,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 1582800778} m_Father: {fileID: 1582800778}
m_RootOrder: 0 m_RootOrder: 0
@ -1273,6 +1296,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: m_Children:
- {fileID: 289700665} - {fileID: 289700665}
m_Father: {fileID: 941001663} m_Father: {fileID: 941001663}

View File

@ -31,188 +31,174 @@
// Contributed by: Mitch Thompson // Contributed by: Mitch Thompson
using UnityEngine; using UnityEngine;
using System.Collections;
using Spine.Unity; using Spine.Unity;
[RequireComponent(typeof(CharacterController))] namespace Spine.Unity.Examples {
public class BasicPlatformerController : MonoBehaviour { [RequireComponent(typeof(CharacterController))]
public class BasicPlatformerController : MonoBehaviour {
#if UNITY_4_5 [Header("Controls")]
[Header("Controls")] public string XAxis = "Horizontal";
#endif public string YAxis = "Vertical";
public string XAxis = "Horizontal"; public string JumpButton = "Jump";
public string YAxis = "Vertical";
public string JumpButton = "Jump";
#if UNITY_4_5 [Header("Moving")]
[Header("Moving")] public float walkSpeed = 4;
#endif public float runSpeed = 10;
public float walkSpeed = 4; public float gravity = 65;
public float runSpeed = 10;
public float gravity = 65;
#if UNITY_4_5 [Header("Jumping")]
[Header("Jumping")] public float jumpSpeed = 25;
#endif public float jumpDuration = 0.5f;
public float jumpSpeed = 25; public float jumpInterruptFactor = 100;
public float jumpDuration = 0.5f; public float forceCrouchVelocity = 25;
public float jumpInterruptFactor = 100; public float forceCrouchDuration = 0.5f;
public float forceCrouchVelocity = 25;
public float forceCrouchDuration = 0.5f;
#if UNITY_4_5 [Header("Graphics")]
[Header("Graphics")] public Transform graphicsRoot;
#endif public SkeletonAnimation skeletonAnimation;
public Transform graphicsRoot;
public SkeletonAnimation skeletonAnimation;
#if UNITY_4_5 [Header("Animation")]
[Header("Animation")] [SpineAnimation(dataField: "skeletonAnimation")]
#endif public string walkName = "Walk";
[SpineAnimation(dataField: "skeletonAnimation")] [SpineAnimation(dataField: "skeletonAnimation")]
public string walkName = "Walk"; public string runName = "Run";
[SpineAnimation(dataField: "skeletonAnimation")] [SpineAnimation(dataField: "skeletonAnimation")]
public string runName = "Run"; public string idleName = "Idle";
[SpineAnimation(dataField: "skeletonAnimation")] [SpineAnimation(dataField: "skeletonAnimation")]
public string idleName = "Idle"; public string jumpName = "Jump";
[SpineAnimation(dataField: "skeletonAnimation")] [SpineAnimation(dataField: "skeletonAnimation")]
public string jumpName = "Jump"; public string fallName = "Fall";
[SpineAnimation(dataField: "skeletonAnimation")] [SpineAnimation(dataField: "skeletonAnimation")]
public string fallName = "Fall"; public string crouchName = "Crouch";
[SpineAnimation(dataField: "skeletonAnimation")]
public string crouchName = "Crouch";
#if UNITY_4_5 [Header("Audio")]
[Header("Audio")] public AudioSource jumpAudioSource;
#endif public AudioSource hardfallAudioSource;
public AudioSource jumpAudioSource; public AudioSource footstepAudioSource;
public AudioSource hardfallAudioSource; [SpineEvent]
public AudioSource footstepAudioSource; public string footstepEventName = "Footstep";
[SpineEvent] CharacterController controller;
public string footstepEventName = "Footstep"; Vector2 velocity = Vector2.zero;
CharacterController controller; Vector2 lastVelocity = Vector2.zero;
Vector2 velocity = Vector2.zero; bool lastGrounded = false;
Vector2 lastVelocity = Vector2.zero; float jumpEndTime = 0;
bool lastGrounded = false; bool jumpInterrupt = false;
float jumpEndTime = 0; float forceCrouchEndTime;
bool jumpInterrupt = false; Quaternion flippedRotation = Quaternion.Euler(0, 180, 0);
float forceCrouchEndTime;
Quaternion flippedRotation = Quaternion.Euler(0, 180, 0);
void Awake () { void Awake () {
controller = GetComponent<CharacterController>(); controller = GetComponent<CharacterController>();
}
void Start () {
// Register a callback for Spine Events (in this case, Footstep)
skeletonAnimation.state.Event += HandleEvent;
}
void HandleEvent (Spine.TrackEntry trackEntry, Spine.Event e) {
// Play some sound if footstep event fired
if (e.Data.Name == footstepEventName) {
footstepAudioSource.Stop();
footstepAudioSource.pitch = GetRandomPitch(0.2f);
footstepAudioSource.Play();
}
}
void Update () {
//control inputs
float x = Input.GetAxis(XAxis);
float y = Input.GetAxis(YAxis);
//check for force crouch
bool crouching = (controller.isGrounded && y < -0.5f) || (forceCrouchEndTime > Time.time);
velocity.x = 0;
//Calculate control velocity
if (!crouching) {
if (Input.GetButtonDown(JumpButton) && controller.isGrounded) {
//jump
jumpAudioSource.Stop();
jumpAudioSource.Play();
velocity.y = jumpSpeed;
jumpEndTime = Time.time + jumpDuration;
} else if (Time.time < jumpEndTime && Input.GetButtonUp(JumpButton)) {
jumpInterrupt = true;
}
if (x != 0) {
//walk or run
velocity.x = Mathf.Abs(x) > 0.6f ? runSpeed : walkSpeed;
velocity.x *= Mathf.Sign(x);
}
if (jumpInterrupt) {
//interrupt jump and smoothly cut Y velocity
if (velocity.y > 0) {
velocity.y = Mathf.MoveTowards(velocity.y, 0, Time.deltaTime * 100);
} else {
jumpInterrupt = false;
}
}
} }
//apply gravity F = mA (Learn it, love it, live it) void Start () {
velocity.y -= gravity * Time.deltaTime; // Register a callback for Spine Events (in this case, Footstep)
skeletonAnimation.state.Event += HandleEvent;
//move
controller.Move(new Vector3(velocity.x, velocity.y, 0) * Time.deltaTime);
if (controller.isGrounded) {
//cancel out Y velocity if on ground
velocity.y = -gravity * Time.deltaTime;
jumpInterrupt = false;
} }
void HandleEvent (Spine.TrackEntry trackEntry, Spine.Event e) {
Vector2 deltaVelocity = lastVelocity - velocity; // Play some sound if footstep event fired
if (e.Data.Name == footstepEventName) {
if (!lastGrounded && controller.isGrounded) { footstepAudioSource.Stop();
//detect hard fall footstepAudioSource.pitch = GetRandomPitch(0.2f);
if ((gravity * Time.deltaTime) - deltaVelocity.y > forceCrouchVelocity) {
forceCrouchEndTime = Time.time + forceCrouchDuration;
hardfallAudioSource.Play();
} else {
//play footstep audio if light fall because why not
footstepAudioSource.Play(); footstepAudioSource.Play();
} }
} }
//graphics updates void Update () {
if (controller.isGrounded) { //control inputs
if (crouching) { //crouch float x = Input.GetAxis(XAxis);
skeletonAnimation.AnimationName = crouchName; float y = Input.GetAxis(YAxis);
} else { //check for force crouch
if (x == 0) //idle bool crouching = (controller.isGrounded && y < -0.5f) || (forceCrouchEndTime > Time.time);
skeletonAnimation.AnimationName = idleName; velocity.x = 0;
else //move
skeletonAnimation.AnimationName = Mathf.Abs(x) > 0.6f ? runName : walkName; //Calculate control velocity
if (!crouching) {
if (Input.GetButtonDown(JumpButton) && controller.isGrounded) {
//jump
jumpAudioSource.Stop();
jumpAudioSource.Play();
velocity.y = jumpSpeed;
jumpEndTime = Time.time + jumpDuration;
} else if (Time.time < jumpEndTime && Input.GetButtonUp(JumpButton)) {
jumpInterrupt = true;
}
if (x != 0) {
//walk or run
velocity.x = Mathf.Abs(x) > 0.6f ? runSpeed : walkSpeed;
velocity.x *= Mathf.Sign(x);
}
if (jumpInterrupt) {
//interrupt jump and smoothly cut Y velocity
if (velocity.y > 0) {
velocity.y = Mathf.MoveTowards(velocity.y, 0, Time.deltaTime * 100);
} else {
jumpInterrupt = false;
}
}
} }
} else {
if (velocity.y > 0) //jump
skeletonAnimation.AnimationName = jumpName;
else //fall
skeletonAnimation.AnimationName = fallName;
}
//flip left or right //apply gravity F = mA (Learn it, love it, live it)
if (x > 0) velocity.y -= gravity * Time.deltaTime;
graphicsRoot.localRotation = Quaternion.identity;
else if (x < 0) //move
controller.Move(new Vector3(velocity.x, velocity.y, 0) * Time.deltaTime);
if (controller.isGrounded) {
//cancel out Y velocity if on ground
velocity.y = -gravity * Time.deltaTime;
jumpInterrupt = false;
}
Vector2 deltaVelocity = lastVelocity - velocity;
if (!lastGrounded && controller.isGrounded) {
//detect hard fall
if ((gravity * Time.deltaTime) - deltaVelocity.y > forceCrouchVelocity) {
forceCrouchEndTime = Time.time + forceCrouchDuration;
hardfallAudioSource.Play();
} else {
//play footstep audio if light fall because why not
footstepAudioSource.Play();
}
}
//graphics updates
if (controller.isGrounded) {
if (crouching) { //crouch
skeletonAnimation.AnimationName = crouchName;
} else {
if (x == 0) //idle
skeletonAnimation.AnimationName = idleName;
else //move
skeletonAnimation.AnimationName = Mathf.Abs(x) > 0.6f ? runName : walkName;
}
} else {
if (velocity.y > 0) //jump
skeletonAnimation.AnimationName = jumpName;
else //fall
skeletonAnimation.AnimationName = fallName;
}
//flip left or right
if (x > 0)
graphicsRoot.localRotation = Quaternion.identity;
else if (x < 0)
graphicsRoot.localRotation = flippedRotation; graphicsRoot.localRotation = flippedRotation;
//store previous state
//store previous state lastVelocity = velocity;
lastVelocity = velocity; lastGrounded = controller.isGrounded;
lastGrounded = controller.isGrounded; }
static float GetRandomPitch (float maxOffset) {
return 1f + Random.Range(-maxOffset, maxOffset);
}
} }
}
#region Utility
static float GetRandomPitch (float maxOffset) {
return 1f + Random.Range(-maxOffset, maxOffset);
}
#endregion
}

View File

@ -31,22 +31,23 @@
// Contributed by: Mitch Thompson // Contributed by: Mitch Thompson
using UnityEngine; using UnityEngine;
using System.Collections;
public class ConstrainedCamera : MonoBehaviour { namespace Spine.Unity.Examples {
public Transform target; public class ConstrainedCamera : MonoBehaviour {
public Vector3 offset; public Transform target;
public Vector3 min; public Vector3 offset;
public Vector3 max; public Vector3 min;
public float smoothing = 5f; public Vector3 max;
public float smoothing = 5f;
// Update is called once per frame // Update is called once per frame
void LateUpdate () { void LateUpdate () {
Vector3 goalPoint = target.position + offset; Vector3 goalPoint = target.position + offset;
goalPoint.x = Mathf.Clamp(goalPoint.x, min.x, max.x); goalPoint.x = Mathf.Clamp(goalPoint.x, min.x, max.x);
goalPoint.y = Mathf.Clamp(goalPoint.y, min.y, max.y); goalPoint.y = Mathf.Clamp(goalPoint.y, min.y, max.y);
goalPoint.z = Mathf.Clamp(goalPoint.z, min.z, max.z); goalPoint.z = Mathf.Clamp(goalPoint.z, min.z, max.z);
transform.position = Vector3.Lerp(transform.position, goalPoint, smoothing * Time.deltaTime); transform.position = Vector3.Lerp(transform.position, goalPoint, smoothing * Time.deltaTime);
}
} }
} }

View File

@ -32,54 +32,54 @@ using UnityEngine;
using System.Collections; using System.Collections;
using Spine.Unity; using Spine.Unity;
public class Raptor : MonoBehaviour { namespace Spine.Unity.Examples {
public class Raptor : MonoBehaviour {
#region Inspector #region Inspector
[SpineAnimation] [SpineAnimation]
public string walk = "walk"; public string walk = "walk";
[SpineAnimation] [SpineAnimation]
public string gungrab = "gungrab"; public string gungrab = "gungrab";
[SpineAnimation] [SpineAnimation]
public string gunkeep = "gunkeep"; public string gunkeep = "gunkeep";
[SpineEvent] [SpineEvent]
public string footstepEvent = "footstep"; public string footstepEvent = "footstep";
public AudioSource footstepAudioSource; public AudioSource footstepAudioSource;
#endregion #endregion
SkeletonAnimation skeletonAnimation; SkeletonAnimation skeletonAnimation;
void Start () { void Start () {
skeletonAnimation = GetComponent<SkeletonAnimation>(); skeletonAnimation = GetComponent<SkeletonAnimation>();
skeletonAnimation.state.Event += HandleEvent; skeletonAnimation.state.Event += HandleEvent;
StartCoroutine(GunGrabRoutine()); StartCoroutine(GunGrabRoutine());
}
void HandleEvent (Spine.TrackEntry trackEntry, Spine.Event e) {
if (e.Data.Name == footstepEvent) {
footstepAudioSource.pitch = 0.5f + Random.Range(-0.2f, 0.2f);
footstepAudioSource.Play();
} }
}
IEnumerator GunGrabRoutine () { void HandleEvent (Spine.TrackEntry trackEntry, Spine.Event e) {
// Play the walk animation on track 0. if (e.Data.Name == footstepEvent) {
skeletonAnimation.state.SetAnimation(0, walk, true); footstepAudioSource.pitch = 0.5f + Random.Range(-0.2f, 0.2f);
footstepAudioSource.Play();
}
}
// Repeatedly play the gungrab and gunkeep animation on track 1. IEnumerator GunGrabRoutine () {
while (true) { // Play the walk animation on track 0.
skeletonAnimation.state.SetAnimation(0, walk, true);
yield return new WaitForSeconds(Random.Range(0.5f, 3f));
skeletonAnimation.state.SetAnimation(1, gungrab, false);
yield return new WaitForSeconds(Random.Range(0.5f, 3f)); // Repeatedly play the gungrab and gunkeep animation on track 1.
skeletonAnimation.state.SetAnimation(1, gunkeep, false); while (true) {
yield return new WaitForSeconds(Random.Range(0.5f, 3f));
skeletonAnimation.state.SetAnimation(1, gungrab, false);
yield return new WaitForSeconds(Random.Range(0.5f, 3f));
skeletonAnimation.state.SetAnimation(1, gunkeep, false);
}
} }
} }
}
}

View File

@ -32,61 +32,64 @@ using UnityEngine;
using System.Collections; using System.Collections;
using Spine.Unity; using Spine.Unity;
public class SpineBeginnerTwo : MonoBehaviour { namespace Spine.Unity.Examples {
public class SpineBeginnerTwo : MonoBehaviour {
#region Inspector #region Inspector
// [SpineAnimation] attribute allows an Inspector dropdown of Spine animation names coming form SkeletonAnimation. // [SpineAnimation] attribute allows an Inspector dropdown of Spine animation names coming form SkeletonAnimation.
[SpineAnimation] [SpineAnimation]
public string runAnimationName; public string runAnimationName;
[SpineAnimation] [SpineAnimation]
public string idleAnimationName; public string idleAnimationName;
[SpineAnimation] [SpineAnimation]
public string walkAnimationName; public string walkAnimationName;
[SpineAnimation] [SpineAnimation]
public string shootAnimationName; public string shootAnimationName;
#endregion #endregion
SkeletonAnimation skeletonAnimation; SkeletonAnimation skeletonAnimation;
// Spine.AnimationState and Spine.Skeleton are not Unity-serialized objects. You will not see them as fields in the inspector. // Spine.AnimationState and Spine.Skeleton are not Unity-serialized objects. You will not see them as fields in the inspector.
public Spine.AnimationState spineAnimationState; public Spine.AnimationState spineAnimationState;
public Spine.Skeleton skeleton; public Spine.Skeleton skeleton;
void Start () { void Start () {
// Make sure you get these AnimationState and Skeleton references in Start or Later. Getting and using them in Awake is not guaranteed by default execution order. // Make sure you get these AnimationState and Skeleton references in Start or Later. Getting and using them in Awake is not guaranteed by default execution order.
skeletonAnimation = GetComponent<SkeletonAnimation>(); skeletonAnimation = GetComponent<SkeletonAnimation>();
spineAnimationState = skeletonAnimation.state; spineAnimationState = skeletonAnimation.state;
skeleton = skeletonAnimation.skeleton; skeleton = skeletonAnimation.skeleton;
StartCoroutine(DoDemoRoutine()); StartCoroutine(DoDemoRoutine());
} }
/// <summary>This is an infinitely repeating Unity Coroutine. Read the Unity documentation on Coroutines to learn more.</summary>
IEnumerator DoDemoRoutine () {
while (true) {
// SetAnimation is the basic way to set an animation.
// SetAnimation sets the animation and starts playing it from the beginning.
// Common Mistake: If you keep calling it in Update, it will keep showing the first pose of the animation, do don't do that.
spineAnimationState.SetAnimation(0, walkAnimationName, true); /// <summary>This is an infinitely repeating Unity Coroutine. Read the Unity documentation on Coroutines to learn more.</summary>
yield return new WaitForSeconds(1.5f); IEnumerator DoDemoRoutine () {
// skeletonAnimation.AnimationName = runAnimationName; // this line also works for quick testing/simple uses. while (true) {
spineAnimationState.SetAnimation(0, runAnimationName, true); // SetAnimation is the basic way to set an animation.
yield return new WaitForSeconds(1.5f); // SetAnimation sets the animation and starts playing it from the beginning.
// Common Mistake: If you keep calling it in Update, it will keep showing the first pose of the animation, do don't do that.
spineAnimationState.SetAnimation(0, idleAnimationName, true); spineAnimationState.SetAnimation(0, walkAnimationName, true);
yield return new WaitForSeconds(1f); yield return new WaitForSeconds(1.5f);
skeleton.FlipX = true; // skeleton allows you to flip the skeleton. // skeletonAnimation.AnimationName = runAnimationName; // this line also works for quick testing/simple uses.
yield return new WaitForSeconds(0.5f); spineAnimationState.SetAnimation(0, runAnimationName, true);
skeleton.FlipX = false; yield return new WaitForSeconds(1.5f);
yield return new WaitForSeconds(0.5f);
spineAnimationState.SetAnimation(0, idleAnimationName, true);
yield return new WaitForSeconds(1f);
skeleton.FlipX = true; // skeleton allows you to flip the skeleton.
yield return new WaitForSeconds(0.5f);
skeleton.FlipX = false;
yield return new WaitForSeconds(0.5f);
}
} }
} }
} }

View File

@ -32,20 +32,22 @@ using UnityEngine;
using System.Collections; using System.Collections;
using Spine.Unity; using Spine.Unity;
public class SpineBlinkPlayer : MonoBehaviour { namespace Spine.Unity.Examples {
const int BlinkTrack = 1; public class SpineBlinkPlayer : MonoBehaviour {
const int BlinkTrack = 1;
[SpineAnimation] [SpineAnimation]
public string blinkAnimation; public string blinkAnimation;
public float minimumDelay = 0.15f; public float minimumDelay = 0.15f;
public float maximumDelay = 3f; public float maximumDelay = 3f;
IEnumerator Start () { IEnumerator Start () {
var skeletonAnimation = GetComponent<SkeletonAnimation>(); if (skeletonAnimation == null) yield break; var skeletonAnimation = GetComponent<SkeletonAnimation>(); if (skeletonAnimation == null) yield break;
while (true) { while (true) {
skeletonAnimation.state.SetAnimation(SpineBlinkPlayer.BlinkTrack, blinkAnimation, false); skeletonAnimation.state.SetAnimation(SpineBlinkPlayer.BlinkTrack, blinkAnimation, false);
yield return new WaitForSeconds(Random.Range(minimumDelay, maximumDelay)); yield return new WaitForSeconds(Random.Range(minimumDelay, maximumDelay));
}
} }
}
}
} }

View File

@ -31,34 +31,33 @@
using UnityEngine; using UnityEngine;
using System.Collections; using System.Collections;
public class SpineboyBeginnerInput : MonoBehaviour { namespace Spine.Unity.Examples {
public class SpineboyBeginnerInput : MonoBehaviour {
#region Inspector
public string horizontalAxis = "Horizontal";
public string attackButton = "Fire1";
public string jumpButton = "Jump";
#region Inspector public SpineboyBeginnerModel model;
public string horizontalAxis = "Horizontal";
public string attackButton = "Fire1";
public string jumpButton = "Jump";
public SpineboyBeginnerModel model; void OnValidate () {
if (model == null)
model = GetComponent<SpineboyBeginnerModel>();
}
#endregion
void OnValidate () { void Update () {
if (model == null) if (model == null) return;
model = GetComponent<SpineboyBeginnerModel>();
float currentHorizontal = Input.GetAxisRaw(horizontalAxis);
model.TryMove(currentHorizontal);
if (Input.GetButton(attackButton))
model.TryShoot();
if (Input.GetButtonDown(jumpButton))
model.TryJump();
}
} }
#endregion
void Update () {
if (model == null) return;
float currentHorizontal = Input.GetAxisRaw(horizontalAxis);
model.TryMove(currentHorizontal);
if (Input.GetButton(attackButton))
model.TryShoot();
if (Input.GetButtonDown(jumpButton))
model.TryJump();
}
} }

View File

@ -31,83 +31,85 @@
using UnityEngine; using UnityEngine;
using System.Collections; using System.Collections;
[SelectionBase] namespace Spine.Unity.Examples {
public class SpineboyBeginnerModel : MonoBehaviour { [SelectionBase]
public class SpineboyBeginnerModel : MonoBehaviour {
#region Inspector #region Inspector
[Header("Current State")] [Header("Current State")]
public SpineBeginnerBodyState state; public SpineBeginnerBodyState state;
public bool facingLeft; public bool facingLeft;
[Range(-1f, 1f)] [Range(-1f, 1f)]
public float currentSpeed; public float currentSpeed;
[Header("Balance")] [Header("Balance")]
public float shootInterval = 0.12f; public float shootInterval = 0.12f;
#endregion #endregion
float lastShootTime; float lastShootTime;
public event System.Action ShootEvent; // Lets other scripts know when Spineboy is shooting. Check C# Documentation to learn more about events and delegates. public event System.Action ShootEvent; // Lets other scripts know when Spineboy is shooting. Check C# Documentation to learn more about events and delegates.
#region API #region API
public void TryJump () { public void TryJump () {
StartCoroutine(JumpRoutine()); StartCoroutine(JumpRoutine());
}
public void TryShoot () {
float currentTime = Time.time;
if (currentTime - lastShootTime > shootInterval) {
lastShootTime = currentTime;
if (ShootEvent != null) ShootEvent(); // Fire the "ShootEvent" event.
}
}
public void TryMove (float speed) {
currentSpeed = speed; // show the "speed" in the Inspector.
if (speed != 0) {
bool speedIsNegative = (speed < 0f);
facingLeft = speedIsNegative; // Change facing direction whenever speed is not 0.
}
if (state != SpineBeginnerBodyState.Jumping) {
state = (speed == 0) ? SpineBeginnerBodyState.Idle : SpineBeginnerBodyState.Running;
} }
} public void TryShoot () {
#endregion float currentTime = Time.time;
IEnumerator JumpRoutine () { if (currentTime - lastShootTime > shootInterval) {
if (state == SpineBeginnerBodyState.Jumping) yield break; // Don't jump when already jumping. lastShootTime = currentTime;
if (ShootEvent != null) ShootEvent(); // Fire the "ShootEvent" event.
state = SpineBeginnerBodyState.Jumping;
// Terribly-coded Fake jumping.
{
var pos = transform.localPosition;
const float jumpTime = 1.2f;
const float half = jumpTime * 0.5f;
const float jumpPower = 20f;
for (float t = 0; t < half; t += Time.deltaTime) {
float d = jumpPower * (half - t);
transform.Translate((d * Time.deltaTime) * Vector3.up);
yield return null;
} }
for (float t = 0; t < half; t += Time.deltaTime) {
float d = jumpPower * t;
transform.Translate((d * Time.deltaTime) * Vector3.down);
yield return null;
}
transform.localPosition = pos;
} }
state = SpineBeginnerBodyState.Idle; public void TryMove (float speed) {
currentSpeed = speed; // show the "speed" in the Inspector.
if (speed != 0) {
bool speedIsNegative = (speed < 0f);
facingLeft = speedIsNegative; // Change facing direction whenever speed is not 0.
}
if (state != SpineBeginnerBodyState.Jumping) {
state = (speed == 0) ? SpineBeginnerBodyState.Idle : SpineBeginnerBodyState.Running;
}
}
#endregion
IEnumerator JumpRoutine () {
if (state == SpineBeginnerBodyState.Jumping) yield break; // Don't jump when already jumping.
state = SpineBeginnerBodyState.Jumping;
// Fake jumping.
{
var pos = transform.localPosition;
const float jumpTime = 1.2f;
const float half = jumpTime * 0.5f;
const float jumpPower = 20f;
for (float t = 0; t < half; t += Time.deltaTime) {
float d = jumpPower * (half - t);
transform.Translate((d * Time.deltaTime) * Vector3.up);
yield return null;
}
for (float t = 0; t < half; t += Time.deltaTime) {
float d = jumpPower * t;
transform.Translate((d * Time.deltaTime) * Vector3.down);
yield return null;
}
transform.localPosition = pos;
}
state = SpineBeginnerBodyState.Idle;
}
} }
} public enum SpineBeginnerBodyState {
Idle,
public enum SpineBeginnerBodyState { Running,
Idle, Jumping
Running, }
Jumping
} }

View File

@ -32,113 +32,115 @@ using UnityEngine;
using System.Collections; using System.Collections;
using Spine.Unity; using Spine.Unity;
public class SpineboyBeginnerView : MonoBehaviour { namespace Spine.Unity.Examples {
public class SpineboyBeginnerView : MonoBehaviour {
#region Inspector
[Header("Components")]
public SpineboyBeginnerModel model;
public SkeletonAnimation skeletonAnimation;
//public ParticleSystem gunParticles;
[SpineAnimation] public string run, idle, shoot, jump; #region Inspector
[SpineEvent] public string footstepEventName; [Header("Components")]
public SpineboyBeginnerModel model;
public SkeletonAnimation skeletonAnimation;
[Header("Audio")] [SpineAnimation] public string run, idle, shoot, jump;
public float footstepPitchOffset = 0.2f; [SpineEvent] public string footstepEventName;
public float gunsoundPitchOffset = 0.13f;
public AudioSource footstepSource, gunSource, jumpSource;
[Header("Effects")] [Header("Audio")]
public ParticleSystem gunParticles; public float footstepPitchOffset = 0.2f;
#endregion public float gunsoundPitchOffset = 0.13f;
public AudioSource footstepSource, gunSource, jumpSource;
SpineBeginnerBodyState previousViewState; [Header("Effects")]
public ParticleSystem gunParticles;
#endregion
void Start () { SpineBeginnerBodyState previousViewState;
if (skeletonAnimation == null) return;
model.ShootEvent += PlayShoot;
skeletonAnimation.state.Event += HandleEvent;
}
void HandleEvent (Spine.TrackEntry trackEntry, Spine.Event e) { void Start () {
if (e.Data.Name == footstepEventName) if (skeletonAnimation == null) return;
PlayFootstepSound(); model.ShootEvent += PlayShoot;
} skeletonAnimation.state.Event += HandleEvent;
void Update () {
if (skeletonAnimation == null) return;
if (model == null) return;
if (skeletonAnimation.skeleton.FlipX != model.facingLeft) { // Detect changes in model.facingLeft
Turn(model.facingLeft);
} }
// Detect changes in model.state void HandleEvent (Spine.TrackEntry trackEntry, Spine.Event e) {
var currentModelState = model.state; if (e.Data.Name == footstepEventName)
PlayFootstepSound();
if (previousViewState != currentModelState) {
PlayNewStableAnimation();
}
previousViewState = currentModelState;
}
void PlayNewStableAnimation () {
var newModelState = model.state;
string nextAnimation;
// Add conditionals to not interrupt transient animations.
if (previousViewState == SpineBeginnerBodyState.Jumping && newModelState != SpineBeginnerBodyState.Jumping) {
PlayFootstepSound();
} }
if (newModelState == SpineBeginnerBodyState.Jumping) { void Update () {
jumpSource.Play(); if (skeletonAnimation == null) return;
nextAnimation = jump; if (model == null) return;
} else {
if (newModelState == SpineBeginnerBodyState.Running) { if (skeletonAnimation.skeleton.FlipX != model.facingLeft) { // Detect changes in model.facingLeft
nextAnimation = run; Turn(model.facingLeft);
} else {
nextAnimation = idle;
} }
// Detect changes in model.state
var currentModelState = model.state;
if (previousViewState != currentModelState) {
PlayNewStableAnimation();
}
previousViewState = currentModelState;
} }
skeletonAnimation.state.SetAnimation(0, nextAnimation, true); void PlayNewStableAnimation () {
var newModelState = model.state;
string nextAnimation;
// Add conditionals to not interrupt transient animations.
if (previousViewState == SpineBeginnerBodyState.Jumping && newModelState != SpineBeginnerBodyState.Jumping) {
PlayFootstepSound();
}
if (newModelState == SpineBeginnerBodyState.Jumping) {
jumpSource.Play();
nextAnimation = jump;
} else {
if (newModelState == SpineBeginnerBodyState.Running) {
nextAnimation = run;
} else {
nextAnimation = idle;
}
}
skeletonAnimation.state.SetAnimation(0, nextAnimation, true);
}
void PlayFootstepSound () {
footstepSource.Play();
footstepSource.pitch = GetRandomPitch(footstepPitchOffset);
}
[ContextMenu("Check Tracks")]
void CheckTracks () {
var state = skeletonAnimation.state;
Debug.Log(state.GetCurrent(0));
Debug.Log(state.GetCurrent(1));
}
#region Transient Actions
public void PlayShoot () {
// Play the shoot animation on track 1.
skeletonAnimation.state.SetAnimation(1, shoot, false);
//skeletonAnimation.state.AddEmptyAnimation(1, 0.1f, 0f);
gunSource.pitch = GetRandomPitch(gunsoundPitchOffset);
gunSource.Play();
gunParticles.randomSeed = (uint)Random.Range(0, 100);
gunParticles.Play();
}
public void Turn (bool facingLeft) {
skeletonAnimation.skeleton.FlipX = facingLeft;
// Maybe play a transient turning animation too, then call ChangeStableAnimation.
}
#endregion
#region Utility
public float GetRandomPitch (float maxPitchOffset) {
return 1f + Random.Range(-maxPitchOffset, maxPitchOffset);
}
#endregion
} }
void PlayFootstepSound () {
footstepSource.Play();
footstepSource.pitch = GetRandomPitch(footstepPitchOffset);
}
[ContextMenu("Check Tracks")]
void CheckTracks () {
var state = skeletonAnimation.state;
Debug.Log(state.GetCurrent(0));
Debug.Log(state.GetCurrent(1));
}
#region Transient Actions
public void PlayShoot () {
// Play the shoot animation on track 1.
skeletonAnimation.state.SetAnimation(1, shoot, false);
//skeletonAnimation.state.AddEmptyAnimation(1, 0.1f, 0f);
gunSource.pitch = GetRandomPitch(gunsoundPitchOffset);
gunSource.Play();
gunParticles.randomSeed = (uint)Random.Range(0, 100);
gunParticles.Play();
}
public void Turn (bool facingLeft) {
skeletonAnimation.skeleton.FlipX = facingLeft;
// Maybe play a transient turning animation too, then call ChangeStableAnimation.
}
#endregion
#region Utility
public float GetRandomPitch (float maxPitchOffset) {
return 1f + Random.Range(-maxPitchOffset, maxPitchOffset);
}
#endregion
} }

View File

@ -13,7 +13,7 @@ SceneSettings:
--- !u!104 &2 --- !u!104 &2
RenderSettings: RenderSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 6 serializedVersion: 7
m_Fog: 0 m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3 m_FogMode: 3
@ -37,12 +37,12 @@ RenderSettings:
m_ReflectionIntensity: 1 m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0} m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0} m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
--- !u!157 &4 --- !u!157 &4
LightmapSettings: LightmapSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 6 serializedVersion: 7
m_GIWorkflowMode: 1 m_GIWorkflowMode: 1
m_LightmapsMode: 1
m_GISettings: m_GISettings:
serializedVersion: 2 serializedVersion: 2
m_BounceScale: 1 m_BounceScale: 1
@ -53,17 +53,22 @@ LightmapSettings:
m_EnableBakedLightmaps: 1 m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0 m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings: m_LightmapEditorSettings:
serializedVersion: 3 serializedVersion: 4
m_Resolution: 1 m_Resolution: 1
m_BakeResolution: 50 m_BakeResolution: 50
m_TextureWidth: 1024 m_TextureWidth: 1024
m_TextureHeight: 1024 m_TextureHeight: 1024
m_AO: 0
m_AOMaxDistance: 1 m_AOMaxDistance: 1
m_Padding: 2
m_CompAOExponent: 0 m_CompAOExponent: 0
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0} m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 0 m_TextureCompression: 0
m_DirectLightInLightProbes: 1
m_FinalGather: 0 m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 1024 m_FinalGatherRayCount: 1024
m_ReflectionCompression: 2 m_ReflectionCompression: 2
m_LightingDataAsset: {fileID: 0} m_LightingDataAsset: {fileID: 0}
@ -168,6 +173,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10} m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
@ -248,9 +254,9 @@ MonoBehaviour:
renderMeshes: 1 renderMeshes: 1
immutableTriangles: 0 immutableTriangles: 0
pmaVertexColors: 1 pmaVertexColors: 1
clearStateOnDisable: 0
calculateNormals: 0 calculateNormals: 0
calculateTangents: 0 calculateTangents: 0
frontFacing: 0
logErrors: 0 logErrors: 0
disableRenderingOnOverride: 1 disableRenderingOnOverride: 1
_animationName: _animationName:
@ -265,17 +271,20 @@ MeshRenderer:
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 1
m_Materials: m_Materials:
- {fileID: 2100000, guid: 5a3598dafa118754db95756064347da7, type: 2} - {fileID: 2100000, guid: 5a3598dafa118754db95756064347da7, type: 2}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 0
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -298,6 +307,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 1 m_RootOrder: 1

View File

@ -13,7 +13,7 @@ SceneSettings:
--- !u!104 &2 --- !u!104 &2
RenderSettings: RenderSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 6 serializedVersion: 7
m_Fog: 0 m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3 m_FogMode: 3
@ -37,12 +37,12 @@ RenderSettings:
m_ReflectionIntensity: 1 m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0} m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0} m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
--- !u!157 &4 --- !u!157 &4
LightmapSettings: LightmapSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 6 serializedVersion: 7
m_GIWorkflowMode: 1 m_GIWorkflowMode: 1
m_LightmapsMode: 1
m_GISettings: m_GISettings:
serializedVersion: 2 serializedVersion: 2
m_BounceScale: 1 m_BounceScale: 1
@ -53,17 +53,22 @@ LightmapSettings:
m_EnableBakedLightmaps: 1 m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0 m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings: m_LightmapEditorSettings:
serializedVersion: 3 serializedVersion: 4
m_Resolution: 1 m_Resolution: 1
m_BakeResolution: 50 m_BakeResolution: 50
m_TextureWidth: 1024 m_TextureWidth: 1024
m_TextureHeight: 1024 m_TextureHeight: 1024
m_AO: 0
m_AOMaxDistance: 1 m_AOMaxDistance: 1
m_Padding: 2
m_CompAOExponent: 0 m_CompAOExponent: 0
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0} m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 0 m_TextureCompression: 0
m_DirectLightInLightProbes: 1
m_FinalGather: 0 m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 1024 m_FinalGatherRayCount: 1024
m_ReflectionCompression: 2 m_ReflectionCompression: 2
m_LightingDataAsset: {fileID: 0} m_LightingDataAsset: {fileID: 0}
@ -108,7 +113,7 @@ Light:
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 133751936} m_GameObject: {fileID: 133751936}
m_Enabled: 1 m_Enabled: 1
serializedVersion: 6 serializedVersion: 7
m_Type: 1 m_Type: 1
m_Color: {r: 1, g: 1, b: 1, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Intensity: 1.1 m_Intensity: 1.1
@ -116,8 +121,9 @@ Light:
m_SpotAngle: 30 m_SpotAngle: 30
m_CookieSize: 10 m_CookieSize: 10
m_Shadows: m_Shadows:
m_Type: 1 m_Type: 2
m_Resolution: -1 m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1 m_Strength: 1
m_Bias: 0.05 m_Bias: 0.05
m_NormalBias: 0.4 m_NormalBias: 0.4
@ -130,10 +136,10 @@ Light:
serializedVersion: 2 serializedVersion: 2
m_Bits: 4294967295 m_Bits: 4294967295
m_Lightmapping: 1 m_Lightmapping: 1
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1 m_BounceIntensity: 1
m_ShadowRadius: 0 m_ShadowRadius: 0
m_ShadowAngle: 0 m_ShadowAngle: 0
m_AreaSize: {x: 1, y: 1}
--- !u!4 &133751938 --- !u!4 &133751938
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -147,53 +153,6 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
--- !u!1001 &244083694
Prefab:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 400000, guid: d51ed5943e10bcb4394b5eec480293f8, type: 2}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: d51ed5943e10bcb4394b5eec480293f8, type: 2}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: d51ed5943e10bcb4394b5eec480293f8, type: 2}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: d51ed5943e10bcb4394b5eec480293f8, type: 2}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: d51ed5943e10bcb4394b5eec480293f8, type: 2}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: d51ed5943e10bcb4394b5eec480293f8, type: 2}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: d51ed5943e10bcb4394b5eec480293f8, type: 2}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 400000, guid: d51ed5943e10bcb4394b5eec480293f8, type: 2}
propertyPath: m_RootOrder
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3300000, guid: d51ed5943e10bcb4394b5eec480293f8, type: 2}
propertyPath: m_Mesh
value:
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: d51ed5943e10bcb4394b5eec480293f8, type: 2}
m_RootGameObject: {fileID: 2143290130}
m_IsPrefabParent: 0
--- !u!1 &560289061 --- !u!1 &560289061
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -220,17 +179,20 @@ MeshRenderer:
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 0 m_CastShadows: 0
m_ReceiveShadows: 1 m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 1
m_Materials: m_Materials:
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 0
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -348,7 +310,7 @@ Transform:
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 100000, guid: d51ed5943e10bcb4394b5eec480293f8, type: 2} m_PrefabParentObject: {fileID: 100000, guid: d51ed5943e10bcb4394b5eec480293f8, type: 2}
m_PrefabInternal: {fileID: 244083694} m_PrefabInternal: {fileID: 0}
serializedVersion: 4 serializedVersion: 4
m_Component: m_Component:
- 4: {fileID: 2143290134} - 4: {fileID: 2143290134}
@ -367,7 +329,7 @@ MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 11400000, guid: d51ed5943e10bcb4394b5eec480293f8, m_PrefabParentObject: {fileID: 11400000, guid: d51ed5943e10bcb4394b5eec480293f8,
type: 2} type: 2}
m_PrefabInternal: {fileID: 244083694} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2143290130} m_GameObject: {fileID: 2143290130}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
@ -381,6 +343,7 @@ MonoBehaviour:
renderMeshes: 1 renderMeshes: 1
immutableTriangles: 0 immutableTriangles: 0
pmaVertexColors: 1 pmaVertexColors: 1
clearStateOnDisable: 0
calculateNormals: 1 calculateNormals: 1
calculateTangents: 0 calculateTangents: 0
logErrors: 0 logErrors: 0
@ -393,11 +356,14 @@ MeshRenderer:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 2300000, guid: d51ed5943e10bcb4394b5eec480293f8, m_PrefabParentObject: {fileID: 2300000, guid: d51ed5943e10bcb4394b5eec480293f8,
type: 2} type: 2}
m_PrefabInternal: {fileID: 244083694} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2143290130} m_GameObject: {fileID: 2143290130}
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 1
m_Materials: m_Materials:
- {fileID: 2100000, guid: d58543c96f991934ca874395eb40222c, type: 2} - {fileID: 2100000, guid: d58543c96f991934ca874395eb40222c, type: 2}
- {fileID: 2100000, guid: 3277fd5561d95724e83c6ca4a1dd28a4, type: 2} - {fileID: 2100000, guid: 3277fd5561d95724e83c6ca4a1dd28a4, type: 2}
@ -413,13 +379,13 @@ MeshRenderer:
- {fileID: 2100000, guid: 3277fd5561d95724e83c6ca4a1dd28a4, type: 2} - {fileID: 2100000, guid: 3277fd5561d95724e83c6ca4a1dd28a4, type: 2}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 0
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -431,14 +397,14 @@ MeshFilter:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 3300000, guid: d51ed5943e10bcb4394b5eec480293f8, m_PrefabParentObject: {fileID: 3300000, guid: d51ed5943e10bcb4394b5eec480293f8,
type: 2} type: 2}
m_PrefabInternal: {fileID: 244083694} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2143290130} m_GameObject: {fileID: 2143290130}
m_Mesh: {fileID: 0} m_Mesh: {fileID: 0}
--- !u!4 &2143290134 --- !u!4 &2143290134
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 400000, guid: d51ed5943e10bcb4394b5eec480293f8, type: 2} m_PrefabParentObject: {fileID: 400000, guid: d51ed5943e10bcb4394b5eec480293f8, type: 2}
m_PrefabInternal: {fileID: 244083694} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2143290130} m_GameObject: {fileID: 2143290130}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,8 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: c5673b83016f67a4c99772dfb7b3c437 guid: 9b55bcfc2181c68418e59ee61ef5afc9
timeCreated: 1480087951
licenseType: Free
DefaultImporter: DefaultImporter:
userData: userData:
assetBundleName:
assetBundleVariant:

View File

@ -13,7 +13,7 @@ SceneSettings:
--- !u!104 &2 --- !u!104 &2
RenderSettings: RenderSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 6 serializedVersion: 7
m_Fog: 0 m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3 m_FogMode: 3
@ -37,12 +37,12 @@ RenderSettings:
m_ReflectionIntensity: 1 m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0} m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0} m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
--- !u!157 &3 --- !u!157 &3
LightmapSettings: LightmapSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 6 serializedVersion: 7
m_GIWorkflowMode: 1 m_GIWorkflowMode: 1
m_LightmapsMode: 1
m_GISettings: m_GISettings:
serializedVersion: 2 serializedVersion: 2
m_BounceScale: 1 m_BounceScale: 1
@ -53,17 +53,22 @@ LightmapSettings:
m_EnableBakedLightmaps: 0 m_EnableBakedLightmaps: 0
m_EnableRealtimeLightmaps: 0 m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings: m_LightmapEditorSettings:
serializedVersion: 3 serializedVersion: 4
m_Resolution: 2 m_Resolution: 2
m_BakeResolution: 40 m_BakeResolution: 40
m_TextureWidth: 1024 m_TextureWidth: 1024
m_TextureHeight: 1024 m_TextureHeight: 1024
m_AO: 0
m_AOMaxDistance: 1 m_AOMaxDistance: 1
m_Padding: 2
m_CompAOExponent: 0 m_CompAOExponent: 0
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0} m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1 m_TextureCompression: 1
m_DirectLightInLightProbes: 1
m_FinalGather: 0 m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 1024 m_FinalGatherRayCount: 1024
m_ReflectionCompression: 2 m_ReflectionCompression: 2
m_LightingDataAsset: {fileID: 0} m_LightingDataAsset: {fileID: 0}
@ -168,6 +173,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.02, y: 0.02, z: 0.1} m_LocalScale: {x: 0.02, y: 0.02, z: 0.1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: m_Children:
- {fileID: 2142418131} - {fileID: 2142418131}
m_Father: {fileID: 0} m_Father: {fileID: 0}
@ -232,9 +238,9 @@ MonoBehaviour:
renderMeshes: 1 renderMeshes: 1
immutableTriangles: 0 immutableTriangles: 0
pmaVertexColors: 1 pmaVertexColors: 1
clearStateOnDisable: 0
calculateNormals: 0 calculateNormals: 0
calculateTangents: 0 calculateTangents: 0
frontFacing: 0
logErrors: 0 logErrors: 0
disableRenderingOnOverride: 1 disableRenderingOnOverride: 1
_animationName: run _animationName: run
@ -249,18 +255,21 @@ MeshRenderer:
m_Enabled: 0 m_Enabled: 0
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 0 m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 1
m_Materials: m_Materials:
- {fileID: 0} - {fileID: 0}
- {fileID: 2100000, guid: 4083cd422558e2540a62bbafb94f57b5, type: 2} - {fileID: 2100000, guid: 1455e88fdb81ccc45bdeaedd657bad4d, type: 2}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 0
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -283,6 +292,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 6.75, y: -0.08, z: 0} m_LocalPosition: {x: 6.75, y: -0.08, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: m_Children:
- {fileID: 1769987563} - {fileID: 1769987563}
- {fileID: 1619823304} - {fileID: 1619823304}
@ -327,17 +337,20 @@ MeshRenderer:
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials: m_Materials:
- {fileID: 2100000, guid: 4083cd422558e2540a62bbafb94f57b5, type: 2} - {fileID: 2100000, guid: 1455e88fdb81ccc45bdeaedd657bad4d, type: 2}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 1
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -360,6 +373,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 1918225119} m_Father: {fileID: 1918225119}
m_RootOrder: 0 m_RootOrder: 0
@ -390,6 +404,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -1.3629907, y: 3.7230203, z: 0} m_LocalPosition: {x: -1.3629907, y: 3.7230203, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 93048079} m_Father: {fileID: 93048079}
m_RootOrder: 2 m_RootOrder: 2
@ -402,17 +417,20 @@ ParticleSystemRenderer:
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 0
m_Materials: m_Materials:
- {fileID: 10754, guid: 0000000000000000e000000000000000, type: 0} - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 1
m_ReflectionProbeUsage: 0
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -449,14 +467,15 @@ MonoBehaviour:
boneName: front_fist boneName: front_fist
followZPosition: 0 followZPosition: 0
followBoneRotation: 0 followBoneRotation: 0
resetOnAwake: 1 followSkeletonFlip: 0
initializeOnAwake: 1
--- !u!198 &565117365 --- !u!198 &565117365
ParticleSystem: ParticleSystem:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 565117361} m_GameObject: {fileID: 565117361}
serializedVersion: 2 serializedVersion: 4
lengthInSec: 5 lengthInSec: 5
startDelay: startDelay:
scalar: 0 scalar: 0
@ -494,12 +513,13 @@ ParticleSystem:
m_RotationOrder: 4 m_RotationOrder: 4
minMaxState: 0 minMaxState: 0
speed: 1 speed: 1
randomSeed: 0
looping: 1 looping: 1
prewarm: 0 prewarm: 0
playOnAwake: 1 playOnAwake: 1
moveWithTransform: 0 moveWithTransform: 0
autoRandomSeed: 1
scalingMode: 1 scalingMode: 1
randomSeed: 0
InitialModule: InitialModule:
serializedVersion: 2 serializedVersion: 2
enabled: 1 enabled: 1
@ -574,6 +594,7 @@ ParticleSystem:
m_RotationOrder: 4 m_RotationOrder: 4
minMaxState: 0 minMaxState: 0
startColor: startColor:
serializedVersion: 2
maxGradient: maxGradient:
key0: key0:
serializedVersion: 2 serializedVersion: 2
@ -660,12 +681,8 @@ ParticleSystem:
atime7: 0 atime7: 0
m_NumColorKeys: 2 m_NumColorKeys: 2
m_NumAlphaKeys: 2 m_NumAlphaKeys: 2
minColor: minColor: {r: 1, g: 1, b: 1, a: 1}
serializedVersion: 2 maxColor: {r: 1, g: 0.5176471, b: 0, a: 1}
rgba: 4294967295
maxColor:
serializedVersion: 2
rgba: 4278224127
minMaxState: 0 minMaxState: 0
startSize: startSize:
scalar: 0.5 scalar: 0.5
@ -702,6 +719,76 @@ ParticleSystem:
m_PostInfinity: 2 m_PostInfinity: 2
m_RotationOrder: 4 m_RotationOrder: 4
minMaxState: 0 minMaxState: 0
startSizeY:
scalar: 1
maxCurve:
serializedVersion: 2
m_Curve:
- time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
- time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
minCurve:
serializedVersion: 2
m_Curve:
- time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
- time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
minMaxState: 0
startSizeZ:
scalar: 1
maxCurve:
serializedVersion: 2
m_Curve:
- time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
- time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
minCurve:
serializedVersion: 2
m_Curve:
- time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
- time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
minMaxState: 0
startRotationX: startRotationX:
scalar: 0 scalar: 0
maxCurve: maxCurve:
@ -810,6 +897,7 @@ ParticleSystem:
randomizeRotationDirection: 0 randomizeRotationDirection: 0
gravityModifier: 0 gravityModifier: 0
maxNumParticles: 100 maxNumParticles: 100
size3D: 0
rotation3D: 0 rotation3D: 0
ShapeModule: ShapeModule:
serializedVersion: 2 serializedVersion: 2
@ -925,6 +1013,77 @@ ParticleSystem:
m_PostInfinity: 2 m_PostInfinity: 2
m_RotationOrder: 4 m_RotationOrder: 4
minMaxState: 1 minMaxState: 1
y:
scalar: 1
maxCurve:
serializedVersion: 2
m_Curve:
- time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
- time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
minCurve:
serializedVersion: 2
m_Curve:
- time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
- time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
minMaxState: 1
z:
scalar: 1
maxCurve:
serializedVersion: 2
m_Curve:
- time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
- time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
minCurve:
serializedVersion: 2
m_Curve:
- time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
- time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
minMaxState: 1
separateAxes: 0
RotationModule: RotationModule:
enabled: 0 enabled: 0
x: x:
@ -1036,6 +1195,7 @@ ParticleSystem:
ColorModule: ColorModule:
enabled: 0 enabled: 0
gradient: gradient:
serializedVersion: 2
maxGradient: maxGradient:
key0: key0:
serializedVersion: 2 serializedVersion: 2
@ -1122,17 +1282,13 @@ ParticleSystem:
atime7: 0 atime7: 0
m_NumColorKeys: 2 m_NumColorKeys: 2
m_NumAlphaKeys: 2 m_NumAlphaKeys: 2
minColor: minColor: {r: 1, g: 1, b: 1, a: 1}
serializedVersion: 2 maxColor: {r: 1, g: 1, b: 1, a: 1}
rgba: 4294967295
maxColor:
serializedVersion: 2
rgba: 4294967295
minMaxState: 1 minMaxState: 1
UVModule: UVModule:
enabled: 0 enabled: 0
frameOverTime: frameOverTime:
scalar: 1 scalar: 0.9999
maxCurve: maxCurve:
serializedVersion: 2 serializedVersion: 2
m_Curve: m_Curve:
@ -1166,11 +1322,47 @@ ParticleSystem:
m_PostInfinity: 2 m_PostInfinity: 2
m_RotationOrder: 4 m_RotationOrder: 4
minMaxState: 1 minMaxState: 1
startFrame:
scalar: 0
maxCurve:
serializedVersion: 2
m_Curve:
- time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
- time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
minCurve:
serializedVersion: 2
m_Curve:
- time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
- time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
minMaxState: 0
tilesX: 1 tilesX: 1
tilesY: 1 tilesY: 1
animationType: 0 animationType: 0
rowIndex: 0 rowIndex: 0
cycles: 1 cycles: 1
uvChannelMask: -1
randomRow: 1 randomRow: 1
VelocityModule: VelocityModule:
enabled: 0 enabled: 0
@ -1612,7 +1804,78 @@ ParticleSystem:
m_PostInfinity: 2 m_PostInfinity: 2
m_RotationOrder: 4 m_RotationOrder: 4
minMaxState: 1 minMaxState: 1
y:
scalar: 1
maxCurve:
serializedVersion: 2
m_Curve:
- time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
- time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
minCurve:
serializedVersion: 2
m_Curve:
- time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
- time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
minMaxState: 1
z:
scalar: 1
maxCurve:
serializedVersion: 2
m_Curve:
- time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
- time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
minCurve:
serializedVersion: 2
m_Curve:
- time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
- time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
minMaxState: 1
range: {x: 0, y: 1} range: {x: 0, y: 1}
separateAxes: 0
RotationBySpeedModule: RotationBySpeedModule:
enabled: 0 enabled: 0
x: x:
@ -1725,6 +1988,7 @@ ParticleSystem:
ColorBySpeedModule: ColorBySpeedModule:
enabled: 0 enabled: 0
gradient: gradient:
serializedVersion: 2
maxGradient: maxGradient:
key0: key0:
serializedVersion: 2 serializedVersion: 2
@ -1811,17 +2075,13 @@ ParticleSystem:
atime7: 0 atime7: 0
m_NumColorKeys: 2 m_NumColorKeys: 2
m_NumAlphaKeys: 2 m_NumAlphaKeys: 2
minColor: minColor: {r: 1, g: 1, b: 1, a: 1}
serializedVersion: 2 maxColor: {r: 1, g: 1, b: 1, a: 1}
rgba: 4294967295
maxColor:
serializedVersion: 2
rgba: 4294967295
minMaxState: 1 minMaxState: 1
range: {x: 0, y: 1} range: {x: 0, y: 1}
CollisionModule: CollisionModule:
enabled: 0 enabled: 0
serializedVersion: 2 serializedVersion: 3
type: 0 type: 0
collisionMode: 0 collisionMode: 0
plane0: {fileID: 0} plane0: {fileID: 0}
@ -1936,6 +2196,7 @@ ParticleSystem:
m_RotationOrder: 4 m_RotationOrder: 4
minMaxState: 0 minMaxState: 0
minKillSpeed: 0 minKillSpeed: 0
maxKillSpeed: 10000
radiusScale: 1 radiusScale: 1
collidesWith: collidesWith:
serializedVersion: 2 serializedVersion: 2
@ -1946,6 +2207,19 @@ ParticleSystem:
collisionMessages: 0 collisionMessages: 0
collidesWithDynamic: 1 collidesWithDynamic: 1
interiorCollisions: 1 interiorCollisions: 1
TriggerModule:
enabled: 0
collisionShape0: {fileID: 0}
collisionShape1: {fileID: 0}
collisionShape2: {fileID: 0}
collisionShape3: {fileID: 0}
collisionShape4: {fileID: 0}
collisionShape5: {fileID: 0}
inside: 1
outside: 0
enter: 0
exit: 0
radiusScale: 1
SubModule: SubModule:
enabled: 0 enabled: 0
subEmitterBirth: {fileID: 0} subEmitterBirth: {fileID: 0}
@ -2037,6 +2311,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.02, y: 0.02, z: 0.1} m_LocalScale: {x: 0.02, y: 0.02, z: 0.1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: m_Children:
- {fileID: 1618699050} - {fileID: 1618699050}
m_Father: {fileID: 0} m_Father: {fileID: 0}
@ -2071,17 +2346,20 @@ SpriteRenderer:
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 0 m_CastShadows: 0
m_ReceiveShadows: 0 m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 0
m_Materials: m_Materials:
- {fileID: 10754, guid: 0000000000000000e000000000000000, type: 0} - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 0
m_ReflectionProbeUsage: 0
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 1
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -2101,6 +2379,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 5.5483284, y: 48.482475, z: 1} m_LocalScale: {x: 5.5483284, y: 48.482475, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 1675659861} m_Father: {fileID: 1675659861}
m_RootOrder: 0 m_RootOrder: 0
@ -2129,6 +2408,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.06, y: 0, z: 0} m_LocalPosition: {x: 0.06, y: 0, z: 0}
m_LocalScale: {x: 4.661441, y: 48.482475, z: 1} m_LocalScale: {x: 4.661441, y: 48.482475, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 1675659861} m_Father: {fileID: 1675659861}
m_RootOrder: 1 m_RootOrder: 1
@ -2141,17 +2421,20 @@ SpriteRenderer:
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 0 m_CastShadows: 0
m_ReceiveShadows: 0 m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 0
m_Materials: m_Materials:
- {fileID: 10754, guid: 0000000000000000e000000000000000, type: 0} - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 0
m_ReflectionProbeUsage: 0
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 1
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -2187,6 +2470,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.44, y: 0, z: 0} m_LocalPosition: {x: 0.44, y: 0, z: 0}
m_LocalScale: {x: 0.44441086, y: 48.482475, z: 1} m_LocalScale: {x: 0.44441086, y: 48.482475, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 1675659861} m_Father: {fileID: 1675659861}
m_RootOrder: 2 m_RootOrder: 2
@ -2199,17 +2483,20 @@ SpriteRenderer:
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 0 m_CastShadows: 0
m_ReceiveShadows: 0 m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 0
m_Materials: m_Materials:
- {fileID: 10754, guid: 0000000000000000e000000000000000, type: 0} - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 0
m_ReflectionProbeUsage: 0
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 1
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -2303,6 +2590,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -10} m_LocalPosition: {x: 0, y: 0, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
@ -2332,6 +2620,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 624843597} m_Father: {fileID: 624843597}
m_RootOrder: 0 m_RootOrder: 0
@ -2422,17 +2711,20 @@ MeshRenderer:
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials: m_Materials:
- {fileID: 2100000, guid: 4083cd422558e2540a62bbafb94f57b5, type: 2} - {fileID: 2100000, guid: 1455e88fdb81ccc45bdeaedd657bad4d, type: 2}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 1
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -2455,6 +2747,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 93048079} m_Father: {fileID: 93048079}
m_RootOrder: 1 m_RootOrder: 1
@ -2482,6 +2775,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 3.5889997, y: 0.001999855, z: 0} m_LocalPosition: {x: 3.5889997, y: 0.001999855, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: m_Children:
- {fileID: 774732877} - {fileID: 774732877}
- {fileID: 1149289854} - {fileID: 1149289854}
@ -2526,17 +2820,20 @@ MeshRenderer:
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials: m_Materials:
- {fileID: 2100000, guid: 4083cd422558e2540a62bbafb94f57b5, type: 2} - {fileID: 2100000, guid: 1455e88fdb81ccc45bdeaedd657bad4d, type: 2}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 1
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -2559,6 +2856,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 1918225119} m_Father: {fileID: 1918225119}
m_RootOrder: 1 m_RootOrder: 1
@ -2600,17 +2898,20 @@ MeshRenderer:
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials: m_Materials:
- {fileID: 2100000, guid: 4083cd422558e2540a62bbafb94f57b5, type: 2} - {fileID: 2100000, guid: 1455e88fdb81ccc45bdeaedd657bad4d, type: 2}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 1
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -2633,6 +2934,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 93048079} m_Father: {fileID: 93048079}
m_RootOrder: 0 m_RootOrder: 0
@ -2692,9 +2994,9 @@ MonoBehaviour:
renderMeshes: 1 renderMeshes: 1
immutableTriangles: 0 immutableTriangles: 0
pmaVertexColors: 1 pmaVertexColors: 1
clearStateOnDisable: 0
calculateNormals: 0 calculateNormals: 0
calculateTangents: 0 calculateTangents: 0
frontFacing: 0
logErrors: 0 logErrors: 0
disableRenderingOnOverride: 1 disableRenderingOnOverride: 1
_animationName: _animationName:
@ -2709,18 +3011,21 @@ MeshRenderer:
m_Enabled: 0 m_Enabled: 0
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 0 m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 1
m_Materials: m_Materials:
- {fileID: 0} - {fileID: 0}
- {fileID: 2100000, guid: 4083cd422558e2540a62bbafb94f57b5, type: 2} - {fileID: 2100000, guid: 1455e88fdb81ccc45bdeaedd657bad4d, type: 2}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 0
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -2743,6 +3048,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -6.18, y: -3.53, z: 0} m_LocalPosition: {x: -6.18, y: -3.53, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: m_Children:
- {fileID: 122287543} - {fileID: 122287543}
- {fileID: 1698487795} - {fileID: 1698487795}
@ -2791,6 +3097,7 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 51877973} m_Father: {fileID: 51877973}
m_RootOrder: 0 m_RootOrder: 0

View File

@ -13,7 +13,7 @@ SceneSettings:
--- !u!104 &2 --- !u!104 &2
RenderSettings: RenderSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 6 serializedVersion: 7
m_Fog: 0 m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3 m_FogMode: 3
@ -37,12 +37,12 @@ RenderSettings:
m_ReflectionIntensity: 1 m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0} m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0} m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
--- !u!157 &4 --- !u!157 &4
LightmapSettings: LightmapSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 6 serializedVersion: 7
m_GIWorkflowMode: 1 m_GIWorkflowMode: 1
m_LightmapsMode: 1
m_GISettings: m_GISettings:
serializedVersion: 2 serializedVersion: 2
m_BounceScale: 1 m_BounceScale: 1
@ -53,17 +53,22 @@ LightmapSettings:
m_EnableBakedLightmaps: 1 m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0 m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings: m_LightmapEditorSettings:
serializedVersion: 3 serializedVersion: 4
m_Resolution: 1 m_Resolution: 1
m_BakeResolution: 50 m_BakeResolution: 50
m_TextureWidth: 1024 m_TextureWidth: 1024
m_TextureHeight: 1024 m_TextureHeight: 1024
m_AO: 0
m_AOMaxDistance: 1 m_AOMaxDistance: 1
m_Padding: 2
m_CompAOExponent: 0 m_CompAOExponent: 0
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0} m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 0 m_TextureCompression: 0
m_DirectLightInLightProbes: 1
m_FinalGather: 0 m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 1024 m_FinalGatherRayCount: 1024
m_ReflectionCompression: 2 m_ReflectionCompression: 2
m_LightingDataAsset: {fileID: 0} m_LightingDataAsset: {fileID: 0}
@ -108,9 +113,10 @@ Transform:
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 36219066} m_GameObject: {fileID: 36219066}
m_LocalRotation: {x: 0, y: 0, z: -0.52048814, w: 0.8538689} m_LocalRotation: {x: -0, y: -0, z: -0.5187491, w: 0.8549265}
m_LocalPosition: {x: -2.3325999, y: 1.2458895, z: 0} m_LocalPosition: {x: -2.3325999, y: 1.2458895, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 973814792} m_Father: {fileID: 973814792}
m_RootOrder: 1 m_RootOrder: 1
@ -146,16 +152,14 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: b238dfcde8209044b97d23f62bcaadf6, type: 3} m_Script: {fileID: 11500000, guid: b238dfcde8209044b97d23f62bcaadf6, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
boneName: rear_foot_goal
parentReference: {fileID: 0}
mode: 0 mode: 0
zPosition: 1
position: 1 position: 1
rotation: 1 rotation: 1
scale: 1 scale: 1
flip: 0 zPosition: 1
flipX: 0
overrideAlpha: 1 overrideAlpha: 1
boneName: rear_foot_goal
parentReference: {fileID: 0}
--- !u!1 &44654812 --- !u!1 &44654812
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -180,6 +184,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: m_Children:
- {fileID: 973814792} - {fileID: 973814792}
m_Father: {fileID: 120294521} m_Father: {fileID: 120294521}
@ -212,6 +217,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: -0.15, z: 0} m_LocalPosition: {x: 0, y: -0.15, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: m_Children:
- {fileID: 44654813} - {fileID: 44654813}
m_Father: {fileID: 0} m_Father: {fileID: 0}
@ -247,9 +253,9 @@ MonoBehaviour:
renderMeshes: 1 renderMeshes: 1
immutableTriangles: 0 immutableTriangles: 0
pmaVertexColors: 1 pmaVertexColors: 1
clearStateOnDisable: 0
calculateNormals: 0 calculateNormals: 0
calculateTangents: 0 calculateTangents: 0
frontFacing: 0
logErrors: 0 logErrors: 0
disableRenderingOnOverride: 1 disableRenderingOnOverride: 1
_animationName: walk _animationName: walk
@ -264,17 +270,20 @@ MeshRenderer:
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 1
m_Materials: m_Materials:
- {fileID: 2100000, guid: 4e2feebfcaa26a54ab19f1ff3e0eae35, type: 2} - {fileID: 2100000, guid: 4e2feebfcaa26a54ab19f1ff3e0eae35, type: 2}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 0
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -310,9 +319,10 @@ Transform:
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 973814791} m_GameObject: {fileID: 973814791}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: m_Children:
- {fileID: 1984548219} - {fileID: 1984548219}
- {fileID: 36219067} - {fileID: 36219067}
@ -329,16 +339,14 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: b238dfcde8209044b97d23f62bcaadf6, type: 3} m_Script: {fileID: 11500000, guid: b238dfcde8209044b97d23f62bcaadf6, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
boneName: root
parentReference: {fileID: 0}
mode: 0 mode: 0
zPosition: 1
position: 1 position: 1
rotation: 1 rotation: 1
scale: 1 scale: 1
flip: 0 zPosition: 1
flipX: 0
overrideAlpha: 1 overrideAlpha: 1
boneName: root
parentReference: {fileID: 0}
--- !u!1 &976394122 --- !u!1 &976394122
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -422,6 +430,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -12} m_LocalPosition: {x: 0, y: 1, z: -12}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
@ -452,17 +461,20 @@ MeshRenderer:
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 1
m_Materials: m_Materials:
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 0
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -497,6 +509,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: -0.08522272, w: 0.996362} m_LocalRotation: {x: 0, y: 0, z: -0.08522272, w: 0.996362}
m_LocalPosition: {x: 0.29366082, y: 0.13593975, z: 2} m_LocalPosition: {x: 0.29366082, y: 0.13593975, z: 2}
m_LocalScale: {x: 13, y: 1, z: 2.6603487} m_LocalScale: {x: 13, y: 1, z: 2.6603487}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 2 m_RootOrder: 2
@ -549,25 +562,24 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: b238dfcde8209044b97d23f62bcaadf6, type: 3} m_Script: {fileID: 11500000, guid: b238dfcde8209044b97d23f62bcaadf6, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
boneName: front_foot_goal
parentReference: {fileID: 0}
mode: 0 mode: 0
zPosition: 1
position: 1 position: 1
rotation: 1 rotation: 1
scale: 1 scale: 1
flip: 0 zPosition: 1
flipX: 0
overrideAlpha: 1 overrideAlpha: 1
boneName: front_foot_goal
parentReference: {fileID: 0}
--- !u!4 &1984548219 --- !u!4 &1984548219
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0} m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1984548216} m_GameObject: {fileID: 1984548216}
m_LocalRotation: {x: 0, y: 0, z: -0.008202955, w: 0.9999664} m_LocalRotation: {x: -0, y: -0, z: -0.00795751, w: 0.99996835}
m_LocalPosition: {x: 2.9748998, y: 0.3312556, z: 0} m_LocalPosition: {x: 2.9748998, y: 0.3312556, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 973814792} m_Father: {fileID: 973814792}
m_RootOrder: 0 m_RootOrder: 0

View File

@ -13,7 +13,7 @@ SceneSettings:
--- !u!104 &2 --- !u!104 &2
RenderSettings: RenderSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 6 serializedVersion: 7
m_Fog: 0 m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3 m_FogMode: 3
@ -37,12 +37,12 @@ RenderSettings:
m_ReflectionIntensity: 1 m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0} m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0} m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
--- !u!157 &4 --- !u!157 &4
LightmapSettings: LightmapSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 6 serializedVersion: 7
m_GIWorkflowMode: 1 m_GIWorkflowMode: 1
m_LightmapsMode: 1
m_GISettings: m_GISettings:
serializedVersion: 2 serializedVersion: 2
m_BounceScale: 1 m_BounceScale: 1
@ -53,17 +53,22 @@ LightmapSettings:
m_EnableBakedLightmaps: 1 m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0 m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings: m_LightmapEditorSettings:
serializedVersion: 3 serializedVersion: 4
m_Resolution: 1 m_Resolution: 1
m_BakeResolution: 50 m_BakeResolution: 50
m_TextureWidth: 1024 m_TextureWidth: 1024
m_TextureHeight: 1024 m_TextureHeight: 1024
m_AO: 0
m_AOMaxDistance: 1 m_AOMaxDistance: 1
m_Padding: 2
m_CompAOExponent: 0 m_CompAOExponent: 0
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0} m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 0 m_TextureCompression: 0
m_DirectLightInLightProbes: 1
m_FinalGather: 0 m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 1024 m_FinalGatherRayCount: 1024
m_ReflectionCompression: 2 m_ReflectionCompression: 2
m_LightingDataAsset: {fileID: 0} m_LightingDataAsset: {fileID: 0}
@ -172,12 +177,174 @@ RectTransform:
m_Children: m_Children:
- {fileID: 2122594306} - {fileID: 2122594306}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 6 m_RootOrder: 5
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0} m_Pivot: {x: 0, y: 0}
--- !u!1 &138285500
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 183998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 138285507}
- 33: {fileID: 138285506}
- 23: {fileID: 138285505}
- 114: {fileID: 138285504}
- 114: {fileID: 138285503}
- 114: {fileID: 138285502}
- 60: {fileID: 138285501}
m_Layer: 0
m_Name: Raggedy Spineboy
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!60 &138285501
PolygonCollider2D:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 6083998, guid: 5c60df38c5334a249b38ac8cddc6433b,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 138285500}
m_Enabled: 1
m_Density: 1
m_Material: {fileID: 0}
m_IsTrigger: 0
m_UsedByEffector: 0
m_Offset: {x: 0, y: 0}
m_Points:
m_Paths:
- - {x: -0.25825587, y: 3.1820273}
- {x: 0.31586242, y: 3.1818907}
- {x: 0.55882263, y: 2.040349}
- {x: 0.434707, y: 0.0013669459}
- {x: -0.45539615, y: 0.0013672132}
- {x: -0.61691463, y: 2.0021477}
--- !u!114 &138285502
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 11483998, guid: 5c60df38c5334a249b38ac8cddc6433b,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 138285500}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 849a7739a7df0754882fcb34c09df4c1, type: 3}
m_Name:
m_EditorClassIdentifier:
groundMask:
serializedVersion: 2
m_Bits: 4294967295
restoreDuration: 0.5
launchVelocity: {x: 40, y: 85}
--- !u!114 &138285503
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 11483996, guid: 5c60df38c5334a249b38ac8cddc6433b,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 138285500}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e74a49a26242a214d9084fde00bfe3ab, type: 3}
m_Name:
m_EditorClassIdentifier:
startingBoneName: hip
stopBoneNames: []
applyOnStart: 0
disableIK: 1
disableOtherConstraints: 0
pinStartBone: 0
gravityScale: 3
thickness: 0.125
rotationLimit: 20
rootMass: 40
massFalloffFactor: 0.504
colliderLayer: 0
mix: 1
--- !u!114 &138285504
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 11483994, guid: 5c60df38c5334a249b38ac8cddc6433b,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 138285500}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d247ba06193faa74d9335f5481b2b56c, type: 3}
m_Name:
m_EditorClassIdentifier:
skeletonDataAsset: {fileID: 11400000, guid: 57484171e9b9c7243aa3117bc663e7b9, type: 2}
initialSkinName: default
separatorSlotNames: []
zSpacing: 0
renderMeshes: 1
immutableTriangles: 0
pmaVertexColors: 1
clearStateOnDisable: 0
calculateNormals: 0
calculateTangents: 0
logErrors: 0
disableRenderingOnOverride: 1
_animationName: animation
loop: 1
timeScale: 1
--- !u!23 &138285505
MeshRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 2383998, guid: 5c60df38c5334a249b38ac8cddc6433b,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 138285500}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 2100000, guid: 4ad4f7167d4983147ad870f93ebc9416, type: 2}
m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingOrder: 0
--- !u!33 &138285506
MeshFilter:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 3383998, guid: 5c60df38c5334a249b38ac8cddc6433b,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 138285500}
m_Mesh: {fileID: 0}
--- !u!4 &138285507
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 138285500}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -2.55, y: -3.07, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
--- !u!1 &279948894 --- !u!1 &279948894
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -219,17 +386,20 @@ MeshRenderer:
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 1
m_Materials: m_Materials:
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 0
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -310,17 +480,20 @@ MeshRenderer:
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 1
m_Materials: m_Materials:
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 0
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -334,60 +507,6 @@ MeshFilter:
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 281786970} m_GameObject: {fileID: 281786970}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1001 &410436501
Prefab:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
propertyPath: m_LocalPosition.x
value: 4.67
objectReference: {fileID: 0}
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
propertyPath: m_LocalPosition.y
value: -3.07
objectReference: {fileID: 0}
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
propertyPath: m_RootOrder
value: 7
objectReference: {fileID: 0}
- target: {fileID: 3383998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
propertyPath: m_Mesh
value:
objectReference: {fileID: 0}
- target: {fileID: 11483996, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
propertyPath: colliderLayer
value: 0
objectReference: {fileID: 0}
- target: {fileID: 11483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
propertyPath: groundMask.m_Bits
value: 4294967295
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
m_IsPrefabParent: 0
--- !u!1 &469940167 --- !u!1 &469940167
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -442,17 +561,20 @@ MeshRenderer:
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 1
m_Materials: m_Materials:
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 0
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -466,60 +588,168 @@ MeshFilter:
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 469940167} m_GameObject: {fileID: 469940167}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1001 &678089918 --- !u!1 &689192947
Prefab: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 2 m_PrefabParentObject: {fileID: 183998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
m_Modification: m_PrefabInternal: {fileID: 0}
m_TransformParent: {fileID: 0} serializedVersion: 4
m_Modifications: m_Component:
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2} - 4: {fileID: 689192954}
propertyPath: m_LocalPosition.x - 33: {fileID: 689192953}
value: -2.55 - 23: {fileID: 689192952}
objectReference: {fileID: 0} - 114: {fileID: 689192951}
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2} - 114: {fileID: 689192950}
propertyPath: m_LocalPosition.y - 114: {fileID: 689192949}
value: -3.07 - 60: {fileID: 689192948}
objectReference: {fileID: 0} m_Layer: 0
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2} m_Name: Raggedy Spineboy
propertyPath: m_LocalPosition.z m_TagString: Untagged
value: 0 m_Icon: {fileID: 0}
objectReference: {fileID: 0} m_NavMeshLayer: 0
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2} m_StaticEditorFlags: 0
propertyPath: m_LocalRotation.x m_IsActive: 1
value: 0 --- !u!60 &689192948
objectReference: {fileID: 0} PolygonCollider2D:
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2} m_ObjectHideFlags: 0
propertyPath: m_LocalRotation.y m_PrefabParentObject: {fileID: 6083998, guid: 5c60df38c5334a249b38ac8cddc6433b,
value: 0 type: 2}
objectReference: {fileID: 0} m_PrefabInternal: {fileID: 0}
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2} m_GameObject: {fileID: 689192947}
propertyPath: m_LocalRotation.z m_Enabled: 1
value: 0 m_Density: 1
objectReference: {fileID: 0} m_Material: {fileID: 0}
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2} m_IsTrigger: 0
propertyPath: m_LocalRotation.w m_UsedByEffector: 0
value: 1 m_Offset: {x: 0, y: 0}
objectReference: {fileID: 0} m_Points:
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2} m_Paths:
propertyPath: m_RootOrder - - {x: -0.25825587, y: 3.1820273}
value: 1 - {x: 0.31586242, y: 3.1818907}
objectReference: {fileID: 0} - {x: 0.55882263, y: 2.040349}
- target: {fileID: 3383998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2} - {x: 0.434707, y: 0.0013669459}
propertyPath: m_Mesh - {x: -0.45539615, y: 0.0013672132}
value: - {x: -0.61691463, y: 2.0021477}
objectReference: {fileID: 0} --- !u!114 &689192949
- target: {fileID: 11483996, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2} MonoBehaviour:
propertyPath: colliderLayer m_ObjectHideFlags: 0
value: 0 m_PrefabParentObject: {fileID: 11483998, guid: 5c60df38c5334a249b38ac8cddc6433b,
objectReference: {fileID: 0} type: 2}
- target: {fileID: 11483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2} m_PrefabInternal: {fileID: 0}
propertyPath: groundMask.m_Bits m_GameObject: {fileID: 689192947}
value: 4294967295 m_Enabled: 1
objectReference: {fileID: 0} m_EditorHideFlags: 0
m_RemovedComponents: [] m_Script: {fileID: 11500000, guid: 849a7739a7df0754882fcb34c09df4c1, type: 3}
m_ParentPrefab: {fileID: 100100000, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2} m_Name:
m_IsPrefabParent: 0 m_EditorClassIdentifier:
groundMask:
serializedVersion: 2
m_Bits: 4294967295
restoreDuration: 0.5
launchVelocity: {x: 40, y: 85}
--- !u!114 &689192950
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 11483996, guid: 5c60df38c5334a249b38ac8cddc6433b,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 689192947}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e74a49a26242a214d9084fde00bfe3ab, type: 3}
m_Name:
m_EditorClassIdentifier:
startingBoneName: hip
stopBoneNames: []
applyOnStart: 0
disableIK: 1
disableOtherConstraints: 0
pinStartBone: 0
gravityScale: 3
thickness: 0.125
rotationLimit: 20
rootMass: 40
massFalloffFactor: 0.504
colliderLayer: 0
mix: 1
--- !u!114 &689192951
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 11483994, guid: 5c60df38c5334a249b38ac8cddc6433b,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 689192947}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d247ba06193faa74d9335f5481b2b56c, type: 3}
m_Name:
m_EditorClassIdentifier:
skeletonDataAsset: {fileID: 11400000, guid: 57484171e9b9c7243aa3117bc663e7b9, type: 2}
initialSkinName: default
separatorSlotNames: []
zSpacing: 0
renderMeshes: 1
immutableTriangles: 0
pmaVertexColors: 1
clearStateOnDisable: 0
calculateNormals: 0
calculateTangents: 0
logErrors: 0
disableRenderingOnOverride: 1
_animationName: animation
loop: 1
timeScale: 1
--- !u!23 &689192952
MeshRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 2383998, guid: 5c60df38c5334a249b38ac8cddc6433b,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 689192947}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 2100000, guid: 4ad4f7167d4983147ad870f93ebc9416, type: 2}
m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingOrder: 0
--- !u!33 &689192953
MeshFilter:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 3383998, guid: 5c60df38c5334a249b38ac8cddc6433b,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 689192947}
m_Mesh: {fileID: 0}
--- !u!4 &689192954
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 689192947}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 4.67, y: -3.07, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 6
--- !u!1 &890899334 --- !u!1 &890899334
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -561,17 +791,20 @@ MeshRenderer:
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 1
m_Materials: m_Materials:
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 0
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -639,17 +872,20 @@ MeshRenderer:
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 1
m_Materials: m_Materials:
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 0
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -712,7 +948,7 @@ Transform:
- {fileID: 1446269955} - {fileID: 1446269955}
- {fileID: 469940168} - {fileID: 469940168}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 5 m_RootOrder: 4
--- !u!1 &1332258640 --- !u!1 &1332258640
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -841,17 +1077,20 @@ MeshRenderer:
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 1
m_Materials: m_Materials:
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 0
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -878,6 +1117,168 @@ Transform:
m_Children: [] m_Children: []
m_Father: {fileID: 1241879115} m_Father: {fileID: 1241879115}
m_RootOrder: 1 m_RootOrder: 1
--- !u!1 &1417061241
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 183998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1417061248}
- 33: {fileID: 1417061247}
- 23: {fileID: 1417061246}
- 114: {fileID: 1417061245}
- 114: {fileID: 1417061244}
- 114: {fileID: 1417061243}
- 60: {fileID: 1417061242}
m_Layer: 0
m_Name: Raggedy Spineboy
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!60 &1417061242
PolygonCollider2D:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 6083998, guid: 5c60df38c5334a249b38ac8cddc6433b,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1417061241}
m_Enabled: 1
m_Density: 1
m_Material: {fileID: 0}
m_IsTrigger: 0
m_UsedByEffector: 0
m_Offset: {x: 0, y: 0}
m_Points:
m_Paths:
- - {x: -0.25825587, y: 3.1820273}
- {x: 0.31586242, y: 3.1818907}
- {x: 0.55882263, y: 2.040349}
- {x: 0.434707, y: 0.0013669459}
- {x: -0.45539615, y: 0.0013672132}
- {x: -0.61691463, y: 2.0021477}
--- !u!114 &1417061243
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 11483998, guid: 5c60df38c5334a249b38ac8cddc6433b,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1417061241}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 849a7739a7df0754882fcb34c09df4c1, type: 3}
m_Name:
m_EditorClassIdentifier:
groundMask:
serializedVersion: 2
m_Bits: 4294967295
restoreDuration: 0.5
launchVelocity: {x: 40, y: 85}
--- !u!114 &1417061244
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 11483996, guid: 5c60df38c5334a249b38ac8cddc6433b,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1417061241}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e74a49a26242a214d9084fde00bfe3ab, type: 3}
m_Name:
m_EditorClassIdentifier:
startingBoneName: hip
stopBoneNames: []
applyOnStart: 0
disableIK: 1
disableOtherConstraints: 0
pinStartBone: 0
gravityScale: 3
thickness: 0.125
rotationLimit: 20
rootMass: 40
massFalloffFactor: 0.504
colliderLayer: 0
mix: 1
--- !u!114 &1417061245
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 11483994, guid: 5c60df38c5334a249b38ac8cddc6433b,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1417061241}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d247ba06193faa74d9335f5481b2b56c, type: 3}
m_Name:
m_EditorClassIdentifier:
skeletonDataAsset: {fileID: 11400000, guid: 57484171e9b9c7243aa3117bc663e7b9, type: 2}
initialSkinName: default
separatorSlotNames: []
zSpacing: 0
renderMeshes: 1
immutableTriangles: 0
pmaVertexColors: 1
clearStateOnDisable: 0
calculateNormals: 0
calculateTangents: 0
logErrors: 0
disableRenderingOnOverride: 1
_animationName: animation
loop: 1
timeScale: 1
--- !u!23 &1417061246
MeshRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 2383998, guid: 5c60df38c5334a249b38ac8cddc6433b,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1417061241}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 2100000, guid: 4ad4f7167d4983147ad870f93ebc9416, type: 2}
m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingOrder: 0
--- !u!33 &1417061247
MeshFilter:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 3383998, guid: 5c60df38c5334a249b38ac8cddc6433b,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1417061241}
m_Mesh: {fileID: 0}
--- !u!4 &1417061248
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1417061241}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 2.5, y: -3.06, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
--- !u!1 &1442886939 --- !u!1 &1442886939
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -919,17 +1320,20 @@ MeshRenderer:
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 1
m_Materials: m_Materials:
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 0
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -1010,17 +1414,20 @@ MeshRenderer:
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 1
m_Materials: m_Materials:
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 0
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -1034,60 +1441,6 @@ MeshFilter:
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1446269954} m_GameObject: {fileID: 1446269954}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1001 &1702096498
Prefab:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
propertyPath: m_LocalPosition.x
value: 2.5
objectReference: {fileID: 0}
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
propertyPath: m_LocalPosition.y
value: -3.06
objectReference: {fileID: 0}
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
propertyPath: m_RootOrder
value: 4
objectReference: {fileID: 0}
- target: {fileID: 3383998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
propertyPath: m_Mesh
value:
objectReference: {fileID: 0}
- target: {fileID: 11483996, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
propertyPath: colliderLayer
value: 0
objectReference: {fileID: 0}
- target: {fileID: 11483998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
propertyPath: groundMask.m_Bits
value: 4294967295
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 100100000, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
m_IsPrefabParent: 0
--- !u!1 &1938155299 --- !u!1 &1938155299
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1217,17 +1570,20 @@ MeshRenderer:
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 1
m_Materials: m_Materials:
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 0
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -1338,7 +1694,7 @@ Light:
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 2147465172} m_GameObject: {fileID: 2147465172}
m_Enabled: 1 m_Enabled: 1
serializedVersion: 6 serializedVersion: 7
m_Type: 2 m_Type: 2
m_Color: {r: 1, g: 1, b: 1, a: 1} m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Intensity: 2 m_Intensity: 2
@ -1348,6 +1704,7 @@ Light:
m_Shadows: m_Shadows:
m_Type: 0 m_Type: 0
m_Resolution: -1 m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1 m_Strength: 1
m_Bias: 0.05 m_Bias: 0.05
m_NormalBias: 0.4 m_NormalBias: 0.4
@ -1360,10 +1717,10 @@ Light:
serializedVersion: 2 serializedVersion: 2
m_Bits: 4294967295 m_Bits: 4294967295
m_Lightmapping: 1 m_Lightmapping: 1
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1 m_BounceIntensity: 1
m_ShadowRadius: 0 m_ShadowRadius: 0
m_ShadowAngle: 0 m_ShadowAngle: 0
m_AreaSize: {x: 1, y: 1}
--- !u!4 &2147465174 --- !u!4 &2147465174
Transform: Transform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -1376,4 +1733,4 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 4 m_RootOrder: 3

View File

@ -13,7 +13,7 @@ SceneSettings:
--- !u!104 &2 --- !u!104 &2
RenderSettings: RenderSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 6 serializedVersion: 7
m_Fog: 0 m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3 m_FogMode: 3
@ -37,12 +37,12 @@ RenderSettings:
m_ReflectionIntensity: 1 m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0} m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0} m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
--- !u!157 &4 --- !u!157 &4
LightmapSettings: LightmapSettings:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
serializedVersion: 6 serializedVersion: 7
m_GIWorkflowMode: 1 m_GIWorkflowMode: 1
m_LightmapsMode: 1
m_GISettings: m_GISettings:
serializedVersion: 2 serializedVersion: 2
m_BounceScale: 1 m_BounceScale: 1
@ -53,17 +53,22 @@ LightmapSettings:
m_EnableBakedLightmaps: 1 m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0 m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings: m_LightmapEditorSettings:
serializedVersion: 3 serializedVersion: 4
m_Resolution: 1 m_Resolution: 1
m_BakeResolution: 50 m_BakeResolution: 50
m_TextureWidth: 1024 m_TextureWidth: 1024
m_TextureHeight: 1024 m_TextureHeight: 1024
m_AO: 0
m_AOMaxDistance: 1 m_AOMaxDistance: 1
m_Padding: 2
m_CompAOExponent: 0 m_CompAOExponent: 0
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0} m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 0 m_TextureCompression: 0
m_DirectLightInLightProbes: 1
m_FinalGather: 0 m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 1024 m_FinalGatherRayCount: 1024
m_ReflectionCompression: 2 m_ReflectionCompression: 2
m_LightingDataAsset: {fileID: 0} m_LightingDataAsset: {fileID: 0}
@ -85,6 +90,99 @@ NavMeshSettings:
cellSize: 0.16666666 cellSize: 0.16666666
manualCellSize: 0 manualCellSize: 0
m_NavMeshData: {fileID: 0} m_NavMeshData: {fileID: 0}
--- !u!1 &351144566
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 351144570}
- 33: {fileID: 351144569}
- 23: {fileID: 351144568}
- 114: {fileID: 351144567}
m_Layer: 0
m_Name: Spine GameObject (spineboy)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &351144567
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 351144566}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d247ba06193faa74d9335f5481b2b56c, type: 3}
m_Name:
m_EditorClassIdentifier:
skeletonDataAsset: {fileID: 11400000, guid: 44691b56ed7d1f04da0cbc2a52a91b8d, type: 2}
initialSkinName: default
separatorSlotNames: []
zSpacing: 0
renderMeshes: 1
immutableTriangles: 0
pmaVertexColors: 1
clearStateOnDisable: 0
calculateNormals: 0
calculateTangents: 0
logErrors: 0
disableRenderingOnOverride: 1
_animationName: idle
loop: 1
timeScale: 1
--- !u!23 &351144568
MeshRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 351144566}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 2100000, guid: 1455e88fdb81ccc45bdeaedd657bad4d, type: 2}
m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingOrder: 0
--- !u!33 &351144569
MeshFilter:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 351144566}
m_Mesh: {fileID: 0}
--- !u!4 &351144570
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 351144566}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -0.3, y: -3.48, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
--- !u!1 &795271513 --- !u!1 &795271513
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -98,7 +196,7 @@ GameObject:
- 114: {fileID: 795271515} - 114: {fileID: 795271515}
- 114: {fileID: 795271514} - 114: {fileID: 795271514}
m_Layer: 0 m_Layer: 0
m_Name: Gauge m_Name: Spine GameObject (gauge)
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
@ -115,7 +213,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: c888ce38da699d143a68153f26379a37, type: 3} m_Script: {fileID: 11500000, guid: c888ce38da699d143a68153f26379a37, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
fillPercent: 0.388 fillPercent: 1
fillAnimationName: Fill fillAnimationName: Fill
--- !u!114 &795271515 --- !u!114 &795271515
MonoBehaviour: MonoBehaviour:
@ -135,9 +233,9 @@ MonoBehaviour:
renderMeshes: 1 renderMeshes: 1
immutableTriangles: 0 immutableTriangles: 0
pmaVertexColors: 1 pmaVertexColors: 1
clearStateOnDisable: 0
calculateNormals: 0 calculateNormals: 0
calculateTangents: 0 calculateTangents: 0
frontFacing: 0
logErrors: 0 logErrors: 0
disableRenderingOnOverride: 1 disableRenderingOnOverride: 1
--- !u!23 &795271516 --- !u!23 &795271516
@ -149,17 +247,20 @@ MeshRenderer:
m_Enabled: 1 m_Enabled: 1
m_CastShadows: 1 m_CastShadows: 1
m_ReceiveShadows: 1 m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 1
m_Materials: m_Materials:
- {fileID: 2100000, guid: 9ab9bdbda020b3e46b5a3b0558ef591d, type: 2} - {fileID: 2100000, guid: 9ab9bdbda020b3e46b5a3b0558ef591d, type: 2}
m_SubsetIndices: m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0} m_StaticBatchRoot: {fileID: 0}
m_UseLightProbes: 0
m_ReflectionProbeUsage: 1
m_ProbeAnchor: {fileID: 0} m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1 m_ScaleInLightmap: 1
m_PreserveUVs: 0 m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0 m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0 m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4 m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5 m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89 m_AutoUVMaxAngle: 89
@ -173,9 +274,11 @@ Transform:
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 795271513} m_GameObject: {fileID: 795271513}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 4.09, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children:
- {fileID: 1025516230}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 1 m_RootOrder: 1
--- !u!33 &795271518 --- !u!33 &795271518
@ -185,6 +288,127 @@ MeshFilter:
m_PrefabInternal: {fileID: 0} m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 795271513} m_GameObject: {fileID: 795271513}
m_Mesh: {fileID: 0} m_Mesh: {fileID: 0}
--- !u!1 &1025516229
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1025516230}
- 114: {fileID: 1025516231}
m_Layer: 0
m_Name: Attack Spineboy
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1025516230
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1025516229}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -2.672, y: -1.3108752, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children:
- {fileID: 1695530253}
m_Father: {fileID: 795271517}
m_RootOrder: 0
--- !u!114 &1025516231
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1025516229}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7eab8e63d650dc74c80d142cd4b9fe4b, type: 3}
m_Name:
m_EditorClassIdentifier:
spineboy: {fileID: 351144567}
gauge: {fileID: 795271514}
healthText: {fileID: 1847717249}
--- !u!1 &1053578423
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 224: {fileID: 1053578424}
- 222: {fileID: 1053578426}
- 114: {fileID: 1053578425}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1053578424
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1053578423}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: []
m_Father: {fileID: 1695530253}
m_RootOrder: 0
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 436.7, y: 225.4}
m_SizeDelta: {x: 339.8, y: 53.2}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1053578425
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1053578423}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 36
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 3
m_MaxSize: 48
m_Alignment: 0
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 1
m_VerticalOverflow: 1
m_LineSpacing: 1
m_Text: 'Press Spacebar to Attack Spineboy!
The health bar is a Spine skeleton.'
--- !u!222 &1053578426
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1053578423}
--- !u!1 &1611520402 --- !u!1 &1611520402
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -268,6 +492,158 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10} m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: [] m_Children: []
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 0 m_RootOrder: 0
--- !u!1 &1695530249
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 224: {fileID: 1695530253}
- 223: {fileID: 1695530252}
- 114: {fileID: 1695530251}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1695530251
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1695530249}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 1980459831, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 0
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
--- !u!223 &1695530252
Canvas:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1695530249}
m_Enabled: 1
serializedVersion: 2
m_RenderMode: 2
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!224 &1695530253
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1695530249}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.01, y: 0.01, z: 0.01}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children:
- {fileID: 1053578424}
- {fileID: 1847717248}
m_Father: {fileID: 1025516230}
m_RootOrder: 0
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 2.672, y: -2.779125}
m_SizeDelta: {x: 1920, y: 1080}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &1847717247
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 224: {fileID: 1847717248}
- 222: {fileID: 1847717250}
- 114: {fileID: 1847717249}
m_Layer: 5
m_Name: Health Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1847717248
RectTransform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1847717247}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: []
m_Father: {fileID: 1695530253}
m_RootOrder: 1
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -13, y: 343}
m_SizeDelta: {x: 339.8, y: 53.2}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1847717249
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1847717247}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 708705254, guid: f5f67c52d1564df4a8936ccd202a3bd8, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 36
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 3
m_MaxSize: 48
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 1
m_VerticalOverflow: 1
m_LineSpacing: 1
m_Text: 100/100
--- !u!222 &1847717250
CanvasRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1847717247}

View File

@ -0,0 +1,852 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
SceneSettings:
m_ObjectHideFlags: 0
m_PVSData:
m_PVSObjectsArray: []
m_PVSPortalsArray: []
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 7
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.007352948, g: 0.007352948, b: 0.007352948, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 3
m_SkyboxMaterial: {fileID: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 7
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 0
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 4
m_Resolution: 2
m_BakeResolution: 40
m_TextureWidth: 1024
m_TextureHeight: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_DirectLightInLightProbes: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_LightingDataAsset: {fileID: 0}
m_RuntimeCPUUsage: 25
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
accuratePlacement: 0
minRegionArea: 2
cellSize: 0.16666667
manualCellSize: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &188173730
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 188173732}
- 108: {fileID: 188173731}
m_Layer: 0
m_Name: '[LIGHT] Spotlight'
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!108 &188173731
Light:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 188173730}
m_Enabled: 1
serializedVersion: 7
m_Type: 0
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Intensity: 2.57
m_Range: 12.94
m_SpotAngle: 56
m_CookieSize: 10
m_Shadows:
m_Type: 2
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.1
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_Lightmapping: 4
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &188173732
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 188173730}
m_LocalRotation: {x: 0.28993335, y: -0.20459291, z: -0.5390386, w: 0.7638834}
m_LocalPosition: {x: -1.85, y: 2.64, z: -6.397}
m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 12.793, y: -40.131, z: -75.40501}
m_Children: []
m_Father: {fileID: 195821303}
m_RootOrder: 1
--- !u!1 &195821302
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 195821303}
m_Layer: 0
m_Name: LIGHTS
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &195821303
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 195821302}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children:
- {fileID: 935283315}
- {fileID: 188173732}
- {fileID: 1387304066}
- {fileID: 770573971}
m_Father: {fileID: 0}
m_RootOrder: 4
--- !u!1 &770573969
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 770573971}
- 108: {fileID: 770573970}
m_Layer: 0
m_Name: '[LIGHT] Green Spotlight'
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!108 &770573970
Light:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 770573969}
m_Enabled: 1
serializedVersion: 7
m_Type: 0
m_Color: {r: 0.07586217, g: 1, b: 0, a: 1}
m_Intensity: 2.68
m_Range: 15
m_SpotAngle: 37
m_CookieSize: 10
m_Shadows:
m_Type: 0
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_Lightmapping: 4
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &770573971
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 770573969}
m_LocalRotation: {x: 0.0023665242, y: -0.5134523, z: -0.8581137, w: 0.0014160047}
m_LocalPosition: {x: 4.56, y: -8.77, z: -3.03}
m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 241.77, y: 179.351, z: 0.57199097}
m_Children: []
m_Father: {fileID: 195821303}
m_RootOrder: 3
--- !u!1 &845252278
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 845252281}
- 33: {fileID: 845252280}
- 23: {fileID: 845252279}
m_Layer: 0
m_Name: Wall
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!23 &845252279
MeshRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 845252278}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingOrder: 0
--- !u!33 &845252280
MeshFilter:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 845252278}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!4 &845252281
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 845252278}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.28, y: 0.77, z: 2}
m_LocalScale: {x: 19.353024, y: 6.9264994, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 3
--- !u!1 &933136133
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 933136137}
- 33: {fileID: 933136136}
- 23: {fileID: 933136135}
- 114: {fileID: 933136134}
m_Layer: 0
m_Name: stretchyman static
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &933136134
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 933136133}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e075b9a3e08e2f74fbd651c858ab16ed, type: 3}
m_Name:
m_EditorClassIdentifier:
skeletonDataAsset: {fileID: 11400000, guid: 162719d41016c854abf0355feb0e14e8, type: 2}
initialSkinName: default
separatorSlotNames: []
zSpacing: 0
renderMeshes: 1
immutableTriangles: 0
pmaVertexColors: 1
clearStateOnDisable: 0
calculateNormals: 0
calculateTangents: 1
logErrors: 0
disableRenderingOnOverride: 1
--- !u!23 &933136135
MeshRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 933136133}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 2100000, guid: 824cfb62bcbe3db49a3ce6db7e3757d1, type: 2}
m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingOrder: 0
--- !u!33 &933136136
MeshFilter:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 933136133}
m_Mesh: {fileID: 0}
--- !u!4 &933136137
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 933136133}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -5.61, y: -3.69, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
--- !u!1 &935283313
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 935283315}
- 108: {fileID: 935283314}
m_Layer: 0
m_Name: '[LIGHT] Point light'
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!108 &935283314
Light:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 935283313}
m_Enabled: 1
serializedVersion: 7
m_Type: 2
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Intensity: 1
m_Range: 5
m_SpotAngle: 30
m_CookieSize: 10
m_Shadows:
m_Type: 0
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_Lightmapping: 4
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &935283315
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 935283313}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -5.81, y: 0.56, z: -0.9}
m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: []
m_Father: {fileID: 195821303}
m_RootOrder: 0
--- !u!1 &1313996752
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1313996753}
- 212: {fileID: 1313996754}
m_Layer: 0
m_Name: New Sprite
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1313996753
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1313996752}
m_LocalRotation: {x: 0.27059805, y: 0.65328157, z: 0.27059805, w: 0.6532815}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 90.00001, z: 45}
m_Children: []
m_Father: {fileID: 1387304066}
m_RootOrder: 0
--- !u!212 &1313996754
SpriteRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1313996752}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 0
m_Materials:
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_SelectedWireframeHidden: 1
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingOrder: 0
m_Sprite: {fileID: 21300000, guid: 718074e4e56a5404e824bf8e6571ea7d, type: 3}
m_Color: {r: 1, g: 0, b: 0, a: 1}
m_FlipX: 0
m_FlipY: 0
--- !u!1 &1387304064
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1387304066}
- 108: {fileID: 1387304065}
- 114: {fileID: 1387304067}
m_Layer: 0
m_Name: '[LIGHT] Rotating light'
m_TagString: Untagged
m_Icon: {fileID: 5132851093641282708, guid: 0000000000000000d000000000000000, type: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!108 &1387304065
Light:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1387304064}
m_Enabled: 1
serializedVersion: 7
m_Type: 1
m_Color: {r: 1, g: 0.14482759, b: 0, a: 1}
m_Intensity: 1.96
m_Range: 10
m_SpotAngle: 30
m_CookieSize: 10
m_Shadows:
m_Type: 0
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_Lightmapping: 4
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &1387304066
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1387304064}
m_LocalRotation: {x: -0.7059173, y: -0.04099956, z: 0.705917, w: -0.04099958}
m_LocalPosition: {x: 0.077, y: 3.594, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: -186.648, y: 89.99999, z: 0}
m_Children:
- {fileID: 1313996753}
- {fileID: 1443231423}
m_Father: {fileID: 195821303}
m_RootOrder: 2
--- !u!114 &1387304067
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1387304064}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 12e291cb54756d04c9dd53ad6e00a126, type: 3}
m_Name:
m_EditorClassIdentifier:
direction: {x: 1, y: 0, z: 0}
speed: 1.5
--- !u!1 &1443231422
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1443231423}
- 212: {fileID: 1443231424}
m_Layer: 0
m_Name: New Sprite (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1443231423
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1443231422}
m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.70710677}
m_LocalPosition: {x: 0, y: 0.015, z: -0.234}
m_LocalScale: {x: 1.5390148, y: 1.5390143, z: 1.5390143}
m_LocalEulerAnglesHint: {x: 0, y: 90.00001, z: 0}
m_Children: []
m_Father: {fileID: 1387304066}
m_RootOrder: 1
--- !u!212 &1443231424
SpriteRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1443231422}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_MotionVectors: 1
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 0
m_Materials:
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_SelectedWireframeHidden: 1
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingOrder: 7
m_Sprite: {fileID: 21300000, guid: 718074e4e56a5404e824bf8e6571ea7d, type: 3}
m_Color: {r: 0, g: 0, b: 0, a: 1}
m_FlipX: 0
m_FlipY: 0
--- !u!1 &1628453470
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1628453474}
- 33: {fileID: 1628453473}
- 23: {fileID: 1628453472}
- 114: {fileID: 1628453471}
m_Layer: 0
m_Name: stretchyman animated
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1628453471
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1628453470}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d247ba06193faa74d9335f5481b2b56c, type: 3}
m_Name:
m_EditorClassIdentifier:
skeletonDataAsset: {fileID: 11400000, guid: 162719d41016c854abf0355feb0e14e8, type: 2}
initialSkinName: default
separatorSlotNames: []
zSpacing: 0
renderMeshes: 1
immutableTriangles: 0
pmaVertexColors: 1
clearStateOnDisable: 0
calculateNormals: 0
calculateTangents: 1
logErrors: 0
disableRenderingOnOverride: 1
_animationName: sneak
loop: 1
timeScale: 0.25
--- !u!23 &1628453472
MeshRenderer:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1628453470}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 2100000, guid: 824cfb62bcbe3db49a3ce6db7e3757d1, type: 2}
m_SubsetIndices:
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_SelectedWireframeHidden: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingOrder: 0
--- !u!33 &1628453473
MeshFilter:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1628453470}
m_Mesh: {fileID: 0}
--- !u!4 &1628453474
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1628453470}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -6.47, y: -3.59, z: 1.03}
m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
--- !u!1 &1667748200
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1667748205}
- 20: {fileID: 1667748204}
- 92: {fileID: 1667748203}
- 124: {fileID: 1667748202}
- 81: {fileID: 1667748201}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &1667748201
AudioListener:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1667748200}
m_Enabled: 1
--- !u!124 &1667748202
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1667748200}
m_Enabled: 1
--- !u!92 &1667748203
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1667748200}
m_Enabled: 1
--- !u!20 &1667748204
Camera:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1667748200}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.029411793, g: 0.028979266, b: 0.028979266, a: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 1
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
m_StereoMirrorMode: 0
--- !u!4 &1667748205
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1667748200}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0862248ab668ce749845b0d7de5c6355
timeCreated: 1479531945
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,4 +1,4 @@
/****************************************************************************** /******************************************************************************
* Spine Runtimes Software License v2.5 * Spine Runtimes Software License v2.5
* *
* Copyright (c) 2013-2016, Esoteric Software * Copyright (c) 2013-2016, Esoteric Software
@ -28,22 +28,36 @@
* POSSIBILITY OF SUCH DAMAGE. * POSSIBILITY OF SUCH DAMAGE.
*****************************************************************************/ *****************************************************************************/
// Contributed by: Mitch Thompson
using UnityEngine; using UnityEngine;
using Spine.Unity; using UnityEngine.UI;
public class Chimera : MonoBehaviour { namespace Spine.Unity.Examples {
public class AttackSpineboy : MonoBehaviour {
public SkeletonDataAsset skeletonDataSource; public SkeletonAnimation spineboy;
public SpineGauge gauge;
public Text healthText;
[SpineAttachment(currentSkinOnly: false, returnAttachmentPath: true, dataField: "skeletonDataSource")] int currentHealth = 100;
public string attachmentPath; const int maxHealth = 100;
[SpineSlot] void Update () {
public string targetSlot; if (Input.GetKeyDown(KeyCode.Space)) {
currentHealth -= 10;
healthText.text = currentHealth + "/" + maxHealth;
void Start() { if (currentHealth > 0) {
GetComponent<SkeletonRenderer>().skeleton.FindSlot(targetSlot).Attachment = SpineAttachment.GetAttachment(attachmentPath, skeletonDataSource); spineboy.state.SetAnimation(0, "hit", false);
spineboy.state.AddAnimation(0, "idle", true, 0);
gauge.fillPercent = (float)currentHealth/(float)maxHealth;
} else {
if (currentHealth >= 0) {
gauge.fillPercent = 0;
spineboy.state.SetAnimation(0, "death", false).TrackEnd = float.PositiveInfinity;
}
}
}
}
} }
} }

View File

@ -1,5 +1,7 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 5053fe97a7657b5418b0c307b7338b0c guid: 7eab8e63d650dc74c80d142cd4b9fe4b
timeCreated: 1480095094
licenseType: Free
MonoImporter: MonoImporter:
serializedVersion: 2 serializedVersion: 2
defaultReferences: [] defaultReferences: []

View File

@ -34,69 +34,71 @@ using UnityEngine;
using System.Collections; using System.Collections;
using Spine.Unity; using Spine.Unity;
public class FootSoldierExample : MonoBehaviour { namespace Spine.Unity.Examples {
[SpineAnimation("Idle")] public class FootSoldierExample : MonoBehaviour {
public string idleAnimation; [SpineAnimation("Idle")]
public string idleAnimation;
[SpineAnimation] [SpineAnimation]
public string attackAnimation; public string attackAnimation;
[SpineAnimation] [SpineAnimation]
public string moveAnimation; public string moveAnimation;
[SpineSlot] [SpineSlot]
public string eyesSlot; public string eyesSlot;
[SpineAttachment(currentSkinOnly: true, slotField: "eyesSlot")] [SpineAttachment(currentSkinOnly: true, slotField: "eyesSlot")]
public string eyesOpenAttachment; public string eyesOpenAttachment;
[SpineAttachment(currentSkinOnly: true, slotField: "eyesSlot")] [SpineAttachment(currentSkinOnly: true, slotField: "eyesSlot")]
public string blinkAttachment; public string blinkAttachment;
[Range(0, 0.2f)] [Range(0, 0.2f)]
public float blinkDuration = 0.05f; public float blinkDuration = 0.05f;
public KeyCode attackKey = KeyCode.Mouse0; public KeyCode attackKey = KeyCode.Mouse0;
public KeyCode rightKey = KeyCode.D; public KeyCode rightKey = KeyCode.D;
public KeyCode leftKey = KeyCode.A; public KeyCode leftKey = KeyCode.A;
public float moveSpeed = 3; public float moveSpeed = 3;
private SkeletonAnimation skeletonAnimation; SkeletonAnimation skeletonAnimation;
void Awake() { void Awake () {
skeletonAnimation = GetComponent<SkeletonAnimation>(); skeletonAnimation = GetComponent<SkeletonAnimation>();
skeletonAnimation.OnRebuild += Apply; skeletonAnimation.OnRebuild += Apply;
} }
void Apply(SkeletonRenderer skeletonRenderer) { void Apply (SkeletonRenderer skeletonRenderer) {
StartCoroutine("Blink"); StartCoroutine("Blink");
} }
void Update() { void Update () {
if (Input.GetKey(attackKey)) { if (Input.GetKey(attackKey)) {
skeletonAnimation.AnimationName = attackAnimation; skeletonAnimation.AnimationName = attackAnimation;
} else {
if (Input.GetKey(rightKey)) {
skeletonAnimation.AnimationName = moveAnimation;
skeletonAnimation.skeleton.FlipX = false;
transform.Translate(moveSpeed * Time.deltaTime, 0, 0);
} else if(Input.GetKey(leftKey)) {
skeletonAnimation.AnimationName = moveAnimation;
skeletonAnimation.skeleton.FlipX = true;
transform.Translate(-moveSpeed * Time.deltaTime, 0, 0);
} else { } else {
skeletonAnimation.AnimationName = idleAnimation; if (Input.GetKey(rightKey)) {
skeletonAnimation.AnimationName = moveAnimation;
skeletonAnimation.skeleton.FlipX = false;
transform.Translate(moveSpeed * Time.deltaTime, 0, 0);
} else if(Input.GetKey(leftKey)) {
skeletonAnimation.AnimationName = moveAnimation;
skeletonAnimation.skeleton.FlipX = true;
transform.Translate(-moveSpeed * Time.deltaTime, 0, 0);
} else {
skeletonAnimation.AnimationName = idleAnimation;
}
}
}
IEnumerator Blink() {
while (true) {
yield return new WaitForSeconds(Random.Range(0.25f, 3f));
skeletonAnimation.skeleton.SetAttachment(eyesSlot, blinkAttachment);
yield return new WaitForSeconds(blinkDuration);
skeletonAnimation.skeleton.SetAttachment(eyesSlot, eyesOpenAttachment);
} }
} }
} }
}
IEnumerator Blink() {
while (true) {
yield return new WaitForSeconds(Random.Range(0.25f, 3f));
skeletonAnimation.skeleton.SetAttachment(eyesSlot, blinkAttachment);
yield return new WaitForSeconds(blinkDuration);
skeletonAnimation.skeleton.SetAttachment(eyesSlot, eyesOpenAttachment);
}
}
}

View File

@ -29,36 +29,40 @@
*****************************************************************************/ *****************************************************************************/
using UnityEngine; using UnityEngine;
using System.Collections;
using Spine; using Spine;
using Spine.Unity; using Spine.Unity;
public class Goblins : MonoBehaviour { namespace Spine.Unity.Examples {
private bool girlSkin; public class Goblins : MonoBehaviour {
private SkeletonAnimation skeletonAnimation; SkeletonAnimation skeletonAnimation;
private Bone headBone; Bone headBone;
bool girlSkin;
public void Start () {
skeletonAnimation = GetComponent<SkeletonAnimation>();
headBone = skeletonAnimation.skeleton.FindBone("head");
skeletonAnimation.UpdateLocal += UpdateLocal;
}
// This is called after the animation is applied to the skeleton and can be used to adjust the bones dynamically. [Range(-360, 360)]
public void UpdateLocal (ISkeletonAnimation skeletonRenderer) { public float extraRotation;
headBone.Rotation += 15;
}
public void OnMouseDown () {
skeletonAnimation.skeleton.SetSkin(girlSkin ? "goblin" : "goblingirl");
skeletonAnimation.skeleton.SetSlotsToSetupPose();
girlSkin = !girlSkin; public void Start () {
skeletonAnimation = GetComponent<SkeletonAnimation>();
headBone = skeletonAnimation.skeleton.FindBone("head");
skeletonAnimation.UpdateLocal += UpdateLocal;
}
// This is called after the animation is applied to the skeleton and can be used to adjust the bones dynamically.
public void UpdateLocal (ISkeletonAnimation skeletonRenderer) {
headBone.Rotation += extraRotation;
}
if (girlSkin) { public void OnMouseDown () {
skeletonAnimation.skeleton.SetAttachment("right hand item", null); skeletonAnimation.skeleton.SetSkin(girlSkin ? "goblin" : "goblingirl");
skeletonAnimation.skeleton.SetAttachment("left hand item", "spear"); skeletonAnimation.skeleton.SetSlotsToSetupPose();
} else
skeletonAnimation.skeleton.SetAttachment("left hand item", "dagger"); girlSkin = !girlSkin;
if (girlSkin) {
skeletonAnimation.skeleton.SetAttachment("right hand item", null);
skeletonAnimation.skeleton.SetAttachment("left hand item", "spear");
} else
skeletonAnimation.skeleton.SetAttachment("left hand item", "dagger");
}
} }
} }

View File

@ -0,0 +1,112 @@
/******************************************************************************
* Spine Runtimes Software License v2.5
*
* Copyright (c) 2013-2016, Esoteric Software
* All rights reserved.
*
* You are granted a perpetual, non-exclusive, non-sublicensable, and
* non-transferable license to use, install, execute, and perform the Spine
* Runtimes software and derivative works solely for personal or internal
* use. Without the written permission of Esoteric Software (see Section 2 of
* the Spine Software License Agreement), you may not (a) modify, translate,
* adapt, or develop new applications using the Spine Runtimes or otherwise
* create derivative works or improvements of the Spine Runtimes or (b) remove,
* delete, alter, or obscure any trademarks or any copyright, trademark, patent,
* or other intellectual property or proprietary rights notices on or in the
* Software, including any copy thereof. Redistributions in binary or source
* form must include this license and terms.
*
* THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "AS IS" AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
* EVENT SHALL ESOTERIC SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS INTERRUPTION, OR LOSS OF
* USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
* IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*****************************************************************************/
using UnityEngine;
using Spine.Unity.Modules.AttachmentTools;
namespace Spine.Unity.Examples {
public class MixAndMatch : MonoBehaviour {
#region Inspector
[Header("From AtlasAsset")]
public AtlasAsset handSource;
[SpineAtlasRegion("handSource")] public string handRegion = "hand";
[SpineAttachment] public string handAttachmentName;
[SpineSlot] public string handSlot;
public Vector2 newHandOffset;
public float newHandRotation;
public Texture2D handTexture;
[Header("From Sprite")]
public Sprite dagger;
public string daggerName = "dagger";
[SpineSlot] public string weaponSlot;
[Header("MeshAttachment.SetRegion")]
public bool applyHeadRegion = false;
public AtlasAsset headSource;
[SpineAtlasRegion("headSource")] public string headRegion;
[SpineSlot] public string headSlot;
[SpineAttachment] public string headAttachmentName;
[Header("Runtime Repack")]
public bool repack = true;
public Shader repackedShader;
[Header("Do not assign")]
public Texture2D runtimeAtlas;
public Material runtimeMaterial;
#endregion
void Start () {
var skeletonAnimation = GetComponent<SkeletonAnimation>();
var skeleton = skeletonAnimation.Skeleton;
// All attachment changes will be applied to the skin. We use a clone so other instances will not be affected.
var newSkin = skeleton.UnshareSkin(true, false, skeletonAnimation.AnimationState);
// Case 1: Create an attachment from an atlas.
RegionAttachment newHand = handSource.GetAtlas().FindRegion(handRegion).ToRegionAttachment("new hand");
newHand.SetPositionOffset(newHandOffset);
newHand.rotation = newHandRotation;
newHand.UpdateOffset();
int handSlotIndex = skeleton.FindSlotIndex(handSlot);
handTexture = newHand.GetRegion().ToTexture();
newSkin.AddAttachment(handSlotIndex, handAttachmentName, newHand);
// Case 2: Create an attachment from a Unity Sprite (Sprite texture needs to be Read/Write Enabled in the inspector.
RegionAttachment newWeapon = dagger.ToRegionAttachmentPMAClone(Shader.Find("Spine/Skeleton"));
newWeapon.SetScale(1.5f, 1.5f);
newWeapon.UpdateOffset();
int weaponSlotIndex = skeleton.FindSlotIndex(weaponSlot);
newSkin.AddAttachment(weaponSlotIndex, daggerName, newWeapon);
// Case 3: Change an existing attachment's backing region.
if (applyHeadRegion) {
AtlasRegion spineBoyHead = headSource.GetAtlas().FindRegion(headRegion);
int headSlotIndex = skeleton.FindSlotIndex(headSlot);
var newHead = newSkin.GetAttachment(headSlotIndex, headAttachmentName).GetClone(true);
newHead.SetRegion(spineBoyHead);
newSkin.AddAttachment(headSlotIndex, headAttachmentName, newHead);
}
// Case 4: Repacking a mixed-and-matched skin to minimize draw calls.
// Repacking requires that you set all source textures/sprites/atlases to be Read/Write enabled in the inspector.
if (repack)
newSkin = newSkin.GetRepackedSkin("repacked", repackedShader, out runtimeMaterial, out runtimeAtlas);
skeleton.SetSkin(newSkin);
skeleton.SetToSetupPose();
skeleton.SetAttachment(weaponSlot, daggerName);
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: fdd7c8b428f700c438a6a14addca0346
timeCreated: 1480089275
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -32,85 +32,76 @@ using UnityEngine;
using System.Collections; using System.Collections;
using Spine.Unity; using Spine.Unity;
public class RaggedySpineboy : MonoBehaviour { namespace Spine.Unity.Examples {
public class RaggedySpineboy : MonoBehaviour {
public LayerMask groundMask; public LayerMask groundMask;
public float restoreDuration = 0.5f; public float restoreDuration = 0.5f;
public Vector2 launchVelocity = new Vector2(50,100); public Vector2 launchVelocity = new Vector2(50,100);
Spine.Unity.Modules.SkeletonRagdoll2D ragdoll; Spine.Unity.Modules.SkeletonRagdoll2D ragdoll;
Collider2D naturalCollider; Collider2D naturalCollider;
void Start () { void Start () {
ragdoll = GetComponent<Spine.Unity.Modules.SkeletonRagdoll2D>();
ragdoll = GetComponent<Spine.Unity.Modules.SkeletonRagdoll2D>(); naturalCollider = GetComponent<Collider2D>();
naturalCollider = GetComponent<Collider2D>();
}
void AddRigidbody () {
var rb = gameObject.AddComponent<Rigidbody2D>();
#if UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4 || UNITY_5_5
rb.freezeRotation = true;
#else
rb.fixedAngle = true;
#endif
naturalCollider.enabled = true;
}
void RemoveRigidbody () {
Destroy(GetComponent<Rigidbody2D>());
naturalCollider.enabled = false;
}
void Update () {
}
void OnMouseUp () {
if (naturalCollider.enabled) {
Launch();
}
}
void Launch () {
RemoveRigidbody();
ragdoll.Apply();
ragdoll.RootRigidbody.velocity = new Vector2(Random.Range(-launchVelocity.x, launchVelocity.x), launchVelocity.y);
StartCoroutine(WaitUntilStopped());
}
IEnumerator Restore () {
Vector3 estimatedPos = ragdoll.EstimatedSkeletonPosition;
Vector3 rbPosition = ragdoll.RootRigidbody.position;
Vector3 skeletonPoint = estimatedPos;
RaycastHit2D hit = Physics2D.Raycast((Vector2)rbPosition, (Vector2)(estimatedPos - rbPosition), Vector3.Distance(estimatedPos, rbPosition), groundMask);
if (hit.collider != null)
skeletonPoint = hit.point;
ragdoll.RootRigidbody.isKinematic = true;
ragdoll.SetSkeletonPosition(skeletonPoint);
yield return ragdoll.SmoothMix(0, restoreDuration);
ragdoll.Remove();
AddRigidbody();
}
IEnumerator WaitUntilStopped () {
yield return new WaitForSeconds(0.5f);
float t = 0;
while (t < 0.5f) {
if (ragdoll.RootRigidbody.velocity.magnitude > 0.09f)
t = 0;
else
t += Time.deltaTime;
yield return null;
} }
StartCoroutine(Restore()); void AddRigidbody () {
var rb = gameObject.AddComponent<Rigidbody2D>();
#if UNITY_5_1 || UNITY_5_2 || UNITY_5_3 || UNITY_5_4 || UNITY_5_5
rb.freezeRotation = true;
#else
rb.fixedAngle = true;
#endif
naturalCollider.enabled = true;
}
void RemoveRigidbody () {
Destroy(GetComponent<Rigidbody2D>());
naturalCollider.enabled = false;
}
void OnMouseUp () {
if (naturalCollider.enabled)
Launch();
}
void Launch () {
RemoveRigidbody();
ragdoll.Apply();
ragdoll.RootRigidbody.velocity = new Vector2(Random.Range(-launchVelocity.x, launchVelocity.x), launchVelocity.y);
StartCoroutine(WaitUntilStopped());
}
IEnumerator Restore () {
Vector3 estimatedPos = ragdoll.EstimatedSkeletonPosition;
Vector3 rbPosition = ragdoll.RootRigidbody.position;
Vector3 skeletonPoint = estimatedPos;
RaycastHit2D hit = Physics2D.Raycast((Vector2)rbPosition, (Vector2)(estimatedPos - rbPosition), Vector3.Distance(estimatedPos, rbPosition), groundMask);
if (hit.collider != null)
skeletonPoint = hit.point;
ragdoll.RootRigidbody.isKinematic = true;
ragdoll.SetSkeletonPosition(skeletonPoint);
yield return ragdoll.SmoothMix(0, restoreDuration);
ragdoll.Remove();
AddRigidbody();
}
IEnumerator WaitUntilStopped () {
yield return new WaitForSeconds(0.5f);
float t = 0;
while (t < 0.5f) {
t = (ragdoll.RootRigidbody.velocity.magnitude > 0.09f) ? 0 : t + Time.deltaTime;
yield return null;
}
StartCoroutine(Restore());
}
} }
} }

View File

@ -0,0 +1,12 @@
using UnityEngine;
namespace Spine.Unity.Examples {
public class Rotator : MonoBehaviour {
public Vector3 direction = new Vector3(0, 0, 1f);
public float speed = 1f;
void Update () {
transform.Rotate(direction * (speed * Time.deltaTime * 100f));
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 12e291cb54756d04c9dd53ad6e00a126
timeCreated: 1479532891
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -29,46 +29,47 @@
*****************************************************************************/ *****************************************************************************/
using UnityEngine; using UnityEngine;
using System.Collections;
using Spine.Unity; using Spine.Unity;
[ExecuteInEditMode] namespace Spine.Unity.Examples {
[RequireComponent(typeof(SkeletonRenderer))] [ExecuteInEditMode]
public class SpineGauge : MonoBehaviour { [RequireComponent(typeof(SkeletonRenderer))]
public class SpineGauge : MonoBehaviour {
#region Inspector #region Inspector
[Range(0,1)] [Range(0,1)]
public float fillPercent = 0; public float fillPercent = 0;
[SpineAnimation] [SpineAnimation]
public string fillAnimationName; public string fillAnimationName;
#endregion #endregion
SkeletonRenderer skeletonRenderer; SkeletonRenderer skeletonRenderer;
Spine.Animation fillAnimation; Spine.Animation fillAnimation;
void Awake () { void Awake () {
skeletonRenderer = GetComponent<SkeletonRenderer>(); skeletonRenderer = GetComponent<SkeletonRenderer>();
}
void Update () {
SetGaugePercent(fillPercent);
}
public void SetGaugePercent (float x) {
if (skeletonRenderer == null) return;
var skeleton = skeletonRenderer.skeleton; if (skeleton == null) return;
// Make super-sure that fillAnimation isn't null. Early exit if it is.
if (fillAnimation == null) {
fillAnimation = skeleton.Data.FindAnimation(fillAnimationName);
if (fillAnimation == null) return;
} }
fillAnimation.Apply(skeleton, 0, x, false, null, 1f, true, false);
skeleton.Update(Time.deltaTime); void Update () {
skeleton.UpdateWorldTransform(); SetGaugePercent(fillPercent);
}
public void SetGaugePercent (float percent) {
if (skeletonRenderer == null) return;
var skeleton = skeletonRenderer.skeleton; if (skeleton == null) return;
// Make super-sure that fillAnimation isn't null.
if (fillAnimation == null) {
fillAnimation = skeleton.Data.FindAnimation(fillAnimationName);
if (fillAnimation == null) return;
}
fillAnimation.Apply(skeleton, 0, percent, false, null, 1f, true, false);
skeleton.Update(Time.deltaTime);
skeleton.UpdateWorldTransform();
}
} }
} }

View File

@ -33,25 +33,28 @@ using UnityEngine;
using Spine; using Spine;
using Spine.Unity; using Spine.Unity;
public class Spineboy : MonoBehaviour { namespace Spine.Unity.Examples {
SkeletonAnimation skeletonAnimation; public class Spineboy : MonoBehaviour {
SkeletonAnimation skeletonAnimation;
public void Start () { public void Start () {
skeletonAnimation = GetComponent<SkeletonAnimation>(); // Get the SkeletonAnimation component for the GameObject this script is attached to. skeletonAnimation = GetComponent<SkeletonAnimation>(); // Get the SkeletonAnimation component for the GameObject this script is attached to.
skeletonAnimation.state.Event += HandleEvent;; // Call our method any time an animation fires an event. skeletonAnimation.state.Event += HandleEvent;; // Call our method any time an animation fires an event.
skeletonAnimation.state.End += (entry) => Debug.Log("start: " + entry.trackIndex); // A lambda can be used for the callback instead of a method. skeletonAnimation.state.End += (entry) => Debug.Log("start: " + entry.trackIndex); // A lambda can be used for the callback instead of a method.
skeletonAnimation.state.AddAnimation(0, "jump", false, 2); // Queue jump to be played on track 0 two seconds after the starting animation. skeletonAnimation.state.AddAnimation(0, "jump", false, 2); // Queue jump to be played on track 0 two seconds after the starting animation.
skeletonAnimation.state.AddAnimation(0, "run", true, 0); // Queue walk to be looped on track 0 after the jump animation. skeletonAnimation.state.AddAnimation(0, "run", true, 0); // Queue walk to be looped on track 0 after the jump animation.
}
void HandleEvent (TrackEntry trackEntry, Spine.Event e) {
Debug.Log(trackEntry.trackIndex + " " + trackEntry.animation.name + ": event " + e + ", " + e.Int);
}
public void OnMouseDown () {
skeletonAnimation.state.SetAnimation(0, "jump", false); // Set jump to be played on track 0 immediately.
skeletonAnimation.state.AddAnimation(0, "run", true, 0); // Queue walk to be looped on track 0 after the jump animation.
}
} }
void HandleEvent (TrackEntry trackEntry, Spine.Event e) {
Debug.Log(trackEntry.trackIndex + " " + trackEntry.animation.name + ": event " + e + ", " + e.Int);
}
public void OnMouseDown () {
skeletonAnimation.state.SetAnimation(0, "jump", false); // Set jump to be played on track 0 immediately.
skeletonAnimation.state.AddAnimation(0, "run", true, 0); // Queue walk to be looped on track 0 after the jump animation.
}
} }

View File

@ -34,48 +34,52 @@ using Spine.Unity;
using Spine.Unity.Modules; using Spine.Unity.Modules;
public class SpineboyPole : MonoBehaviour { namespace Spine.Unity.Examples {
public SkeletonAnimation skeletonAnimation; public class SpineboyPole : MonoBehaviour {
public SkeletonRenderSeparator separator; public SkeletonAnimation skeletonAnimation;
public SkeletonRenderSeparator separator;
[Space(18)] [Space(18)]
[SpineAnimation] [SpineAnimation]
public string run; public string run;
[SpineAnimation] [SpineAnimation]
public string pole; public string pole;
public float startX; public float startX;
public float endX; public float endX;
const float Speed = 18f; const float Speed = 18f;
const float RunTimeScale = 1.5f; const float RunTimeScale = 1.5f;
IEnumerator Start () { IEnumerator Start () {
var state = skeletonAnimation.state; var state = skeletonAnimation.state;
while (true) { while (true) {
// Run phase // Run phase
SetXPosition(startX); SetXPosition(startX);
separator.enabled = false; // Disable Separator during run. separator.enabled = false; // Disable Separator during run.
state.SetAnimation(0, run, true); state.SetAnimation(0, run, true);
state.TimeScale = RunTimeScale; state.TimeScale = RunTimeScale;
while (transform.localPosition.x < endX) { while (transform.localPosition.x < endX) {
transform.Translate(Vector3.right * Speed * Time.deltaTime); transform.Translate(Vector3.right * Speed * Time.deltaTime);
yield return null; yield return null;
}
// Hit phase
SetXPosition(endX);
separator.enabled = true; // Enable Separator when hit
var poleTrack = state.SetAnimation(0, pole, false);
float duration = poleTrack.TrackEnd;
poleTrack.TrackEnd = float.PositiveInfinity;
yield return new WaitForSeconds(duration + 1f);
} }
}
// Hit phase void SetXPosition (float x) {
SetXPosition(endX); var tp = transform.localPosition;
separator.enabled = true; // Enable Separator when hit tp.x = x;
var poleTrack = state.SetAnimation(0, pole, false); transform.localPosition = tp;
yield return new WaitForSpineAnimationComplete(poleTrack);
yield return new WaitForSeconds(1f);
} }
} }
void SetXPosition (float x) {
var tp = transform.localPosition;
tp.x = x;
transform.localPosition = tp;
}
} }

View File

@ -1,9 +1,30 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 6bc52290ef03f2846ba38d67e2823598 guid: 6bc52290ef03f2846ba38d67e2823598
timeCreated: 1467205225 timeCreated: 1479419653
licenseType: Free licenseType: Free
TextureImporter: TextureImporter:
fileIDToRecycleName: {} fileIDToRecycleName:
21300000: L_rear_thigh
21300002: L_wing01
21300004: L_wing02
21300006: L_wing03
21300008: L_wing05
21300010: L_wing06
21300012: R_wing01
21300014: R_wing02
21300016: R_wing03
21300018: R_wing05
21300020: R_wing06
21300022: R_wing07
21300024: R_wing08
21300026: R_wing09
21300028: back
21300030: chest
21300032: front_toeA
21300034: head
21300036: logo
21300038: tail01
21300040: tail03
serializedVersion: 2 serializedVersion: 2
mipmaps: mipmaps:
mipMapMode: 0 mipMapMode: 0
@ -46,10 +67,285 @@ TextureImporter:
spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100 spritePixelsToUnits: 100
alphaIsTransparency: 0 alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 5 textureType: 5
buildTargetSettings: [] buildTargetSettings: []
spriteSheet: spriteSheet:
sprites: [] serializedVersion: 2
sprites:
- serializedVersion: 2
name: L_rear_thigh
rect:
serializedVersion: 2
x: 895
y: 856
width: 91
height: 148
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: L_wing01
rect:
serializedVersion: 2
x: 814
y: 96
width: 191
height: 256
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: L_wing02
rect:
serializedVersion: 2
x: 714
y: 566
width: 179
height: 269
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: L_wing03
rect:
serializedVersion: 2
x: 785
y: 354
width: 186
height: 207
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: L_wing05
rect:
serializedVersion: 2
x: 2
y: 797
width: 213
height: 218
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: L_wing06
rect:
serializedVersion: 2
x: 2
y: 464
width: 192
height: 331
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: R_wing01
rect:
serializedVersion: 2
x: 502
y: 96
width: 310
height: 219
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: R_wing02
rect:
serializedVersion: 2
x: 204
y: 358
width: 305
height: 203
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: R_wing03
rect:
serializedVersion: 2
x: 511
y: 317
width: 272
height: 247
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: R_wing05
rect:
serializedVersion: 2
x: 196
y: 563
width: 251
height: 229
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: R_wing06
rect:
serializedVersion: 2
x: 2
y: 96
width: 200
height: 366
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: R_wing07
rect:
serializedVersion: 2
x: 449
y: 566
width: 263
height: 200
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: R_wing08
rect:
serializedVersion: 2
x: 467
y: 768
width: 234
height: 254
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: R_wing09
rect:
serializedVersion: 2
x: 217
y: 794
width: 248
height: 204
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: back
rect:
serializedVersion: 2
x: 703
y: 837
width: 190
height: 185
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: chest
rect:
serializedVersion: 2
x: 895
y: 718
width: 122
height: 136
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: front_toeA
rect:
serializedVersion: 2
x: 976
y: 2
width: 29
height: 50
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: head
rect:
serializedVersion: 2
x: 204
y: 96
width: 296
height: 260
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: logo
rect:
serializedVersion: 2
x: 2
y: 2
width: 897
height: 92
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: tail01
rect:
serializedVersion: 2
x: 895
y: 563
width: 120
height: 153
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: tail03
rect:
serializedVersion: 2
x: 901
y: 2
width: 73
height: 92
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
outline: [] outline: []
spritePackingTag: spritePackingTag:
userData: userData:

View File

@ -1,9 +1,28 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 12c126994123f12468cf4c5a2684078a guid: 12c126994123f12468cf4c5a2684078a
timeCreated: 1467205225 timeCreated: 1479419653
licenseType: Free licenseType: Free
TextureImporter: TextureImporter:
fileIDToRecycleName: {} fileIDToRecycleName:
21300000: L_front_leg
21300002: L_front_thigh
21300004: L_rear_leg
21300006: L_wing04
21300008: L_wing07
21300010: L_wing08
21300012: L_wing09
21300014: R_front_leg
21300016: R_front_thigh
21300018: R_rear_leg
21300020: R_rear_thigh
21300022: R_wing04
21300024: chin
21300026: front_toeB
21300028: rear-toe
21300030: tail02
21300032: tail04
21300034: tail05
21300036: tail06
serializedVersion: 2 serializedVersion: 2
mipmaps: mipmaps:
mipMapMode: 0 mipMapMode: 0
@ -46,10 +65,259 @@ TextureImporter:
spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100 spritePixelsToUnits: 100
alphaIsTransparency: 0 alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 5 textureType: 5
buildTargetSettings: [] buildTargetSettings: []
spriteSheet: spriteSheet:
sprites: [] serializedVersion: 2
sprites:
- serializedVersion: 2
name: L_front_leg
rect:
serializedVersion: 2
x: 391
y: 287
width: 57
height: 84
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: L_front_thigh
rect:
serializedVersion: 2
x: 446
y: 171
width: 84
height: 72
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: L_rear_leg
rect:
serializedVersion: 2
x: 888
y: 2
width: 132
height: 168
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: L_wing04
rect:
serializedVersion: 2
x: 256
y: 150
width: 188
height: 135
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: L_wing07
rect:
serializedVersion: 2
x: 2
y: 148
width: 159
height: 255
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: L_wing08
rect:
serializedVersion: 2
x: 705
y: 2
width: 181
height: 164
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: L_wing09
rect:
serializedVersion: 2
x: 499
y: 2
width: 204
height: 167
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: R_front_leg
rect:
serializedVersion: 2
x: 273
y: 389
width: 101
height: 89
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: R_front_thigh
rect:
serializedVersion: 2
x: 163
y: 298
width: 108
height: 108
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: R_rear_leg
rect:
serializedVersion: 2
x: 273
y: 287
width: 116
height: 100
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: R_rear_thigh
rect:
serializedVersion: 2
x: 163
y: 148
width: 91
height: 148
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: R_wing04
rect:
serializedVersion: 2
x: 2
y: 2
width: 279
height: 144
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: chin
rect:
serializedVersion: 2
x: 283
y: 2
width: 214
height: 146
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: front_toeB
rect:
serializedVersion: 2
x: 590
y: 171
width: 56
height: 57
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: rear-toe
rect:
serializedVersion: 2
x: 2
y: 405
width: 77
height: 105
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: tail02
rect:
serializedVersion: 2
x: 151
y: 408
width: 120
height: 95
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: tail04
rect:
serializedVersion: 2
x: 532
y: 171
width: 56
height: 71
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: tail05
rect:
serializedVersion: 2
x: 648
y: 171
width: 52
height: 59
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: tail06
rect:
serializedVersion: 2
x: 81
y: 405
width: 68
height: 95
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
outline: [] outline: []
spritePackingTag: spritePackingTag:
userData: userData:

View File

@ -15,16 +15,14 @@ Material:
m_SavedProperties: m_SavedProperties:
serializedVersion: 2 serializedVersion: 2
m_TexEnvs: m_TexEnvs:
data: - first:
first: name: _MainTex
name: _MainTex second:
second: m_Texture: {fileID: 2800000, guid: 6bc52290ef03f2846ba38d67e2823598, type: 3}
m_Texture: {fileID: 2800000, guid: 6bc52290ef03f2846ba38d67e2823598, type: 3} m_Scale: {x: 1, y: 1}
m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0}
m_Offset: {x: 0, y: 0}
m_Floats: m_Floats:
data: - first:
first: name: _Cutoff
name: _Cutoff second: 0.1
second: 0.1 m_Colors: []
m_Colors: {}

View File

@ -15,16 +15,14 @@ Material:
m_SavedProperties: m_SavedProperties:
serializedVersion: 2 serializedVersion: 2
m_TexEnvs: m_TexEnvs:
data: - first:
first: name: _MainTex
name: _MainTex second:
second: m_Texture: {fileID: 2800000, guid: 12c126994123f12468cf4c5a2684078a, type: 3}
m_Texture: {fileID: 2800000, guid: 12c126994123f12468cf4c5a2684078a, type: 3} m_Scale: {x: 1, y: 1}
m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0}
m_Offset: {x: 0, y: 0}
m_Floats: m_Floats:
data: - first:
first: name: _Cutoff
name: _Cutoff second: 0.1
second: 0.1 m_Colors: []
m_Colors: {}

View File

@ -1,6 +1,6 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 49441e5a1682e564694545bd9b509785 guid: 49441e5a1682e564694545bd9b509785
timeCreated: 1467205225 timeCreated: 1479419653
licenseType: Free licenseType: Free
TextureImporter: TextureImporter:
fileIDToRecycleName: {} fileIDToRecycleName: {}
@ -46,9 +46,11 @@ TextureImporter:
spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100 spritePixelsToUnits: 100
alphaIsTransparency: 0 alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 5 textureType: 5
buildTargetSettings: [] buildTargetSettings: []
spriteSheet: spriteSheet:
serializedVersion: 2
sprites: [] sprites: []
outline: [] outline: []
spritePackingTag: spritePackingTag:

View File

@ -15,16 +15,14 @@ Material:
m_SavedProperties: m_SavedProperties:
serializedVersion: 2 serializedVersion: 2
m_TexEnvs: m_TexEnvs:
data: - first:
first: name: _MainTex
name: _MainTex second:
second: m_Texture: {fileID: 2800000, guid: 49441e5a1682e564694545bd9b509785, type: 3}
m_Texture: {fileID: 2800000, guid: 49441e5a1682e564694545bd9b509785, type: 3} m_Scale: {x: 1, y: 1}
m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0}
m_Offset: {x: 0, y: 0}
m_Floats: m_Floats:
data: - first:
first: name: _Cutoff
name: _Cutoff second: 0.1
second: 0.1 m_Colors: []
m_Colors: {}

View File

@ -1,13 +1,17 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: ddb89f63d0296cf4f8572b0448bb6b30 guid: ddb89f63d0296cf4f8572b0448bb6b30
timeCreated: 1467205225 timeCreated: 1480096533
licenseType: Free licenseType: Free
TextureImporter: TextureImporter:
fileIDToRecycleName: {} fileIDToRecycleName:
21300000: Equipment/shield1
21300002: Equipment/shield2
21300004: Equipment/sword1
21300006: Equipment/sword4
serializedVersion: 2 serializedVersion: 2
mipmaps: mipmaps:
mipMapMode: 0 mipMapMode: 0
enableMipMap: 0 enableMipMap: 1
linearTexture: 0 linearTexture: 0
correctGamma: 0 correctGamma: 0
fadeOut: 0 fadeOut: 0
@ -46,10 +50,64 @@ TextureImporter:
spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100 spritePixelsToUnits: 100
alphaIsTransparency: 0 alphaIsTransparency: 0
textureType: 5 spriteTessellationDetail: -1
textureType: 0
buildTargetSettings: [] buildTargetSettings: []
spriteSheet: spriteSheet:
sprites: [] serializedVersion: 2
sprites:
- serializedVersion: 2
name: Equipment/shield1
rect:
serializedVersion: 2
x: 220
y: 24
width: 118
height: 71
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: Equipment/shield2
rect:
serializedVersion: 2
x: 340
y: 24
width: 111
height: 82
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: Equipment/sword1
rect:
serializedVersion: 2
x: 2
y: 95
width: 161
height: 31
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
- serializedVersion: 2
name: Equipment/sword4
rect:
serializedVersion: 2
x: 2
y: 24
width: 216
height: 69
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
tessellationDetail: -1
outline: [] outline: []
spritePackingTag: spritePackingTag:
userData: userData:

View File

@ -15,16 +15,14 @@ Material:
m_SavedProperties: m_SavedProperties:
serializedVersion: 2 serializedVersion: 2
m_TexEnvs: m_TexEnvs:
data: - first:
first: name: _MainTex
name: _MainTex second:
second: m_Texture: {fileID: 2800000, guid: ddb89f63d0296cf4f8572b0448bb6b30, type: 3}
m_Texture: {fileID: 2800000, guid: ddb89f63d0296cf4f8572b0448bb6b30, type: 3} m_Scale: {x: 1, y: 1}
m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0}
m_Offset: {x: 0, y: 0}
m_Floats: m_Floats:
data: - first:
first: name: _Cutoff
name: _Cutoff second: 0.1
second: 0.1 m_Colors: []
m_Colors: {}

View File

@ -1,6 +1,6 @@
fileFormatVersion: 2 fileFormatVersion: 2
guid: 57b57f94df266f94ea0981915a4472e1 guid: 57b57f94df266f94ea0981915a4472e1
timeCreated: 1467205225 timeCreated: 1479419653
licenseType: Free licenseType: Free
TextureImporter: TextureImporter:
fileIDToRecycleName: {} fileIDToRecycleName: {}
@ -46,9 +46,11 @@ TextureImporter:
spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100 spritePixelsToUnits: 100
alphaIsTransparency: 0 alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 5 textureType: 5
buildTargetSettings: [] buildTargetSettings: []
spriteSheet: spriteSheet:
serializedVersion: 2
sprites: [] sprites: []
outline: [] outline: []
spritePackingTag: spritePackingTag:

View File

@ -15,16 +15,14 @@ Material:
m_SavedProperties: m_SavedProperties:
serializedVersion: 2 serializedVersion: 2
m_TexEnvs: m_TexEnvs:
data: - first:
first: name: _MainTex
name: _MainTex second:
second: m_Texture: {fileID: 2800000, guid: 57b57f94df266f94ea0981915a4472e1, type: 3}
m_Texture: {fileID: 2800000, guid: 57b57f94df266f94ea0981915a4472e1, type: 3} m_Scale: {x: 1, y: 1}
m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0}
m_Offset: {x: 0, y: 0}
m_Floats: m_Floats:
data: - first:
first: name: _Cutoff
name: _Cutoff second: 0.1
second: 0.1 m_Colors: []
m_Colors: {}

Some files were not shown because too many files have changed in this diff Show More