mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-04 14:24:53 +08:00
Merge branch 'master' into dev
This commit is contained in:
commit
66b5f49f2e
@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
|
||||
|
||||
## 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.
|
||||
|
||||
|
||||
@ -14,7 +14,7 @@ com.powerflasher.fdt.core.PassManifests=true
|
||||
com.powerflasher.fdt.core.PassRsls=false
|
||||
com.powerflasher.fdt.core.PassSwcs=true
|
||||
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.Runtime=Flash_Player
|
||||
com.powerflasher.fdt.core.SdkName=Flex 4.6.0
|
||||
|
||||
Binary file not shown.
@ -14,7 +14,7 @@ com.powerflasher.fdt.core.PassManifests=true
|
||||
com.powerflasher.fdt.core.PassRsls=false
|
||||
com.powerflasher.fdt.core.PassSwcs=true
|
||||
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.Runtime=Flash_Player
|
||||
com.powerflasher.fdt.core.SdkName=Flex 4.6.0
|
||||
|
||||
@ -727,7 +727,7 @@ public class SkeletonJson {
|
||||
|
||||
import spine.attachments.MeshAttachment;
|
||||
|
||||
internal class LinkedMesh {
|
||||
class LinkedMesh {
|
||||
internal var parent:String, skin:String;
|
||||
internal var slotIndex:int;
|
||||
internal var mesh:MeshAttachment;
|
||||
|
||||
@ -95,10 +95,8 @@ public class AnimationState {
|
||||
next = next.mixingFrom;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
updateMixingFrom(current, delta, true);
|
||||
}
|
||||
} 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.
|
||||
if (current.trackLast >= current.trackEnd && current.mixingFrom == null) {
|
||||
tracks[i] = null;
|
||||
@ -107,6 +105,7 @@ public class AnimationState {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
updateMixingFrom(current, delta);
|
||||
|
||||
current.trackTime += currentDelta;
|
||||
}
|
||||
@ -114,27 +113,22 @@ public class AnimationState {
|
||||
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;
|
||||
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);
|
||||
var newFrom:TrackEntry = from.mixingFrom;
|
||||
entry.mixingFrom = newFrom;
|
||||
if (newFrom == null) return;
|
||||
entry.mixTime = from.mixTime;
|
||||
entry.mixDuration = from.mixDuration;
|
||||
from = newFrom;
|
||||
return;
|
||||
}
|
||||
|
||||
from.animationLast = from.nextAnimationLast;
|
||||
from.trackLast = from.nextTrackLast;
|
||||
var mixingFromDelta:Number = delta * from.timeScale;
|
||||
from.trackTime += mixingFromDelta;
|
||||
entry.mixTime += mixingFromDelta;
|
||||
|
||||
updateMixingFrom(from, delta, canEnd && from.alpha == 1);
|
||||
from.trackLast = from.nextTrackLast;
|
||||
from.trackTime += delta * from.timeScale;
|
||||
entry.mixTime += delta * entry.timeScale;
|
||||
}
|
||||
|
||||
public function apply (skeleton:Skeleton):void {
|
||||
@ -149,7 +143,10 @@ public class AnimationState {
|
||||
|
||||
// Apply mixing from entries first.
|
||||
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.
|
||||
var animationLast:Number = current.animationLast, animationTime:Number = current.getAnimationTime();
|
||||
@ -388,11 +385,11 @@ public class AnimationState {
|
||||
if (current != null) {
|
||||
if (current.nextTrackLast == -1) {
|
||||
// Don't mix from an entry that was never applied.
|
||||
tracks[trackIndex] = null;
|
||||
tracks[trackIndex] = current.mixingFrom;
|
||||
queue.interrupt(current);
|
||||
queue.end(current);
|
||||
disposeNext(current);
|
||||
current = null;
|
||||
current = current.mixingFrom;
|
||||
} else
|
||||
disposeNext(current);
|
||||
}
|
||||
|
||||
@ -12,7 +12,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
|
||||
|
||||
## 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.
|
||||
|
||||
|
||||
@ -138,6 +138,9 @@ void spAnimationState_clearListenerNotifications(spAnimationState* self);
|
||||
|
||||
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
|
||||
typedef spEventType EventType;
|
||||
#define ANIMATION_START SP_ANIMATION_START
|
||||
|
||||
@ -611,7 +611,7 @@ void _spAttachmentTimeline_apply (const spTimeline* timeline, spSkeleton* skelet
|
||||
|
||||
if (mixingOut && setupPose) {
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
@ -33,12 +33,16 @@
|
||||
#include <limits.h>
|
||||
|
||||
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
|
||||
the same function order in C as we have method order in Java */
|
||||
void _spAnimationState_disposeTrackEntry (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);
|
||||
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);
|
||||
@ -67,6 +71,7 @@ _spEventQueue* _spEventQueue_create (_spAnimationState* state) {
|
||||
|
||||
void _spEventQueue_free (_spEventQueue* self) {
|
||||
FREE(self->objects);
|
||||
FREE(self);
|
||||
}
|
||||
|
||||
void _spEventQueue_ensureCapacity (_spEventQueue* self, int newElements) {
|
||||
@ -74,7 +79,7 @@ void _spEventQueue_ensureCapacity (_spEventQueue* self, int newElements) {
|
||||
_spEventQueueItem* newObjects;
|
||||
self->objectsCapacity <<= 1;
|
||||
newObjects = CALLOC(_spEventQueueItem, self->objectsCapacity);
|
||||
memcpy(newObjects, self->objects, self->objectsCount);
|
||||
memcpy(newObjects, self->objects, sizeof(_spEventQueueItem) * self->objectsCount);
|
||||
FREE(self->objects);
|
||||
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);
|
||||
/* Fall through. */
|
||||
case SP_ANIMATION_DISPOSE:
|
||||
if (entry->listener) entry->listener(SUPER(self->state), type, entry, 0);
|
||||
if (self->state->super.listener) self->state->super.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), SP_ANIMATION_DISPOSE, entry, 0);
|
||||
_spAnimationState_disposeTrackEntry(entry);
|
||||
break;
|
||||
case SP_ANIMATION_EVENT:
|
||||
@ -170,6 +175,9 @@ void _spEventQueue_drain (_spEventQueue* self) {
|
||||
}
|
||||
|
||||
void _spAnimationState_disposeTrackEntry (spTrackEntry* entry) {
|
||||
if (entry->mixingFrom) _spAnimationState_disposeTrackEntry(entry->mixingFrom);
|
||||
FREE(entry->timelinesFirst);
|
||||
FREE(entry->timelinesRotation);
|
||||
FREE(entry);
|
||||
}
|
||||
|
||||
@ -214,6 +222,7 @@ void spAnimationState_dispose (spAnimationState* self) {
|
||||
_spEventQueue_free(internal->queue);
|
||||
FREE(internal->events);
|
||||
FREE(internal->propertyIDs);
|
||||
FREE(internal);
|
||||
}
|
||||
|
||||
void spAnimationState_update (spAnimationState* self, float delta) {
|
||||
@ -253,9 +262,7 @@ void spAnimationState_update (spAnimationState* self, float delta) {
|
||||
}
|
||||
continue;
|
||||
}
|
||||
_spAnimationState_updateMixingFrom(self, current, delta, 1);
|
||||
} 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. */
|
||||
if (current->trackLast >= current->trackEnd && current->mixingFrom == 0) {
|
||||
self->tracks[i] = 0;
|
||||
@ -264,6 +271,7 @@ void spAnimationState_update (spAnimationState* self, float delta) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
_spAnimationState_updateMixingFrom(self, current, delta);
|
||||
|
||||
current->trackTime += currentDelta;
|
||||
}
|
||||
@ -271,30 +279,23 @@ void spAnimationState_update (spAnimationState* self, float delta) {
|
||||
_spEventQueue_drain(internal->queue);
|
||||
}
|
||||
|
||||
void _spAnimationState_updateMixingFrom (spAnimationState* self, spTrackEntry* entry, float delta, int /*boolean*/ canEnd) {
|
||||
spTrackEntry* from = entry->mixingFrom;
|
||||
spTrackEntry* newFrom;
|
||||
float mixingFromDelta;
|
||||
void _spAnimationState_updateMixingFrom (spAnimationState* self, spTrackEntry* entry, float delta) {
|
||||
spTrackEntry* from = entry->mixingFrom;
|
||||
_spAnimationState* internal = SUB_CAST(_spAnimationState, self);
|
||||
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);
|
||||
newFrom = from->mixingFrom;
|
||||
entry->mixingFrom = newFrom;
|
||||
if (!newFrom) return;
|
||||
entry->mixTime = from->mixTime;
|
||||
entry->mixDuration = from->mixDuration;
|
||||
from = newFrom;
|
||||
return;
|
||||
}
|
||||
|
||||
from->animationLast = from->nextAnimationLast;
|
||||
from->trackLast = from->nextTrackLast;
|
||||
mixingFromDelta = delta * from->timeScale;
|
||||
from->trackTime += mixingFromDelta;
|
||||
entry->mixTime += mixingFromDelta;
|
||||
|
||||
_spAnimationState_updateMixingFrom(self, from, delta, canEnd && from->alpha == 1);
|
||||
from->trackTime += delta * from->timeScale;
|
||||
entry->mixTime += delta * entry->timeScale;
|
||||
}
|
||||
|
||||
void spAnimationState_apply (spAnimationState* self, spSkeleton* skeleton) {
|
||||
@ -318,7 +319,10 @@ void spAnimationState_apply (spAnimationState* self, spSkeleton* skeleton) {
|
||||
|
||||
/* Apply mixing from entries first. */
|
||||
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. */
|
||||
animationLast = current->animationLast; animationTime = spTrackEntry_getAnimationTime(current);
|
||||
@ -593,11 +597,11 @@ spTrackEntry* spAnimationState_setAnimation (spAnimationState* self, int trackIn
|
||||
if (current) {
|
||||
if (current->nextTrackLast == -1) {
|
||||
/* 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_end(internal->queue, current);
|
||||
_spAnimationState_disposeNext(self, current);
|
||||
current = 0;
|
||||
current = current->mixingFrom;
|
||||
} else
|
||||
_spAnimationState_disposeNext(self, current);
|
||||
}
|
||||
@ -771,7 +775,7 @@ void _spAnimationState_ensureCapacityPropertyIDs(spAnimationState* self, int cap
|
||||
_spAnimationState* internal = SUB_CAST(_spAnimationState, self);
|
||||
if (internal->propertyIDsCapacity < capacity) {
|
||||
int *newPropertyIDs = CALLOC(int, capacity << 1);
|
||||
memcpy(newPropertyIDs, internal->propertyIDs, internal->propertyIDsCount);
|
||||
memcpy(newPropertyIDs, internal->propertyIDs, sizeof(int) * internal->propertyIDsCount);
|
||||
FREE(internal->propertyIDs);
|
||||
internal->propertyIDs = newPropertyIDs;
|
||||
internal->propertyIDsCapacity = capacity << 1;
|
||||
@ -788,6 +792,7 @@ int _spAnimationState_addPropertyID(spAnimationState* self, int id) {
|
||||
|
||||
_spAnimationState_ensureCapacityPropertyIDs(self, internal->propertyIDsCount + 1);
|
||||
internal->propertyIDs[internal->propertyIDsCount] = id;
|
||||
internal->propertyIDsCount++;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@ -112,7 +112,7 @@ void spSkeletonBounds_update (spSkeletonBounds* self, spSkeleton* skeleton, int/
|
||||
self->boundingBoxes = MALLOC(spBoundingBoxAttachment*, skeleton->slotsCount);
|
||||
|
||||
newPolygons = CALLOC(spPolygon*, skeleton->slotsCount);
|
||||
memcpy(newPolygons, self->polygons, internal->capacity);
|
||||
memcpy(newPolygons, self->polygons, sizeof(spPolygon*) * internal->capacity);
|
||||
FREE(self->polygons);
|
||||
self->polygons = newPolygons;
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
|
||||
|
||||
## 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.
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
|
||||
|
||||
## 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.
|
||||
|
||||
|
||||
@ -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);
|
||||
});
|
||||
|
||||
skeletonNode->setMix("walk", "jump", 0.2f);
|
||||
skeletonNode->setMix("jump", "run", 0.2f);
|
||||
skeletonNode->setMix("walk", "jump", 0.4);
|
||||
skeletonNode->setMix("jump", "run", 0.4);
|
||||
skeletonNode->setAnimation(0, "walk", true);
|
||||
spTrackEntry* jumpEntry = skeletonNode->addAnimation(0, "jump", false, 3);
|
||||
skeletonNode->addAnimation(0, "run", true);
|
||||
spTrackEntry* jumpEntry = skeletonNode->addAnimation(0, "jump", false, 1);
|
||||
skeletonNode->addAnimation(0, "run", true);
|
||||
|
||||
skeletonNode->setTrackStartListener(jumpEntry, [] (spTrackEntry* entry) {
|
||||
log("jumped!");
|
||||
|
||||
@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
|
||||
|
||||
## 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.
|
||||
|
||||
|
||||
@ -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 "").."'")
|
||||
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 { skeleton = skeleton, state = animationState }
|
||||
|
||||
@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
|
||||
|
||||
## 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.
|
||||
|
||||
|
||||
@ -581,7 +581,7 @@ namespace Spine {
|
||||
}
|
||||
|
||||
float[] frames = this.frames;
|
||||
if (time < frames[0]) {
|
||||
if (time < frames[0]) { // Time is before first frame.
|
||||
if (setupPose) {
|
||||
attachmentName = slot.data.attachmentName;
|
||||
slot.Attachment = attachmentName == null ? null : skeleton.GetAttachment(slotIndex, attachmentName);
|
||||
|
||||
@ -102,9 +102,7 @@ namespace Spine {
|
||||
}
|
||||
continue;
|
||||
}
|
||||
UpdateMixingFrom(current, delta, true);
|
||||
} 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.
|
||||
if (current.trackLast >= current.trackEnd && current.mixingFrom == null) {
|
||||
tracksItems[i] = null;
|
||||
@ -113,6 +111,7 @@ namespace Spine {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
UpdateMixingFrom(current, delta);
|
||||
|
||||
current.trackTime += currentDelta;
|
||||
}
|
||||
@ -120,27 +119,22 @@ namespace Spine {
|
||||
queue.Drain();
|
||||
}
|
||||
|
||||
private void UpdateMixingFrom (TrackEntry entry, float delta, bool canEnd) {
|
||||
private void UpdateMixingFrom (TrackEntry entry, float delta) {
|
||||
TrackEntry from = entry.mixingFrom;
|
||||
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);
|
||||
TrackEntry newFrom = from.mixingFrom;
|
||||
entry.mixingFrom = newFrom;
|
||||
if (newFrom == null) return;
|
||||
entry.mixTime = from.mixTime;
|
||||
entry.mixDuration = from.mixDuration;
|
||||
from = newFrom;
|
||||
return;
|
||||
}
|
||||
|
||||
from.animationLast = from.nextAnimationLast;
|
||||
from.trackLast = from.nextTrackLast;
|
||||
float mixingFromDelta = delta * from.timeScale;
|
||||
from.trackTime += mixingFromDelta;
|
||||
entry.mixTime += mixingFromDelta;
|
||||
|
||||
UpdateMixingFrom(from, delta, canEnd && from.alpha == 1);
|
||||
from.trackTime += delta * from.timeScale;
|
||||
entry.mixTime += delta * entry.timeScale;
|
||||
}
|
||||
|
||||
|
||||
@ -160,7 +154,10 @@ namespace Spine {
|
||||
|
||||
// Apply mixing from entries first.
|
||||
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.
|
||||
float animationLast = current.animationLast, animationTime = current.AnimationTime;
|
||||
@ -228,7 +225,7 @@ namespace Spine {
|
||||
if (rotateTimeline != null) {
|
||||
ApplyRotateTimeline(rotateTimeline, skeleton, animationTime, alpha, setupPose, timelinesRotation, i << 1, firstFrame);
|
||||
} else {
|
||||
if (setupPose) {
|
||||
if (!setupPose) {
|
||||
if (!attachments && timeline is AttachmentTimeline) continue;
|
||||
if (!drawOrder && timeline is DrawOrderTimeline) continue;
|
||||
}
|
||||
@ -236,7 +233,7 @@ namespace Spine {
|
||||
}
|
||||
}
|
||||
|
||||
QueueEvents(entry, animationTime);
|
||||
QueueEvents(from, animationTime);
|
||||
from.nextAnimationLast = animationTime;
|
||||
from.nextTrackLast = from.trackTime;
|
||||
|
||||
@ -420,11 +417,11 @@ namespace Spine {
|
||||
if (current != null) {
|
||||
if (current.nextTrackLast == -1) {
|
||||
// Don't mix from an entry that was never applied.
|
||||
tracks.Items[trackIndex] = null;
|
||||
tracks.Items[trackIndex] = current.mixingFrom;
|
||||
queue.Interrupt(current);
|
||||
queue.End(current);
|
||||
DisposeNext(current);
|
||||
current = null;
|
||||
current = current.mixingFrom;
|
||||
} else {
|
||||
DisposeNext(current);
|
||||
}
|
||||
@ -686,11 +683,11 @@ namespace Spine {
|
||||
/// <summary>
|
||||
/// 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
|
||||
/// 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.
|
||||
/// other animations are queued for playback, and mixing from any previous animations is complete, properties keyed by the animation,
|
||||
/// 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
|
||||
/// setup pose, rather than leaving them in their previous pose.
|
||||
/// It may be desired to use <see cref="AnimationState.AddEmptyAnimation(int, float, float)"/> to mix the properties back to the
|
||||
/// setup pose over time, rather than have it happen instantly.
|
||||
/// </summary>
|
||||
public float TrackEnd { get { return trackEnd; } set { trackEnd = value; } }
|
||||
|
||||
|
||||
@ -82,7 +82,7 @@ namespace Spine {
|
||||
}
|
||||
|
||||
if (updateAabb) {
|
||||
aabbCompute();
|
||||
AabbCompute();
|
||||
} else {
|
||||
minX = 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;
|
||||
ExposedList<Polygon> polygons = Polygons;
|
||||
for (int i = 0, n = polygons.Count; i < n; i++) {
|
||||
@ -204,7 +204,7 @@ namespace Spine {
|
||||
return false;
|
||||
}
|
||||
|
||||
public Polygon getPolygon (BoundingBoxAttachment attachment) {
|
||||
public Polygon GetPolygon (BoundingBoxAttachment attachment) {
|
||||
int index = BoundingBoxes.IndexOf(attachment);
|
||||
return index == -1 ? null : Polygons.Items[index];
|
||||
}
|
||||
|
||||
@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
|
||||
|
||||
## 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.
|
||||
|
||||
|
||||
@ -650,8 +650,8 @@ public class AnimationStateTests {
|
||||
expect(0, "end", 0.8f, 0.9f), //
|
||||
expect(0, "dispose", 0.8f, 0.9f), //
|
||||
|
||||
expect(-1, "end", 0.1f, 0.9f), //
|
||||
expect(-1, "dispose", 0.1f, 0.9f) //
|
||||
expect(-1, "end", 0.2f, 1), //
|
||||
expect(-1, "dispose", 0.2f, 1) //
|
||||
);
|
||||
state.addAnimation(0, "events1", false, 0);
|
||||
run(0.1f, 10, new TestListener() {
|
||||
|
||||
@ -108,9 +108,7 @@ public class AnimationState {
|
||||
}
|
||||
continue;
|
||||
}
|
||||
updateMixingFrom(current, delta, true);
|
||||
} 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.
|
||||
if (current.trackLast >= current.trackEnd && current.mixingFrom == null) {
|
||||
tracks.set(i, null);
|
||||
@ -119,6 +117,7 @@ public class AnimationState {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
updateMixingFrom(current, delta);
|
||||
|
||||
current.trackTime += currentDelta;
|
||||
}
|
||||
@ -126,27 +125,22 @@ public class AnimationState {
|
||||
queue.drain();
|
||||
}
|
||||
|
||||
private void updateMixingFrom (TrackEntry entry, float delta, boolean canEnd) {
|
||||
private void updateMixingFrom (TrackEntry entry, float delta) {
|
||||
TrackEntry from = entry.mixingFrom;
|
||||
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);
|
||||
TrackEntry newFrom = from.mixingFrom;
|
||||
entry.mixingFrom = newFrom;
|
||||
if (newFrom == null) return;
|
||||
entry.mixTime = from.mixTime;
|
||||
entry.mixDuration = from.mixDuration;
|
||||
from = newFrom;
|
||||
return;
|
||||
}
|
||||
|
||||
from.animationLast = from.nextAnimationLast;
|
||||
from.trackLast = from.nextTrackLast;
|
||||
float mixingFromDelta = delta * from.timeScale;
|
||||
from.trackTime += mixingFromDelta;
|
||||
entry.mixTime += mixingFromDelta;
|
||||
|
||||
updateMixingFrom(from, delta, canEnd && from.alpha == 1);
|
||||
from.trackTime += delta * from.timeScale;
|
||||
entry.mixTime += delta * entry.timeScale;
|
||||
}
|
||||
|
||||
/** 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.
|
||||
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.
|
||||
float animationLast = current.animationLast, animationTime = current.getAnimationTime();
|
||||
@ -413,11 +410,11 @@ public class AnimationState {
|
||||
if (current != null) {
|
||||
if (current.nextTrackLast == -1) {
|
||||
// Don't mix from an entry that was never applied.
|
||||
tracks.set(trackIndex, null);
|
||||
tracks.set(trackIndex, current.mixingFrom);
|
||||
queue.interrupt(current);
|
||||
queue.end(current);
|
||||
disposeNext(current);
|
||||
current = null;
|
||||
current = current.mixingFrom;
|
||||
} else
|
||||
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
|
||||
* {@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,
|
||||
* 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>
|
||||
* It may be desired to use {@link AnimationState#addEmptyAnimation(int, float, float)} to mix the skeletons back to the
|
||||
* setup pose, rather than leaving them in their previous pose. */
|
||||
* It may be desired to use {@link AnimationState#addEmptyAnimation(int, float, float)} to mix the properties back to the
|
||||
* setup pose over time, rather than have it happen instantly. */
|
||||
public float getTrackEnd () {
|
||||
return trackEnd;
|
||||
}
|
||||
|
||||
@ -51,7 +51,7 @@ public class SkeletonData {
|
||||
String version, hash;
|
||||
|
||||
// Nonessential.
|
||||
float fps;
|
||||
float fps = 30;
|
||||
String imagesPath;
|
||||
|
||||
// --- Bones.
|
||||
|
||||
@ -117,7 +117,7 @@ public class SkeletonJson {
|
||||
skeletonData.version = skeletonMap.getString("spine", null);
|
||||
skeletonData.width = skeletonMap.getFloat("width", 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);
|
||||
}
|
||||
|
||||
|
||||
@ -227,10 +227,8 @@ public class SkeletonViewer extends ApplicationAdapter {
|
||||
state.setEmptyAnimation(track, 0);
|
||||
entry = state.addAnimation(track, ui.animationList.getSelected(), ui.loopCheckbox.isChecked(), 0);
|
||||
entry.setMixDuration(ui.mixSlider.getValue());
|
||||
entry.setTrackEnd(Integer.MAX_VALUE);
|
||||
} else {
|
||||
entry = state.setAnimation(track, ui.animationList.getSelected(), ui.loopCheckbox.isChecked());
|
||||
entry.setTrackEnd(Integer.MAX_VALUE);
|
||||
}
|
||||
entry.setAlpha(ui.alphaSlider.getValue());
|
||||
}
|
||||
@ -597,7 +595,10 @@ public class SkeletonViewer extends ApplicationAdapter {
|
||||
int track = trackButtons.getCheckedIndex();
|
||||
if (track > 0) {
|
||||
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 () {
|
||||
if (state.getCurrent(ui.trackButtons.getCheckedIndex()) == null) {
|
||||
ui.animationList.getSelection().setProgrammaticChangeEvents(false);
|
||||
ui.animationList.setSelected(null);
|
||||
ui.animationList.getSelection().setProgrammaticChangeEvents(true);
|
||||
}
|
||||
|
||||
statusLabel.pack();
|
||||
if (minimizeButton.isChecked())
|
||||
statusLabel.setPosition(10, 25, Align.bottom | Align.left);
|
||||
|
||||
@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
|
||||
|
||||
## 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.
|
||||
|
||||
|
||||
@ -581,7 +581,7 @@ function Animation.AttachmentTimeline.new (frameCount)
|
||||
end
|
||||
|
||||
function self:getPropertyId ()
|
||||
return Timeline.attachment * SHL_24 + self.slotIndex
|
||||
return TimelineType.attachment * SHL_24 + self.slotIndex
|
||||
end
|
||||
|
||||
function self:apply (skeleton, lastTime, time, firedEvents, alpha, setupPose, mixingOut)
|
||||
@ -592,7 +592,7 @@ function Animation.AttachmentTimeline.new (frameCount)
|
||||
if not attachmentName then
|
||||
slot:setAttachment(nil)
|
||||
else
|
||||
skeleton:setAttachment(skeleton:getAttachmentByIndex(self.slotIndex, attachmentName))
|
||||
slot:setAttachment(skeleton:getAttachmentByIndex(self.slotIndex, attachmentName))
|
||||
end
|
||||
return;
|
||||
end
|
||||
@ -604,7 +604,7 @@ function Animation.AttachmentTimeline.new (frameCount)
|
||||
if not attachmentName then
|
||||
slot:setAttachment(nil)
|
||||
else
|
||||
skeleton:setAttachment(skeleton:getAttachmentByIndex(self.slotIndex, attachmentName))
|
||||
slot:setAttachment(skeleton:getAttachmentByIndex(self.slotIndex, attachmentName))
|
||||
end
|
||||
end
|
||||
return
|
||||
@ -619,9 +619,9 @@ function Animation.AttachmentTimeline.new (frameCount)
|
||||
|
||||
attachmentName = self.attachmentNames[frameIndex]
|
||||
if not attachmentName then
|
||||
skeleton.slots[self.slotIndex]:setAttachment(nil)
|
||||
slot:setAttachment(nil)
|
||||
else
|
||||
skeleton.slots[self.slotIndex]:setAttachment(skeleton:getAttachmentByIndex(self.slotIndex, attachmentName))
|
||||
slot:setAttachment(skeleton:getAttachmentByIndex(self.slotIndex, attachmentName))
|
||||
end
|
||||
end
|
||||
|
||||
@ -767,7 +767,7 @@ function Animation.EventTimeline.new (frameCount)
|
||||
}
|
||||
|
||||
function self:getPropertyId ()
|
||||
return Timeline.event * SHL_24
|
||||
return TimelineType.event * SHL_24
|
||||
end
|
||||
|
||||
function self:getFrameCount ()
|
||||
@ -824,7 +824,7 @@ function Animation.DrawOrderTimeline.new (frameCount)
|
||||
}
|
||||
|
||||
function self:getPropertyId ()
|
||||
return Timeline.drawOrder * SHL_24
|
||||
return TimelineType.drawOrder * SHL_24
|
||||
end
|
||||
|
||||
function self:getFrameCount ()
|
||||
|
||||
@ -232,26 +232,22 @@ function AnimationState:update (delta)
|
||||
end
|
||||
|
||||
if not skip then
|
||||
local next = current.next
|
||||
if next then
|
||||
local _next = current.next
|
||||
if _next then
|
||||
-- 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
|
||||
next.delay = 0
|
||||
next.trackTime = nextTime + delta * next.timeScale
|
||||
_next.delay = 0
|
||||
_next.trackTime = nextTime + delta * _next.timeScale
|
||||
current.trackTime = current.trackTime + currentDelta
|
||||
self:setCurrent(i, next)
|
||||
while next.mixingFrom do
|
||||
next.mixTime = next.mixTime + currentDelta
|
||||
next = next.mixingFrom
|
||||
self:setCurrent(i, _next)
|
||||
while _next.mixingFrom do
|
||||
_next.mixTime = _next.mixTime + currentDelta
|
||||
_next = _next.mixingFrom
|
||||
end
|
||||
skip = true
|
||||
end
|
||||
if not skip then
|
||||
self:updateMixingFrom(current, delta, true);
|
||||
end
|
||||
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.
|
||||
if current.trackLast >= current.trackEnd and current.mixingFrom == nil then
|
||||
tracks[i] = nil
|
||||
@ -261,7 +257,10 @@ function AnimationState:update (delta)
|
||||
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
|
||||
@ -269,28 +268,23 @@ function AnimationState:update (delta)
|
||||
queue:drain()
|
||||
end
|
||||
|
||||
function AnimationState:updateMixingFrom (entry, delta, canEnd)
|
||||
function AnimationState:updateMixingFrom (entry, delta)
|
||||
local from = entry.mixingFrom
|
||||
if from == nil then return end
|
||||
|
||||
self:updateMixingFrom(from, delta)
|
||||
|
||||
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)
|
||||
local newFrom = from.mixingFrom
|
||||
entry.mixingFrom = newFrom
|
||||
if newFrom == nil then return end
|
||||
entry.mixTime = from.mixTime;
|
||||
entry.mixDuration = from.mixDuration;
|
||||
from = newFrom;
|
||||
return
|
||||
end
|
||||
|
||||
from.animationLast = from.nextAnimationLast
|
||||
from.trackLast = from.nextTrackLast
|
||||
local mixingFromDelta = delta * from.timeScale
|
||||
from.trackTime = from.trackTime + mixingFromDelta;
|
||||
entry.mixTime = entry.mixTime + mixingFromDelta;
|
||||
|
||||
self:updateMixingFrom(from, delta, canEnd and from.alpha == 1)
|
||||
from.trackTime = from.trackTime + delta * from.timeScale;
|
||||
entry.mixTime = entry.mixTime + delta * entry.timeScale;
|
||||
end
|
||||
|
||||
function AnimationState:apply (skeleton)
|
||||
@ -305,7 +299,11 @@ function AnimationState:apply (skeleton)
|
||||
if not (current == nil or current.delay > 0) then
|
||||
-- Apply mixing from entries first.
|
||||
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.
|
||||
local animationLast = current.animationLast
|
||||
@ -563,11 +561,11 @@ function AnimationState:setAnimation (trackIndex, animation, loop)
|
||||
if current then
|
||||
if current.nextTrackLast == -1 then
|
||||
-- Don't mix from an entry that was never applied.
|
||||
tracks[trackIndex] = nil
|
||||
tracks[trackIndex] = current.mixingFrom
|
||||
queue:interrupt(current)
|
||||
queue:_end(current)
|
||||
self:disposeNext(current)
|
||||
current = nil
|
||||
current = current.mixingFrom
|
||||
else
|
||||
self:disposeNext(current)
|
||||
end
|
||||
@ -708,9 +706,9 @@ function AnimationState:_animationsChanged ()
|
||||
end
|
||||
|
||||
-- Set timelinesFirst for all entries, from lowest track to highest.
|
||||
local i = 1
|
||||
local n = highest
|
||||
while i <= n do
|
||||
local i = 0
|
||||
local n = highest + 1
|
||||
while i < n do
|
||||
local entry = tracks[i]
|
||||
if entry then
|
||||
self:setTimelinesFirst(entry);
|
||||
@ -719,7 +717,7 @@ function AnimationState:_animationsChanged ()
|
||||
end
|
||||
i = i + 1
|
||||
end
|
||||
while i <= n do
|
||||
while i < n do
|
||||
local entry = tracks[i]
|
||||
if entry then self:checkTimelinesFirst(entry) end
|
||||
i = i + 1
|
||||
@ -756,6 +754,7 @@ function AnimationState:checkTimelinesUsage (entry, usageArray)
|
||||
local n = #entry.animation.timelines
|
||||
local timelines = entry.animation.timelines
|
||||
local usage = usageArray
|
||||
local i = 1
|
||||
while i <= n do
|
||||
local id = "" .. timelines[i]:getPropertyId()
|
||||
local contained = propertyIDs[id] == id
|
||||
|
||||
@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
|
||||
|
||||
## 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.
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
|
||||
|
||||
## 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.
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
|
||||
|
||||
## 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.
|
||||
|
||||
|
||||
@ -10,7 +10,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
|
||||
|
||||
## 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.
|
||||
|
||||
|
||||
@ -14,7 +14,7 @@ com.powerflasher.fdt.core.PassManifests=true
|
||||
com.powerflasher.fdt.core.PassRsls=false
|
||||
com.powerflasher.fdt.core.PassSwcs=true
|
||||
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.Runtime=Flash_Player
|
||||
com.powerflasher.fdt.core.SdkName=Flex 4.6.0
|
||||
|
||||
Binary file not shown.
@ -64,9 +64,9 @@ public class SpineboyExample extends Sprite {
|
||||
var skeletonData:SkeletonData = json.readSkeletonData(new SpineboyJson());
|
||||
|
||||
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", "jump", 0.2);
|
||||
stateData.setMixByName("jump", "jump", 0.4);
|
||||
|
||||
skeleton = new SkeletonAnimation(skeletonData, stateData);
|
||||
skeleton.x = 400;
|
||||
|
||||
Binary file not shown.
@ -18,7 +18,7 @@ The Spine Runtimes are developed with the intent to be used with data exported f
|
||||
|
||||
## 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.
|
||||
|
||||
|
||||
2
spine-ts/build/spine-all.d.ts
vendored
2
spine-ts/build/spine-all.d.ts
vendored
@ -302,7 +302,7 @@ declare module spine {
|
||||
trackEntryPool: Pool<TrackEntry>;
|
||||
constructor(data: AnimationStateData);
|
||||
update(delta: number): void;
|
||||
updateMixingFrom(entry: TrackEntry, delta: number, canEnd: boolean): void;
|
||||
updateMixingFrom(entry: TrackEntry, delta: number): void;
|
||||
apply(skeleton: Skeleton): void;
|
||||
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;
|
||||
|
||||
@ -1330,10 +1330,8 @@ var spine;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
this.updateMixingFrom(current, delta, true);
|
||||
}
|
||||
else {
|
||||
this.updateMixingFrom(current, delta, true);
|
||||
if (current.trackLast >= current.trackEnd && current.mixingFrom == null) {
|
||||
tracks[i] = null;
|
||||
this.queue.end(current);
|
||||
@ -1341,30 +1339,25 @@ var spine;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
this.updateMixingFrom(current, delta);
|
||||
current.trackTime += currentDelta;
|
||||
}
|
||||
this.queue.drain();
|
||||
};
|
||||
AnimationState.prototype.updateMixingFrom = function (entry, delta, canEnd) {
|
||||
AnimationState.prototype.updateMixingFrom = function (entry, delta) {
|
||||
var from = entry.mixingFrom;
|
||||
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);
|
||||
var newFrom = from.mixingFrom;
|
||||
entry.mixingFrom = newFrom;
|
||||
if (newFrom == null)
|
||||
return;
|
||||
entry.mixTime = from.mixTime;
|
||||
entry.mixDuration = from.mixDuration;
|
||||
from = newFrom;
|
||||
return;
|
||||
}
|
||||
from.animationLast = from.nextAnimationLast;
|
||||
from.trackLast = from.nextTrackLast;
|
||||
var mixingFromDelta = delta * from.timeScale;
|
||||
from.trackTime += mixingFromDelta;
|
||||
entry.mixTime += mixingFromDelta;
|
||||
this.updateMixingFrom(from, delta, canEnd && from.alpha == 1);
|
||||
from.trackTime += delta * from.timeScale;
|
||||
entry.mixTime += delta * from.timeScale;
|
||||
};
|
||||
AnimationState.prototype.apply = function (skeleton) {
|
||||
if (skeleton == null)
|
||||
@ -1380,6 +1373,8 @@ var spine;
|
||||
var mix = current.alpha;
|
||||
if (current.mixingFrom != null)
|
||||
mix *= this.applyMixingFrom(current, skeleton);
|
||||
else if (current.trackTime >= current.trackEnd)
|
||||
mix = 0;
|
||||
var animationLast = current.animationLast, animationTime = current.getAnimationTime();
|
||||
var timelineCount = current.animation.timelines.length;
|
||||
var timelines = current.animation.timelines;
|
||||
@ -1591,11 +1586,11 @@ var spine;
|
||||
var current = this.expandToIndex(trackIndex);
|
||||
if (current != null) {
|
||||
if (current.nextTrackLast == -1) {
|
||||
this.tracks[trackIndex] = null;
|
||||
this.tracks[trackIndex] = current.mixingFrom;
|
||||
this.queue.interrupt(current);
|
||||
this.queue.end(current);
|
||||
this.disposeNext(current);
|
||||
current = null;
|
||||
current = current.mixingFrom;
|
||||
}
|
||||
else
|
||||
this.disposeNext(current);
|
||||
|
||||
File diff suppressed because one or more lines are too long
2
spine-ts/build/spine-canvas.d.ts
vendored
2
spine-ts/build/spine-canvas.d.ts
vendored
@ -302,7 +302,7 @@ declare module spine {
|
||||
trackEntryPool: Pool<TrackEntry>;
|
||||
constructor(data: AnimationStateData);
|
||||
update(delta: number): void;
|
||||
updateMixingFrom(entry: TrackEntry, delta: number, canEnd: boolean): void;
|
||||
updateMixingFrom(entry: TrackEntry, delta: number): void;
|
||||
apply(skeleton: Skeleton): void;
|
||||
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;
|
||||
|
||||
@ -1330,10 +1330,8 @@ var spine;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
this.updateMixingFrom(current, delta, true);
|
||||
}
|
||||
else {
|
||||
this.updateMixingFrom(current, delta, true);
|
||||
if (current.trackLast >= current.trackEnd && current.mixingFrom == null) {
|
||||
tracks[i] = null;
|
||||
this.queue.end(current);
|
||||
@ -1341,30 +1339,25 @@ var spine;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
this.updateMixingFrom(current, delta);
|
||||
current.trackTime += currentDelta;
|
||||
}
|
||||
this.queue.drain();
|
||||
};
|
||||
AnimationState.prototype.updateMixingFrom = function (entry, delta, canEnd) {
|
||||
AnimationState.prototype.updateMixingFrom = function (entry, delta) {
|
||||
var from = entry.mixingFrom;
|
||||
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);
|
||||
var newFrom = from.mixingFrom;
|
||||
entry.mixingFrom = newFrom;
|
||||
if (newFrom == null)
|
||||
return;
|
||||
entry.mixTime = from.mixTime;
|
||||
entry.mixDuration = from.mixDuration;
|
||||
from = newFrom;
|
||||
return;
|
||||
}
|
||||
from.animationLast = from.nextAnimationLast;
|
||||
from.trackLast = from.nextTrackLast;
|
||||
var mixingFromDelta = delta * from.timeScale;
|
||||
from.trackTime += mixingFromDelta;
|
||||
entry.mixTime += mixingFromDelta;
|
||||
this.updateMixingFrom(from, delta, canEnd && from.alpha == 1);
|
||||
from.trackTime += delta * from.timeScale;
|
||||
entry.mixTime += delta * from.timeScale;
|
||||
};
|
||||
AnimationState.prototype.apply = function (skeleton) {
|
||||
if (skeleton == null)
|
||||
@ -1380,6 +1373,8 @@ var spine;
|
||||
var mix = current.alpha;
|
||||
if (current.mixingFrom != null)
|
||||
mix *= this.applyMixingFrom(current, skeleton);
|
||||
else if (current.trackTime >= current.trackEnd)
|
||||
mix = 0;
|
||||
var animationLast = current.animationLast, animationTime = current.getAnimationTime();
|
||||
var timelineCount = current.animation.timelines.length;
|
||||
var timelines = current.animation.timelines;
|
||||
@ -1591,11 +1586,11 @@ var spine;
|
||||
var current = this.expandToIndex(trackIndex);
|
||||
if (current != null) {
|
||||
if (current.nextTrackLast == -1) {
|
||||
this.tracks[trackIndex] = null;
|
||||
this.tracks[trackIndex] = current.mixingFrom;
|
||||
this.queue.interrupt(current);
|
||||
this.queue.end(current);
|
||||
this.disposeNext(current);
|
||||
current = null;
|
||||
current = current.mixingFrom;
|
||||
}
|
||||
else
|
||||
this.disposeNext(current);
|
||||
|
||||
File diff suppressed because one or more lines are too long
2
spine-ts/build/spine-core.d.ts
vendored
2
spine-ts/build/spine-core.d.ts
vendored
@ -214,7 +214,7 @@ declare module spine {
|
||||
trackEntryPool: Pool<TrackEntry>;
|
||||
constructor(data: AnimationStateData);
|
||||
update(delta: number): void;
|
||||
updateMixingFrom(entry: TrackEntry, delta: number, canEnd: boolean): void;
|
||||
updateMixingFrom(entry: TrackEntry, delta: number): void;
|
||||
apply(skeleton: Skeleton): void;
|
||||
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;
|
||||
|
||||
@ -983,10 +983,8 @@ var spine;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
this.updateMixingFrom(current, delta, true);
|
||||
}
|
||||
else {
|
||||
this.updateMixingFrom(current, delta, true);
|
||||
if (current.trackLast >= current.trackEnd && current.mixingFrom == null) {
|
||||
tracks[i] = null;
|
||||
this.queue.end(current);
|
||||
@ -994,30 +992,25 @@ var spine;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
this.updateMixingFrom(current, delta);
|
||||
current.trackTime += currentDelta;
|
||||
}
|
||||
this.queue.drain();
|
||||
};
|
||||
AnimationState.prototype.updateMixingFrom = function (entry, delta, canEnd) {
|
||||
AnimationState.prototype.updateMixingFrom = function (entry, delta) {
|
||||
var from = entry.mixingFrom;
|
||||
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);
|
||||
var newFrom = from.mixingFrom;
|
||||
entry.mixingFrom = newFrom;
|
||||
if (newFrom == null)
|
||||
return;
|
||||
entry.mixTime = from.mixTime;
|
||||
entry.mixDuration = from.mixDuration;
|
||||
from = newFrom;
|
||||
return;
|
||||
}
|
||||
from.animationLast = from.nextAnimationLast;
|
||||
from.trackLast = from.nextTrackLast;
|
||||
var mixingFromDelta = delta * from.timeScale;
|
||||
from.trackTime += mixingFromDelta;
|
||||
entry.mixTime += mixingFromDelta;
|
||||
this.updateMixingFrom(from, delta, canEnd && from.alpha == 1);
|
||||
from.trackTime += delta * from.timeScale;
|
||||
entry.mixTime += delta * from.timeScale;
|
||||
};
|
||||
AnimationState.prototype.apply = function (skeleton) {
|
||||
if (skeleton == null)
|
||||
@ -1033,6 +1026,8 @@ var spine;
|
||||
var mix = current.alpha;
|
||||
if (current.mixingFrom != null)
|
||||
mix *= this.applyMixingFrom(current, skeleton);
|
||||
else if (current.trackTime >= current.trackEnd)
|
||||
mix = 0;
|
||||
var animationLast = current.animationLast, animationTime = current.getAnimationTime();
|
||||
var timelineCount = current.animation.timelines.length;
|
||||
var timelines = current.animation.timelines;
|
||||
@ -1244,11 +1239,11 @@ var spine;
|
||||
var current = this.expandToIndex(trackIndex);
|
||||
if (current != null) {
|
||||
if (current.nextTrackLast == -1) {
|
||||
this.tracks[trackIndex] = null;
|
||||
this.tracks[trackIndex] = current.mixingFrom;
|
||||
this.queue.interrupt(current);
|
||||
this.queue.end(current);
|
||||
this.disposeNext(current);
|
||||
current = null;
|
||||
current = current.mixingFrom;
|
||||
}
|
||||
else
|
||||
this.disposeNext(current);
|
||||
|
||||
File diff suppressed because one or more lines are too long
2
spine-ts/build/spine-threejs.d.ts
vendored
2
spine-ts/build/spine-threejs.d.ts
vendored
@ -214,7 +214,7 @@ declare module spine {
|
||||
trackEntryPool: Pool<TrackEntry>;
|
||||
constructor(data: AnimationStateData);
|
||||
update(delta: number): void;
|
||||
updateMixingFrom(entry: TrackEntry, delta: number, canEnd: boolean): void;
|
||||
updateMixingFrom(entry: TrackEntry, delta: number): void;
|
||||
apply(skeleton: Skeleton): void;
|
||||
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;
|
||||
|
||||
@ -983,10 +983,8 @@ var spine;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
this.updateMixingFrom(current, delta, true);
|
||||
}
|
||||
else {
|
||||
this.updateMixingFrom(current, delta, true);
|
||||
if (current.trackLast >= current.trackEnd && current.mixingFrom == null) {
|
||||
tracks[i] = null;
|
||||
this.queue.end(current);
|
||||
@ -994,30 +992,25 @@ var spine;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
this.updateMixingFrom(current, delta);
|
||||
current.trackTime += currentDelta;
|
||||
}
|
||||
this.queue.drain();
|
||||
};
|
||||
AnimationState.prototype.updateMixingFrom = function (entry, delta, canEnd) {
|
||||
AnimationState.prototype.updateMixingFrom = function (entry, delta) {
|
||||
var from = entry.mixingFrom;
|
||||
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);
|
||||
var newFrom = from.mixingFrom;
|
||||
entry.mixingFrom = newFrom;
|
||||
if (newFrom == null)
|
||||
return;
|
||||
entry.mixTime = from.mixTime;
|
||||
entry.mixDuration = from.mixDuration;
|
||||
from = newFrom;
|
||||
return;
|
||||
}
|
||||
from.animationLast = from.nextAnimationLast;
|
||||
from.trackLast = from.nextTrackLast;
|
||||
var mixingFromDelta = delta * from.timeScale;
|
||||
from.trackTime += mixingFromDelta;
|
||||
entry.mixTime += mixingFromDelta;
|
||||
this.updateMixingFrom(from, delta, canEnd && from.alpha == 1);
|
||||
from.trackTime += delta * from.timeScale;
|
||||
entry.mixTime += delta * from.timeScale;
|
||||
};
|
||||
AnimationState.prototype.apply = function (skeleton) {
|
||||
if (skeleton == null)
|
||||
@ -1033,6 +1026,8 @@ var spine;
|
||||
var mix = current.alpha;
|
||||
if (current.mixingFrom != null)
|
||||
mix *= this.applyMixingFrom(current, skeleton);
|
||||
else if (current.trackTime >= current.trackEnd)
|
||||
mix = 0;
|
||||
var animationLast = current.animationLast, animationTime = current.getAnimationTime();
|
||||
var timelineCount = current.animation.timelines.length;
|
||||
var timelines = current.animation.timelines;
|
||||
@ -1244,11 +1239,11 @@ var spine;
|
||||
var current = this.expandToIndex(trackIndex);
|
||||
if (current != null) {
|
||||
if (current.nextTrackLast == -1) {
|
||||
this.tracks[trackIndex] = null;
|
||||
this.tracks[trackIndex] = current.mixingFrom;
|
||||
this.queue.interrupt(current);
|
||||
this.queue.end(current);
|
||||
this.disposeNext(current);
|
||||
current = null;
|
||||
current = current.mixingFrom;
|
||||
}
|
||||
else
|
||||
this.disposeNext(current);
|
||||
|
||||
File diff suppressed because one or more lines are too long
2666
spine-ts/build/spine-webgl.d.ts
vendored
2666
spine-ts/build/spine-webgl.d.ts
vendored
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
2
spine-ts/build/spine-widget.d.ts
vendored
2
spine-ts/build/spine-widget.d.ts
vendored
@ -214,7 +214,7 @@ declare module spine {
|
||||
trackEntryPool: Pool<TrackEntry>;
|
||||
constructor(data: AnimationStateData);
|
||||
update(delta: number): void;
|
||||
updateMixingFrom(entry: TrackEntry, delta: number, canEnd: boolean): void;
|
||||
updateMixingFrom(entry: TrackEntry, delta: number): void;
|
||||
apply(skeleton: Skeleton): void;
|
||||
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;
|
||||
|
||||
@ -983,10 +983,8 @@ var spine;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
this.updateMixingFrom(current, delta, true);
|
||||
}
|
||||
else {
|
||||
this.updateMixingFrom(current, delta, true);
|
||||
if (current.trackLast >= current.trackEnd && current.mixingFrom == null) {
|
||||
tracks[i] = null;
|
||||
this.queue.end(current);
|
||||
@ -994,30 +992,25 @@ var spine;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
this.updateMixingFrom(current, delta);
|
||||
current.trackTime += currentDelta;
|
||||
}
|
||||
this.queue.drain();
|
||||
};
|
||||
AnimationState.prototype.updateMixingFrom = function (entry, delta, canEnd) {
|
||||
AnimationState.prototype.updateMixingFrom = function (entry, delta) {
|
||||
var from = entry.mixingFrom;
|
||||
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);
|
||||
var newFrom = from.mixingFrom;
|
||||
entry.mixingFrom = newFrom;
|
||||
if (newFrom == null)
|
||||
return;
|
||||
entry.mixTime = from.mixTime;
|
||||
entry.mixDuration = from.mixDuration;
|
||||
from = newFrom;
|
||||
return;
|
||||
}
|
||||
from.animationLast = from.nextAnimationLast;
|
||||
from.trackLast = from.nextTrackLast;
|
||||
var mixingFromDelta = delta * from.timeScale;
|
||||
from.trackTime += mixingFromDelta;
|
||||
entry.mixTime += mixingFromDelta;
|
||||
this.updateMixingFrom(from, delta, canEnd && from.alpha == 1);
|
||||
from.trackTime += delta * from.timeScale;
|
||||
entry.mixTime += delta * from.timeScale;
|
||||
};
|
||||
AnimationState.prototype.apply = function (skeleton) {
|
||||
if (skeleton == null)
|
||||
@ -1033,6 +1026,8 @@ var spine;
|
||||
var mix = current.alpha;
|
||||
if (current.mixingFrom != null)
|
||||
mix *= this.applyMixingFrom(current, skeleton);
|
||||
else if (current.trackTime >= current.trackEnd)
|
||||
mix = 0;
|
||||
var animationLast = current.animationLast, animationTime = current.getAnimationTime();
|
||||
var timelineCount = current.animation.timelines.length;
|
||||
var timelines = current.animation.timelines;
|
||||
@ -1244,11 +1239,11 @@ var spine;
|
||||
var current = this.expandToIndex(trackIndex);
|
||||
if (current != null) {
|
||||
if (current.nextTrackLast == -1) {
|
||||
this.tracks[trackIndex] = null;
|
||||
this.tracks[trackIndex] = current.mixingFrom;
|
||||
this.queue.interrupt(current);
|
||||
this.queue.end(current);
|
||||
this.disposeNext(current);
|
||||
current = null;
|
||||
current = current.mixingFrom;
|
||||
}
|
||||
else
|
||||
this.disposeNext(current);
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -80,10 +80,8 @@ module spine {
|
||||
next = next.mixingFrom;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
this.updateMixingFrom(current, delta, true);
|
||||
} else {
|
||||
this.updateMixingFrom(current, delta, true);
|
||||
}
|
||||
} else {
|
||||
// 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) {
|
||||
tracks[i] = null;
|
||||
@ -92,6 +90,7 @@ module spine {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
this.updateMixingFrom(current, delta);
|
||||
|
||||
current.trackTime += currentDelta;
|
||||
}
|
||||
@ -99,27 +98,22 @@ module spine {
|
||||
this.queue.drain();
|
||||
}
|
||||
|
||||
updateMixingFrom (entry: TrackEntry, delta: number, canEnd: boolean) {
|
||||
updateMixingFrom (entry: TrackEntry, delta: number) {
|
||||
let from = entry.mixingFrom;
|
||||
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);
|
||||
let newFrom = from.mixingFrom;
|
||||
entry.mixingFrom = newFrom;
|
||||
if (newFrom == null) return;
|
||||
entry.mixTime = from.mixTime;
|
||||
entry.mixDuration = from.mixDuration;
|
||||
from = newFrom;
|
||||
return;
|
||||
}
|
||||
|
||||
from.animationLast = from.nextAnimationLast;
|
||||
from.trackLast = from.nextTrackLast;
|
||||
let mixingFromDelta = delta * from.timeScale;
|
||||
from.trackTime += mixingFromDelta;
|
||||
entry.mixTime += mixingFromDelta;
|
||||
|
||||
this.updateMixingFrom(from, delta, canEnd && from.alpha == 1);
|
||||
from.trackLast = from.nextTrackLast;
|
||||
from.trackTime += delta * from.timeScale;
|
||||
entry.mixTime += delta * from.timeScale;
|
||||
}
|
||||
|
||||
apply (skeleton: Skeleton) {
|
||||
@ -135,7 +129,10 @@ module spine {
|
||||
|
||||
// Apply mixing from entries first.
|
||||
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.
|
||||
let animationLast = current.animationLast, animationTime = current.getAnimationTime();
|
||||
@ -369,11 +366,11 @@ module spine {
|
||||
if (current != null) {
|
||||
if (current.nextTrackLast == -1) {
|
||||
// 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.end(current);
|
||||
this.disposeNext(current);
|
||||
current = null;
|
||||
current = current.mixingFrom;
|
||||
} else
|
||||
this.disposeNext(current);
|
||||
}
|
||||
|
||||
@ -116,8 +116,17 @@ function loadSkeleton (name, initialAnimation, premultipliedAlpha, skin) {
|
||||
var bounds = calculateBounds(skeleton);
|
||||
|
||||
// Create an AnimationState, and set the initial animation in looping mode.
|
||||
var animationState = new spine.AnimationState(new spine.AnimationStateData(skeleton.data));
|
||||
animationState.setAnimation(0, initialAnimation, true);
|
||||
animationStateData = new spine.AnimationStateData(skeleton.data);
|
||||
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({
|
||||
start: function(track) {
|
||||
console.log("Animation on track " + track.trackIndex + " started");
|
||||
|
||||
@ -13,7 +13,7 @@ SceneSettings:
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 6
|
||||
serializedVersion: 7
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
@ -37,12 +37,12 @@ RenderSettings:
|
||||
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: 6
|
||||
serializedVersion: 7
|
||||
m_GIWorkflowMode: 1
|
||||
m_LightmapsMode: 1
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
@ -53,17 +53,22 @@ LightmapSettings:
|
||||
m_EnableBakedLightmaps: 0
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 3
|
||||
serializedVersion: 4
|
||||
m_Resolution: 2
|
||||
m_BakeResolution: 40
|
||||
m_TextureWidth: 1024
|
||||
m_TextureHeight: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_Padding: 2
|
||||
m_CompAOExponent: 0
|
||||
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: 1024
|
||||
m_ReflectionCompression: 2
|
||||
m_LightingDataAsset: {fileID: 0}
|
||||
@ -111,6 +116,7 @@ RectTransform:
|
||||
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: 189134935}
|
||||
m_Father: {fileID: 289700665}
|
||||
@ -145,6 +151,7 @@ MonoBehaviour:
|
||||
startingLoop: 1
|
||||
timeScale: 1
|
||||
freeze: 0
|
||||
unscaledTime: 0
|
||||
--- !u!222 &57002146
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -177,6 +184,7 @@ RectTransform:
|
||||
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: 57002144}
|
||||
m_RootOrder: 0
|
||||
@ -307,6 +315,7 @@ RectTransform:
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0, y: 0, z: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_Children:
|
||||
- {fileID: 941001663}
|
||||
- {fileID: 774800194}
|
||||
@ -341,6 +350,7 @@ RectTransform:
|
||||
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: 57002144}
|
||||
- {fileID: 1384013133}
|
||||
@ -348,7 +358,7 @@ RectTransform:
|
||||
m_RootOrder: 0
|
||||
m_AnchorMin: {x: 0, 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_Pivot: {x: 0, y: 1}
|
||||
--- !u!1 &611702901
|
||||
@ -434,6 +444,7 @@ Transform:
|
||||
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
|
||||
@ -463,6 +474,7 @@ RectTransform:
|
||||
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: 249902688}
|
||||
m_RootOrder: 1
|
||||
@ -541,6 +553,7 @@ RectTransform:
|
||||
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: 1351078838}
|
||||
m_Father: {fileID: 941001663}
|
||||
@ -588,7 +601,7 @@ MonoBehaviour:
|
||||
m_TargetGraphic: {fileID: 1918252544}
|
||||
m_HandleRect: {fileID: 1918252543}
|
||||
m_Direction: 0
|
||||
m_Value: 1
|
||||
m_Value: 0
|
||||
m_Size: 1
|
||||
m_NumberOfSteps: 0
|
||||
m_OnValueChanged:
|
||||
@ -656,6 +669,7 @@ RectTransform:
|
||||
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: 2133858527}
|
||||
- {fileID: 852403708}
|
||||
@ -757,6 +771,7 @@ RectTransform:
|
||||
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: 1384013133}
|
||||
m_RootOrder: 0
|
||||
@ -828,6 +843,7 @@ RectTransform:
|
||||
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: 1918252543}
|
||||
m_Father: {fileID: 852403708}
|
||||
@ -863,6 +879,7 @@ RectTransform:
|
||||
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: 1066372096}
|
||||
m_Father: {fileID: 289700665}
|
||||
@ -897,6 +914,7 @@ MonoBehaviour:
|
||||
startingLoop: 1
|
||||
timeScale: 1
|
||||
freeze: 0
|
||||
unscaledTime: 0
|
||||
--- !u!222 &1384013135
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -930,6 +948,7 @@ RectTransform:
|
||||
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: 1582800778}
|
||||
m_Father: {fileID: 941001663}
|
||||
@ -977,8 +996,8 @@ MonoBehaviour:
|
||||
m_TargetGraphic: {fileID: 2091633436}
|
||||
m_HandleRect: {fileID: 2091633435}
|
||||
m_Direction: 2
|
||||
m_Value: 0
|
||||
m_Size: 1
|
||||
m_Value: 1
|
||||
m_Size: 0.2719017
|
||||
m_NumberOfSteps: 0
|
||||
m_OnValueChanged:
|
||||
m_PersistentCalls:
|
||||
@ -1042,6 +1061,7 @@ RectTransform:
|
||||
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: 2091633435}
|
||||
m_Father: {fileID: 1428602577}
|
||||
@ -1109,6 +1129,7 @@ Transform:
|
||||
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: 0}
|
||||
m_RootOrder: 2
|
||||
@ -1138,6 +1159,7 @@ RectTransform:
|
||||
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: 1351078838}
|
||||
m_RootOrder: 0
|
||||
@ -1205,6 +1227,7 @@ RectTransform:
|
||||
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: 1582800778}
|
||||
m_RootOrder: 0
|
||||
@ -1273,6 +1296,7 @@ RectTransform:
|
||||
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: 289700665}
|
||||
m_Father: {fileID: 941001663}
|
||||
|
||||
@ -31,188 +31,174 @@
|
||||
// Contributed by: Mitch Thompson
|
||||
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using Spine.Unity;
|
||||
|
||||
[RequireComponent(typeof(CharacterController))]
|
||||
public class BasicPlatformerController : MonoBehaviour {
|
||||
namespace Spine.Unity.Examples {
|
||||
[RequireComponent(typeof(CharacterController))]
|
||||
public class BasicPlatformerController : MonoBehaviour {
|
||||
|
||||
#if UNITY_4_5
|
||||
[Header("Controls")]
|
||||
#endif
|
||||
public string XAxis = "Horizontal";
|
||||
public string YAxis = "Vertical";
|
||||
public string JumpButton = "Jump";
|
||||
[Header("Controls")]
|
||||
public string XAxis = "Horizontal";
|
||||
public string YAxis = "Vertical";
|
||||
public string JumpButton = "Jump";
|
||||
|
||||
#if UNITY_4_5
|
||||
[Header("Moving")]
|
||||
#endif
|
||||
public float walkSpeed = 4;
|
||||
public float runSpeed = 10;
|
||||
public float gravity = 65;
|
||||
[Header("Moving")]
|
||||
public float walkSpeed = 4;
|
||||
public float runSpeed = 10;
|
||||
public float gravity = 65;
|
||||
|
||||
#if UNITY_4_5
|
||||
[Header("Jumping")]
|
||||
#endif
|
||||
public float jumpSpeed = 25;
|
||||
public float jumpDuration = 0.5f;
|
||||
public float jumpInterruptFactor = 100;
|
||||
public float forceCrouchVelocity = 25;
|
||||
public float forceCrouchDuration = 0.5f;
|
||||
[Header("Jumping")]
|
||||
public float jumpSpeed = 25;
|
||||
public float jumpDuration = 0.5f;
|
||||
public float jumpInterruptFactor = 100;
|
||||
public float forceCrouchVelocity = 25;
|
||||
public float forceCrouchDuration = 0.5f;
|
||||
|
||||
#if UNITY_4_5
|
||||
[Header("Graphics")]
|
||||
#endif
|
||||
public Transform graphicsRoot;
|
||||
public SkeletonAnimation skeletonAnimation;
|
||||
[Header("Graphics")]
|
||||
public Transform graphicsRoot;
|
||||
public SkeletonAnimation skeletonAnimation;
|
||||
|
||||
#if UNITY_4_5
|
||||
[Header("Animation")]
|
||||
#endif
|
||||
[SpineAnimation(dataField: "skeletonAnimation")]
|
||||
public string walkName = "Walk";
|
||||
[SpineAnimation(dataField: "skeletonAnimation")]
|
||||
public string runName = "Run";
|
||||
[SpineAnimation(dataField: "skeletonAnimation")]
|
||||
public string idleName = "Idle";
|
||||
[SpineAnimation(dataField: "skeletonAnimation")]
|
||||
public string jumpName = "Jump";
|
||||
[SpineAnimation(dataField: "skeletonAnimation")]
|
||||
public string fallName = "Fall";
|
||||
[SpineAnimation(dataField: "skeletonAnimation")]
|
||||
public string crouchName = "Crouch";
|
||||
[Header("Animation")]
|
||||
[SpineAnimation(dataField: "skeletonAnimation")]
|
||||
public string walkName = "Walk";
|
||||
[SpineAnimation(dataField: "skeletonAnimation")]
|
||||
public string runName = "Run";
|
||||
[SpineAnimation(dataField: "skeletonAnimation")]
|
||||
public string idleName = "Idle";
|
||||
[SpineAnimation(dataField: "skeletonAnimation")]
|
||||
public string jumpName = "Jump";
|
||||
[SpineAnimation(dataField: "skeletonAnimation")]
|
||||
public string fallName = "Fall";
|
||||
[SpineAnimation(dataField: "skeletonAnimation")]
|
||||
public string crouchName = "Crouch";
|
||||
|
||||
#if UNITY_4_5
|
||||
[Header("Audio")]
|
||||
#endif
|
||||
public AudioSource jumpAudioSource;
|
||||
public AudioSource hardfallAudioSource;
|
||||
public AudioSource footstepAudioSource;
|
||||
[SpineEvent]
|
||||
public string footstepEventName = "Footstep";
|
||||
CharacterController controller;
|
||||
Vector2 velocity = Vector2.zero;
|
||||
Vector2 lastVelocity = Vector2.zero;
|
||||
bool lastGrounded = false;
|
||||
float jumpEndTime = 0;
|
||||
bool jumpInterrupt = false;
|
||||
float forceCrouchEndTime;
|
||||
Quaternion flippedRotation = Quaternion.Euler(0, 180, 0);
|
||||
[Header("Audio")]
|
||||
public AudioSource jumpAudioSource;
|
||||
public AudioSource hardfallAudioSource;
|
||||
public AudioSource footstepAudioSource;
|
||||
[SpineEvent]
|
||||
public string footstepEventName = "Footstep";
|
||||
CharacterController controller;
|
||||
Vector2 velocity = Vector2.zero;
|
||||
Vector2 lastVelocity = Vector2.zero;
|
||||
bool lastGrounded = false;
|
||||
float jumpEndTime = 0;
|
||||
bool jumpInterrupt = false;
|
||||
float forceCrouchEndTime;
|
||||
Quaternion flippedRotation = Quaternion.Euler(0, 180, 0);
|
||||
|
||||
void Awake () {
|
||||
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;
|
||||
}
|
||||
}
|
||||
void Awake () {
|
||||
controller = GetComponent<CharacterController>();
|
||||
}
|
||||
|
||||
//apply gravity F = mA (Learn it, love it, live it)
|
||||
velocity.y -= gravity * Time.deltaTime;
|
||||
|
||||
//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 Start () {
|
||||
// Register a callback for Spine Events (in this case, Footstep)
|
||||
skeletonAnimation.state.Event += HandleEvent;
|
||||
}
|
||||
|
||||
|
||||
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
|
||||
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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//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;
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
} 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)
|
||||
//apply gravity F = mA (Learn it, love it, live it)
|
||||
velocity.y -= gravity * Time.deltaTime;
|
||||
|
||||
//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;
|
||||
|
||||
|
||||
//store previous state
|
||||
lastVelocity = velocity;
|
||||
lastGrounded = controller.isGrounded;
|
||||
//store previous state
|
||||
lastVelocity = velocity;
|
||||
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
|
||||
}
|
||||
}
|
||||
@ -31,22 +31,23 @@
|
||||
// Contributed by: Mitch Thompson
|
||||
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
|
||||
public class ConstrainedCamera : MonoBehaviour {
|
||||
public Transform target;
|
||||
public Vector3 offset;
|
||||
public Vector3 min;
|
||||
public Vector3 max;
|
||||
public float smoothing = 5f;
|
||||
namespace Spine.Unity.Examples {
|
||||
public class ConstrainedCamera : MonoBehaviour {
|
||||
public Transform target;
|
||||
public Vector3 offset;
|
||||
public Vector3 min;
|
||||
public Vector3 max;
|
||||
public float smoothing = 5f;
|
||||
|
||||
// Update is called once per frame
|
||||
void LateUpdate () {
|
||||
Vector3 goalPoint = target.position + offset;
|
||||
goalPoint.x = Mathf.Clamp(goalPoint.x, min.x, max.x);
|
||||
goalPoint.y = Mathf.Clamp(goalPoint.y, min.y, max.y);
|
||||
goalPoint.z = Mathf.Clamp(goalPoint.z, min.z, max.z);
|
||||
// Update is called once per frame
|
||||
void LateUpdate () {
|
||||
Vector3 goalPoint = target.position + offset;
|
||||
goalPoint.x = Mathf.Clamp(goalPoint.x, min.x, max.x);
|
||||
goalPoint.y = Mathf.Clamp(goalPoint.y, min.y, max.y);
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -32,54 +32,54 @@ using UnityEngine;
|
||||
using System.Collections;
|
||||
using Spine.Unity;
|
||||
|
||||
public class Raptor : MonoBehaviour {
|
||||
namespace Spine.Unity.Examples {
|
||||
public class Raptor : MonoBehaviour {
|
||||
|
||||
#region Inspector
|
||||
[SpineAnimation]
|
||||
public string walk = "walk";
|
||||
#region Inspector
|
||||
[SpineAnimation]
|
||||
public string walk = "walk";
|
||||
|
||||
[SpineAnimation]
|
||||
public string gungrab = "gungrab";
|
||||
[SpineAnimation]
|
||||
public string gungrab = "gungrab";
|
||||
|
||||
[SpineAnimation]
|
||||
public string gunkeep = "gunkeep";
|
||||
[SpineAnimation]
|
||||
public string gunkeep = "gunkeep";
|
||||
|
||||
[SpineEvent]
|
||||
public string footstepEvent = "footstep";
|
||||
[SpineEvent]
|
||||
public string footstepEvent = "footstep";
|
||||
|
||||
public AudioSource footstepAudioSource;
|
||||
#endregion
|
||||
public AudioSource footstepAudioSource;
|
||||
#endregion
|
||||
|
||||
SkeletonAnimation skeletonAnimation;
|
||||
SkeletonAnimation skeletonAnimation;
|
||||
|
||||
void Start () {
|
||||
skeletonAnimation = GetComponent<SkeletonAnimation>();
|
||||
skeletonAnimation.state.Event += HandleEvent;
|
||||
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();
|
||||
void Start () {
|
||||
skeletonAnimation = GetComponent<SkeletonAnimation>();
|
||||
skeletonAnimation.state.Event += HandleEvent;
|
||||
StartCoroutine(GunGrabRoutine());
|
||||
}
|
||||
}
|
||||
|
||||
IEnumerator GunGrabRoutine () {
|
||||
// Play the walk animation on track 0.
|
||||
skeletonAnimation.state.SetAnimation(0, walk, true);
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
// Repeatedly play the gungrab and gunkeep animation on track 1.
|
||||
while (true) {
|
||||
|
||||
yield return new WaitForSeconds(Random.Range(0.5f, 3f));
|
||||
skeletonAnimation.state.SetAnimation(1, gungrab, false);
|
||||
IEnumerator GunGrabRoutine () {
|
||||
// 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, gunkeep, false);
|
||||
// Repeatedly play the gungrab and gunkeep animation on track 1.
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -32,61 +32,64 @@ using UnityEngine;
|
||||
using System.Collections;
|
||||
using Spine.Unity;
|
||||
|
||||
public class SpineBeginnerTwo : MonoBehaviour {
|
||||
namespace Spine.Unity.Examples {
|
||||
public class SpineBeginnerTwo : MonoBehaviour {
|
||||
|
||||
#region Inspector
|
||||
// [SpineAnimation] attribute allows an Inspector dropdown of Spine animation names coming form SkeletonAnimation.
|
||||
[SpineAnimation]
|
||||
public string runAnimationName;
|
||||
#region Inspector
|
||||
// [SpineAnimation] attribute allows an Inspector dropdown of Spine animation names coming form SkeletonAnimation.
|
||||
[SpineAnimation]
|
||||
public string runAnimationName;
|
||||
|
||||
[SpineAnimation]
|
||||
public string idleAnimationName;
|
||||
[SpineAnimation]
|
||||
public string idleAnimationName;
|
||||
|
||||
[SpineAnimation]
|
||||
public string walkAnimationName;
|
||||
[SpineAnimation]
|
||||
public string walkAnimationName;
|
||||
|
||||
[SpineAnimation]
|
||||
public string shootAnimationName;
|
||||
#endregion
|
||||
[SpineAnimation]
|
||||
public string shootAnimationName;
|
||||
#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.
|
||||
public Spine.AnimationState spineAnimationState;
|
||||
public Spine.Skeleton skeleton;
|
||||
// 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.Skeleton skeleton;
|
||||
|
||||
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.
|
||||
skeletonAnimation = GetComponent<SkeletonAnimation>();
|
||||
spineAnimationState = skeletonAnimation.state;
|
||||
skeleton = skeletonAnimation.skeleton;
|
||||
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.
|
||||
skeletonAnimation = GetComponent<SkeletonAnimation>();
|
||||
spineAnimationState = skeletonAnimation.state;
|
||||
skeleton = skeletonAnimation.skeleton;
|
||||
|
||||
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.
|
||||
StartCoroutine(DoDemoRoutine());
|
||||
}
|
||||
|
||||
spineAnimationState.SetAnimation(0, walkAnimationName, true);
|
||||
yield return new WaitForSeconds(1.5f);
|
||||
/// <summary>This is an infinitely repeating Unity Coroutine. Read the Unity documentation on Coroutines to learn more.</summary>
|
||||
IEnumerator DoDemoRoutine () {
|
||||
|
||||
// skeletonAnimation.AnimationName = runAnimationName; // this line also works for quick testing/simple uses.
|
||||
spineAnimationState.SetAnimation(0, runAnimationName, true);
|
||||
yield return new WaitForSeconds(1.5f);
|
||||
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, idleAnimationName, true);
|
||||
yield return new WaitForSeconds(1f);
|
||||
spineAnimationState.SetAnimation(0, walkAnimationName, true);
|
||||
yield return new WaitForSeconds(1.5f);
|
||||
|
||||
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);
|
||||
// skeletonAnimation.AnimationName = runAnimationName; // this line also works for quick testing/simple uses.
|
||||
spineAnimationState.SetAnimation(0, runAnimationName, true);
|
||||
yield return new WaitForSeconds(1.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);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -32,20 +32,22 @@ using UnityEngine;
|
||||
using System.Collections;
|
||||
using Spine.Unity;
|
||||
|
||||
public class SpineBlinkPlayer : MonoBehaviour {
|
||||
const int BlinkTrack = 1;
|
||||
namespace Spine.Unity.Examples {
|
||||
public class SpineBlinkPlayer : MonoBehaviour {
|
||||
const int BlinkTrack = 1;
|
||||
|
||||
[SpineAnimation]
|
||||
public string blinkAnimation;
|
||||
public float minimumDelay = 0.15f;
|
||||
public float maximumDelay = 3f;
|
||||
[SpineAnimation]
|
||||
public string blinkAnimation;
|
||||
public float minimumDelay = 0.15f;
|
||||
public float maximumDelay = 3f;
|
||||
|
||||
IEnumerator Start () {
|
||||
var skeletonAnimation = GetComponent<SkeletonAnimation>(); if (skeletonAnimation == null) yield break;
|
||||
while (true) {
|
||||
skeletonAnimation.state.SetAnimation(SpineBlinkPlayer.BlinkTrack, blinkAnimation, false);
|
||||
yield return new WaitForSeconds(Random.Range(minimumDelay, maximumDelay));
|
||||
IEnumerator Start () {
|
||||
var skeletonAnimation = GetComponent<SkeletonAnimation>(); if (skeletonAnimation == null) yield break;
|
||||
while (true) {
|
||||
skeletonAnimation.state.SetAnimation(SpineBlinkPlayer.BlinkTrack, blinkAnimation, false);
|
||||
yield return new WaitForSeconds(Random.Range(minimumDelay, maximumDelay));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -31,34 +31,33 @@
|
||||
using UnityEngine;
|
||||
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 string horizontalAxis = "Horizontal";
|
||||
public string attackButton = "Fire1";
|
||||
public string jumpButton = "Jump";
|
||||
public SpineboyBeginnerModel model;
|
||||
|
||||
public SpineboyBeginnerModel model;
|
||||
void OnValidate () {
|
||||
if (model == null)
|
||||
model = GetComponent<SpineboyBeginnerModel>();
|
||||
}
|
||||
#endregion
|
||||
|
||||
void OnValidate () {
|
||||
if (model == null)
|
||||
model = GetComponent<SpineboyBeginnerModel>();
|
||||
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();
|
||||
}
|
||||
}
|
||||
#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();
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -31,83 +31,85 @@
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
|
||||
[SelectionBase]
|
||||
public class SpineboyBeginnerModel : MonoBehaviour {
|
||||
namespace Spine.Unity.Examples {
|
||||
[SelectionBase]
|
||||
public class SpineboyBeginnerModel : MonoBehaviour {
|
||||
|
||||
#region Inspector
|
||||
[Header("Current State")]
|
||||
public SpineBeginnerBodyState state;
|
||||
public bool facingLeft;
|
||||
[Range(-1f, 1f)]
|
||||
public float currentSpeed;
|
||||
#region Inspector
|
||||
[Header("Current State")]
|
||||
public SpineBeginnerBodyState state;
|
||||
public bool facingLeft;
|
||||
[Range(-1f, 1f)]
|
||||
public float currentSpeed;
|
||||
|
||||
[Header("Balance")]
|
||||
public float shootInterval = 0.12f;
|
||||
#endregion
|
||||
[Header("Balance")]
|
||||
public float shootInterval = 0.12f;
|
||||
#endregion
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
#region API
|
||||
public void TryJump () {
|
||||
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;
|
||||
#region API
|
||||
public void TryJump () {
|
||||
StartCoroutine(JumpRoutine());
|
||||
}
|
||||
|
||||
}
|
||||
#endregion
|
||||
public void TryShoot () {
|
||||
float currentTime = Time.time;
|
||||
|
||||
IEnumerator JumpRoutine () {
|
||||
if (state == SpineBeginnerBodyState.Jumping) yield break; // Don't jump when already jumping.
|
||||
|
||||
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;
|
||||
if (currentTime - lastShootTime > shootInterval) {
|
||||
lastShootTime = currentTime;
|
||||
if (ShootEvent != null) ShootEvent(); // Fire the "ShootEvent" event.
|
||||
}
|
||||
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,
|
||||
Running,
|
||||
Jumping
|
||||
public enum SpineBeginnerBodyState {
|
||||
Idle,
|
||||
Running,
|
||||
Jumping
|
||||
}
|
||||
}
|
||||
|
||||
@ -32,113 +32,115 @@ using UnityEngine;
|
||||
using System.Collections;
|
||||
using Spine.Unity;
|
||||
|
||||
public class SpineboyBeginnerView : MonoBehaviour {
|
||||
|
||||
#region Inspector
|
||||
[Header("Components")]
|
||||
public SpineboyBeginnerModel model;
|
||||
public SkeletonAnimation skeletonAnimation;
|
||||
//public ParticleSystem gunParticles;
|
||||
namespace Spine.Unity.Examples {
|
||||
public class SpineboyBeginnerView : MonoBehaviour {
|
||||
|
||||
[SpineAnimation] public string run, idle, shoot, jump;
|
||||
[SpineEvent] public string footstepEventName;
|
||||
#region Inspector
|
||||
[Header("Components")]
|
||||
public SpineboyBeginnerModel model;
|
||||
public SkeletonAnimation skeletonAnimation;
|
||||
|
||||
[Header("Audio")]
|
||||
public float footstepPitchOffset = 0.2f;
|
||||
public float gunsoundPitchOffset = 0.13f;
|
||||
public AudioSource footstepSource, gunSource, jumpSource;
|
||||
[SpineAnimation] public string run, idle, shoot, jump;
|
||||
[SpineEvent] public string footstepEventName;
|
||||
|
||||
[Header("Effects")]
|
||||
public ParticleSystem gunParticles;
|
||||
#endregion
|
||||
[Header("Audio")]
|
||||
public float footstepPitchOffset = 0.2f;
|
||||
public float gunsoundPitchOffset = 0.13f;
|
||||
public AudioSource footstepSource, gunSource, jumpSource;
|
||||
|
||||
SpineBeginnerBodyState previousViewState;
|
||||
[Header("Effects")]
|
||||
public ParticleSystem gunParticles;
|
||||
#endregion
|
||||
|
||||
void Start () {
|
||||
if (skeletonAnimation == null) return;
|
||||
model.ShootEvent += PlayShoot;
|
||||
skeletonAnimation.state.Event += HandleEvent;
|
||||
}
|
||||
SpineBeginnerBodyState previousViewState;
|
||||
|
||||
void HandleEvent (Spine.TrackEntry trackEntry, Spine.Event e) {
|
||||
if (e.Data.Name == footstepEventName)
|
||||
PlayFootstepSound();
|
||||
}
|
||||
|
||||
void Update () {
|
||||
if (skeletonAnimation == null) return;
|
||||
if (model == null) return;
|
||||
|
||||
if (skeletonAnimation.skeleton.FlipX != model.facingLeft) { // Detect changes in model.facingLeft
|
||||
Turn(model.facingLeft);
|
||||
void Start () {
|
||||
if (skeletonAnimation == null) return;
|
||||
model.ShootEvent += PlayShoot;
|
||||
skeletonAnimation.state.Event += HandleEvent;
|
||||
}
|
||||
|
||||
// Detect changes in model.state
|
||||
var currentModelState = model.state;
|
||||
|
||||
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();
|
||||
void HandleEvent (Spine.TrackEntry trackEntry, Spine.Event e) {
|
||||
if (e.Data.Name == footstepEventName)
|
||||
PlayFootstepSound();
|
||||
}
|
||||
|
||||
if (newModelState == SpineBeginnerBodyState.Jumping) {
|
||||
jumpSource.Play();
|
||||
nextAnimation = jump;
|
||||
} else {
|
||||
if (newModelState == SpineBeginnerBodyState.Running) {
|
||||
nextAnimation = run;
|
||||
} else {
|
||||
nextAnimation = idle;
|
||||
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
|
||||
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
|
||||
}
|
||||
|
||||
@ -13,7 +13,7 @@ SceneSettings:
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 6
|
||||
serializedVersion: 7
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
@ -37,12 +37,12 @@ RenderSettings:
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
--- !u!157 &4
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 6
|
||||
serializedVersion: 7
|
||||
m_GIWorkflowMode: 1
|
||||
m_LightmapsMode: 1
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
@ -53,17 +53,22 @@ LightmapSettings:
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 3
|
||||
serializedVersion: 4
|
||||
m_Resolution: 1
|
||||
m_BakeResolution: 50
|
||||
m_TextureWidth: 1024
|
||||
m_TextureHeight: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_Padding: 2
|
||||
m_CompAOExponent: 0
|
||||
m_CompAOExponentDirect: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 0
|
||||
m_DirectLightInLightProbes: 1
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherFiltering: 1
|
||||
m_FinalGatherRayCount: 1024
|
||||
m_ReflectionCompression: 2
|
||||
m_LightingDataAsset: {fileID: 0}
|
||||
@ -168,6 +173,7 @@ Transform:
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 1, 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
|
||||
@ -248,9 +254,9 @@ MonoBehaviour:
|
||||
renderMeshes: 1
|
||||
immutableTriangles: 0
|
||||
pmaVertexColors: 1
|
||||
clearStateOnDisable: 0
|
||||
calculateNormals: 0
|
||||
calculateTangents: 0
|
||||
frontFacing: 0
|
||||
logErrors: 0
|
||||
disableRenderingOnOverride: 1
|
||||
_animationName:
|
||||
@ -265,17 +271,20 @@ MeshRenderer:
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 5a3598dafa118754db95756064347da7, type: 2}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
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
|
||||
@ -298,6 +307,7 @@ Transform:
|
||||
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: 0}
|
||||
m_RootOrder: 1
|
||||
|
||||
@ -13,7 +13,7 @@ SceneSettings:
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 6
|
||||
serializedVersion: 7
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
@ -37,12 +37,12 @@ RenderSettings:
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
--- !u!157 &4
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 6
|
||||
serializedVersion: 7
|
||||
m_GIWorkflowMode: 1
|
||||
m_LightmapsMode: 1
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
@ -53,17 +53,22 @@ LightmapSettings:
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 3
|
||||
serializedVersion: 4
|
||||
m_Resolution: 1
|
||||
m_BakeResolution: 50
|
||||
m_TextureWidth: 1024
|
||||
m_TextureHeight: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_Padding: 2
|
||||
m_CompAOExponent: 0
|
||||
m_CompAOExponentDirect: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 0
|
||||
m_DirectLightInLightProbes: 1
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherFiltering: 1
|
||||
m_FinalGatherRayCount: 1024
|
||||
m_ReflectionCompression: 2
|
||||
m_LightingDataAsset: {fileID: 0}
|
||||
@ -108,7 +113,7 @@ Light:
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 133751936}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 6
|
||||
serializedVersion: 7
|
||||
m_Type: 1
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_Intensity: 1.1
|
||||
@ -116,8 +121,9 @@ Light:
|
||||
m_SpotAngle: 30
|
||||
m_CookieSize: 10
|
||||
m_Shadows:
|
||||
m_Type: 1
|
||||
m_Type: 2
|
||||
m_Resolution: -1
|
||||
m_CustomResolution: -1
|
||||
m_Strength: 1
|
||||
m_Bias: 0.05
|
||||
m_NormalBias: 0.4
|
||||
@ -130,10 +136,10 @@ Light:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_Lightmapping: 1
|
||||
m_AreaSize: {x: 1, y: 1}
|
||||
m_BounceIntensity: 1
|
||||
m_ShadowRadius: 0
|
||||
m_ShadowAngle: 0
|
||||
m_AreaSize: {x: 1, y: 1}
|
||||
--- !u!4 &133751938
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -147,53 +153,6 @@ Transform:
|
||||
m_Children: []
|
||||
m_Father: {fileID: 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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -220,17 +179,20 @@ MeshRenderer:
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
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
|
||||
@ -348,7 +310,7 @@ Transform:
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 100000, guid: d51ed5943e10bcb4394b5eec480293f8, type: 2}
|
||||
m_PrefabInternal: {fileID: 244083694}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
serializedVersion: 4
|
||||
m_Component:
|
||||
- 4: {fileID: 2143290134}
|
||||
@ -367,7 +329,7 @@ MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 11400000, guid: d51ed5943e10bcb4394b5eec480293f8,
|
||||
type: 2}
|
||||
m_PrefabInternal: {fileID: 244083694}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 2143290130}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
@ -381,6 +343,7 @@ MonoBehaviour:
|
||||
renderMeshes: 1
|
||||
immutableTriangles: 0
|
||||
pmaVertexColors: 1
|
||||
clearStateOnDisable: 0
|
||||
calculateNormals: 1
|
||||
calculateTangents: 0
|
||||
logErrors: 0
|
||||
@ -393,11 +356,14 @@ MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 2300000, guid: d51ed5943e10bcb4394b5eec480293f8,
|
||||
type: 2}
|
||||
m_PrefabInternal: {fileID: 244083694}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 2143290130}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: d58543c96f991934ca874395eb40222c, type: 2}
|
||||
- {fileID: 2100000, guid: 3277fd5561d95724e83c6ca4a1dd28a4, type: 2}
|
||||
@ -413,13 +379,13 @@ MeshRenderer:
|
||||
- {fileID: 2100000, guid: 3277fd5561d95724e83c6ca4a1dd28a4, type: 2}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
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
|
||||
@ -431,14 +397,14 @@ MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 3300000, guid: d51ed5943e10bcb4394b5eec480293f8,
|
||||
type: 2}
|
||||
m_PrefabInternal: {fileID: 244083694}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 2143290130}
|
||||
m_Mesh: {fileID: 0}
|
||||
--- !u!4 &2143290134
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 400000, guid: d51ed5943e10bcb4394b5eec480293f8, type: 2}
|
||||
m_PrefabInternal: {fileID: 244083694}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 2143290130}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c5673b83016f67a4c99772dfb7b3c437
|
||||
guid: 9b55bcfc2181c68418e59ee61ef5afc9
|
||||
timeCreated: 1480087951
|
||||
licenseType: Free
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
||||
@ -13,7 +13,7 @@ SceneSettings:
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 6
|
||||
serializedVersion: 7
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
@ -37,12 +37,12 @@ RenderSettings:
|
||||
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: 6
|
||||
serializedVersion: 7
|
||||
m_GIWorkflowMode: 1
|
||||
m_LightmapsMode: 1
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
@ -53,17 +53,22 @@ LightmapSettings:
|
||||
m_EnableBakedLightmaps: 0
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 3
|
||||
serializedVersion: 4
|
||||
m_Resolution: 2
|
||||
m_BakeResolution: 40
|
||||
m_TextureWidth: 1024
|
||||
m_TextureHeight: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_Padding: 2
|
||||
m_CompAOExponent: 0
|
||||
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: 1024
|
||||
m_ReflectionCompression: 2
|
||||
m_LightingDataAsset: {fileID: 0}
|
||||
@ -168,6 +173,7 @@ RectTransform:
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.02, y: 0.02, z: 0.1}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_Children:
|
||||
- {fileID: 2142418131}
|
||||
m_Father: {fileID: 0}
|
||||
@ -232,9 +238,9 @@ MonoBehaviour:
|
||||
renderMeshes: 1
|
||||
immutableTriangles: 0
|
||||
pmaVertexColors: 1
|
||||
clearStateOnDisable: 0
|
||||
calculateNormals: 0
|
||||
calculateTangents: 0
|
||||
frontFacing: 0
|
||||
logErrors: 0
|
||||
disableRenderingOnOverride: 1
|
||||
_animationName: run
|
||||
@ -249,18 +255,21 @@ MeshRenderer:
|
||||
m_Enabled: 0
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 0}
|
||||
- {fileID: 2100000, guid: 4083cd422558e2540a62bbafb94f57b5, type: 2}
|
||||
- {fileID: 2100000, guid: 1455e88fdb81ccc45bdeaedd657bad4d, type: 2}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
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
|
||||
@ -283,6 +292,7 @@ Transform:
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 6.75, y: -0.08, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_Children:
|
||||
- {fileID: 1769987563}
|
||||
- {fileID: 1619823304}
|
||||
@ -327,17 +337,20 @@ MeshRenderer:
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 4083cd422558e2540a62bbafb94f57b5, type: 2}
|
||||
- {fileID: 2100000, guid: 1455e88fdb81ccc45bdeaedd657bad4d, type: 2}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
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
|
||||
@ -360,6 +373,7 @@ Transform:
|
||||
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: 1918225119}
|
||||
m_RootOrder: 0
|
||||
@ -390,6 +404,7 @@ Transform:
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -1.3629907, y: 3.7230203, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 93048079}
|
||||
m_RootOrder: 2
|
||||
@ -402,17 +417,20 @@ ParticleSystemRenderer:
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 0
|
||||
m_Materials:
|
||||
- {fileID: 10754, guid: 0000000000000000e000000000000000, type: 0}
|
||||
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 1
|
||||
m_ReflectionProbeUsage: 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
|
||||
@ -449,14 +467,15 @@ MonoBehaviour:
|
||||
boneName: front_fist
|
||||
followZPosition: 0
|
||||
followBoneRotation: 0
|
||||
resetOnAwake: 1
|
||||
followSkeletonFlip: 0
|
||||
initializeOnAwake: 1
|
||||
--- !u!198 &565117365
|
||||
ParticleSystem:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 565117361}
|
||||
serializedVersion: 2
|
||||
serializedVersion: 4
|
||||
lengthInSec: 5
|
||||
startDelay:
|
||||
scalar: 0
|
||||
@ -494,12 +513,13 @@ ParticleSystem:
|
||||
m_RotationOrder: 4
|
||||
minMaxState: 0
|
||||
speed: 1
|
||||
randomSeed: 0
|
||||
looping: 1
|
||||
prewarm: 0
|
||||
playOnAwake: 1
|
||||
moveWithTransform: 0
|
||||
autoRandomSeed: 1
|
||||
scalingMode: 1
|
||||
randomSeed: 0
|
||||
InitialModule:
|
||||
serializedVersion: 2
|
||||
enabled: 1
|
||||
@ -574,6 +594,7 @@ ParticleSystem:
|
||||
m_RotationOrder: 4
|
||||
minMaxState: 0
|
||||
startColor:
|
||||
serializedVersion: 2
|
||||
maxGradient:
|
||||
key0:
|
||||
serializedVersion: 2
|
||||
@ -660,12 +681,8 @@ ParticleSystem:
|
||||
atime7: 0
|
||||
m_NumColorKeys: 2
|
||||
m_NumAlphaKeys: 2
|
||||
minColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
maxColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4278224127
|
||||
minColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
maxColor: {r: 1, g: 0.5176471, b: 0, a: 1}
|
||||
minMaxState: 0
|
||||
startSize:
|
||||
scalar: 0.5
|
||||
@ -702,6 +719,76 @@ ParticleSystem:
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
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:
|
||||
scalar: 0
|
||||
maxCurve:
|
||||
@ -810,6 +897,7 @@ ParticleSystem:
|
||||
randomizeRotationDirection: 0
|
||||
gravityModifier: 0
|
||||
maxNumParticles: 100
|
||||
size3D: 0
|
||||
rotation3D: 0
|
||||
ShapeModule:
|
||||
serializedVersion: 2
|
||||
@ -925,6 +1013,77 @@ ParticleSystem:
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
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:
|
||||
enabled: 0
|
||||
x:
|
||||
@ -1036,6 +1195,7 @@ ParticleSystem:
|
||||
ColorModule:
|
||||
enabled: 0
|
||||
gradient:
|
||||
serializedVersion: 2
|
||||
maxGradient:
|
||||
key0:
|
||||
serializedVersion: 2
|
||||
@ -1122,17 +1282,13 @@ ParticleSystem:
|
||||
atime7: 0
|
||||
m_NumColorKeys: 2
|
||||
m_NumAlphaKeys: 2
|
||||
minColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
maxColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
minColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
maxColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
minMaxState: 1
|
||||
UVModule:
|
||||
enabled: 0
|
||||
frameOverTime:
|
||||
scalar: 1
|
||||
scalar: 0.9999
|
||||
maxCurve:
|
||||
serializedVersion: 2
|
||||
m_Curve:
|
||||
@ -1166,11 +1322,47 @@ ParticleSystem:
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
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
|
||||
tilesY: 1
|
||||
animationType: 0
|
||||
rowIndex: 0
|
||||
cycles: 1
|
||||
uvChannelMask: -1
|
||||
randomRow: 1
|
||||
VelocityModule:
|
||||
enabled: 0
|
||||
@ -1612,7 +1804,78 @@ ParticleSystem:
|
||||
m_PostInfinity: 2
|
||||
m_RotationOrder: 4
|
||||
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}
|
||||
separateAxes: 0
|
||||
RotationBySpeedModule:
|
||||
enabled: 0
|
||||
x:
|
||||
@ -1725,6 +1988,7 @@ ParticleSystem:
|
||||
ColorBySpeedModule:
|
||||
enabled: 0
|
||||
gradient:
|
||||
serializedVersion: 2
|
||||
maxGradient:
|
||||
key0:
|
||||
serializedVersion: 2
|
||||
@ -1811,17 +2075,13 @@ ParticleSystem:
|
||||
atime7: 0
|
||||
m_NumColorKeys: 2
|
||||
m_NumAlphaKeys: 2
|
||||
minColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
maxColor:
|
||||
serializedVersion: 2
|
||||
rgba: 4294967295
|
||||
minColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
maxColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
minMaxState: 1
|
||||
range: {x: 0, y: 1}
|
||||
CollisionModule:
|
||||
enabled: 0
|
||||
serializedVersion: 2
|
||||
serializedVersion: 3
|
||||
type: 0
|
||||
collisionMode: 0
|
||||
plane0: {fileID: 0}
|
||||
@ -1936,6 +2196,7 @@ ParticleSystem:
|
||||
m_RotationOrder: 4
|
||||
minMaxState: 0
|
||||
minKillSpeed: 0
|
||||
maxKillSpeed: 10000
|
||||
radiusScale: 1
|
||||
collidesWith:
|
||||
serializedVersion: 2
|
||||
@ -1946,6 +2207,19 @@ ParticleSystem:
|
||||
collisionMessages: 0
|
||||
collidesWithDynamic: 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:
|
||||
enabled: 0
|
||||
subEmitterBirth: {fileID: 0}
|
||||
@ -2037,6 +2311,7 @@ RectTransform:
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.02, y: 0.02, z: 0.1}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_Children:
|
||||
- {fileID: 1618699050}
|
||||
m_Father: {fileID: 0}
|
||||
@ -2071,17 +2346,20 @@ SpriteRenderer:
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 0
|
||||
m_Materials:
|
||||
- {fileID: 10754, guid: 0000000000000000e000000000000000, type: 0}
|
||||
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 0
|
||||
m_ReflectionProbeUsage: 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
|
||||
@ -2101,6 +2379,7 @@ Transform:
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 5.5483284, y: 48.482475, z: 1}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1675659861}
|
||||
m_RootOrder: 0
|
||||
@ -2129,6 +2408,7 @@ Transform:
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0.06, y: 0, z: 0}
|
||||
m_LocalScale: {x: 4.661441, y: 48.482475, z: 1}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1675659861}
|
||||
m_RootOrder: 1
|
||||
@ -2141,17 +2421,20 @@ SpriteRenderer:
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 0
|
||||
m_Materials:
|
||||
- {fileID: 10754, guid: 0000000000000000e000000000000000, type: 0}
|
||||
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 0
|
||||
m_ReflectionProbeUsage: 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
|
||||
@ -2187,6 +2470,7 @@ Transform:
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0.44, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.44441086, y: 48.482475, z: 1}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1675659861}
|
||||
m_RootOrder: 2
|
||||
@ -2199,17 +2483,20 @@ SpriteRenderer:
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 0
|
||||
m_Materials:
|
||||
- {fileID: 10754, guid: 0000000000000000e000000000000000, type: 0}
|
||||
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 0
|
||||
m_ReflectionProbeUsage: 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
|
||||
@ -2303,6 +2590,7 @@ Transform:
|
||||
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
|
||||
@ -2332,6 +2620,7 @@ RectTransform:
|
||||
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: 624843597}
|
||||
m_RootOrder: 0
|
||||
@ -2422,17 +2711,20 @@ MeshRenderer:
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 4083cd422558e2540a62bbafb94f57b5, type: 2}
|
||||
- {fileID: 2100000, guid: 1455e88fdb81ccc45bdeaedd657bad4d, type: 2}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
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
|
||||
@ -2455,6 +2747,7 @@ Transform:
|
||||
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: 93048079}
|
||||
m_RootOrder: 1
|
||||
@ -2482,6 +2775,7 @@ Transform:
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 3.5889997, y: 0.001999855, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_Children:
|
||||
- {fileID: 774732877}
|
||||
- {fileID: 1149289854}
|
||||
@ -2526,17 +2820,20 @@ MeshRenderer:
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 4083cd422558e2540a62bbafb94f57b5, type: 2}
|
||||
- {fileID: 2100000, guid: 1455e88fdb81ccc45bdeaedd657bad4d, type: 2}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
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
|
||||
@ -2559,6 +2856,7 @@ Transform:
|
||||
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: 1918225119}
|
||||
m_RootOrder: 1
|
||||
@ -2600,17 +2898,20 @@ MeshRenderer:
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 4083cd422558e2540a62bbafb94f57b5, type: 2}
|
||||
- {fileID: 2100000, guid: 1455e88fdb81ccc45bdeaedd657bad4d, type: 2}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
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
|
||||
@ -2633,6 +2934,7 @@ Transform:
|
||||
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: 93048079}
|
||||
m_RootOrder: 0
|
||||
@ -2692,9 +2994,9 @@ MonoBehaviour:
|
||||
renderMeshes: 1
|
||||
immutableTriangles: 0
|
||||
pmaVertexColors: 1
|
||||
clearStateOnDisable: 0
|
||||
calculateNormals: 0
|
||||
calculateTangents: 0
|
||||
frontFacing: 0
|
||||
logErrors: 0
|
||||
disableRenderingOnOverride: 1
|
||||
_animationName:
|
||||
@ -2709,18 +3011,21 @@ MeshRenderer:
|
||||
m_Enabled: 0
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 0}
|
||||
- {fileID: 2100000, guid: 4083cd422558e2540a62bbafb94f57b5, type: 2}
|
||||
- {fileID: 2100000, guid: 1455e88fdb81ccc45bdeaedd657bad4d, type: 2}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
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
|
||||
@ -2743,6 +3048,7 @@ Transform:
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: -6.18, y: -3.53, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_Children:
|
||||
- {fileID: 122287543}
|
||||
- {fileID: 1698487795}
|
||||
@ -2791,6 +3097,7 @@ RectTransform:
|
||||
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: 51877973}
|
||||
m_RootOrder: 0
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -13,7 +13,7 @@ SceneSettings:
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 6
|
||||
serializedVersion: 7
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
@ -37,12 +37,12 @@ RenderSettings:
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
--- !u!157 &4
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 6
|
||||
serializedVersion: 7
|
||||
m_GIWorkflowMode: 1
|
||||
m_LightmapsMode: 1
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
@ -53,17 +53,22 @@ LightmapSettings:
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 3
|
||||
serializedVersion: 4
|
||||
m_Resolution: 1
|
||||
m_BakeResolution: 50
|
||||
m_TextureWidth: 1024
|
||||
m_TextureHeight: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_Padding: 2
|
||||
m_CompAOExponent: 0
|
||||
m_CompAOExponentDirect: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 0
|
||||
m_DirectLightInLightProbes: 1
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherFiltering: 1
|
||||
m_FinalGatherRayCount: 1024
|
||||
m_ReflectionCompression: 2
|
||||
m_LightingDataAsset: {fileID: 0}
|
||||
@ -108,9 +113,10 @@ Transform:
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
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_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 973814792}
|
||||
m_RootOrder: 1
|
||||
@ -146,16 +152,14 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: b238dfcde8209044b97d23f62bcaadf6, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
boneName: rear_foot_goal
|
||||
parentReference: {fileID: 0}
|
||||
mode: 0
|
||||
zPosition: 1
|
||||
position: 1
|
||||
rotation: 1
|
||||
scale: 1
|
||||
flip: 0
|
||||
flipX: 0
|
||||
zPosition: 1
|
||||
overrideAlpha: 1
|
||||
boneName: rear_foot_goal
|
||||
parentReference: {fileID: 0}
|
||||
--- !u!1 &44654812
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -180,6 +184,7 @@ Transform:
|
||||
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: 973814792}
|
||||
m_Father: {fileID: 120294521}
|
||||
@ -212,6 +217,7 @@ Transform:
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: -0.15, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_Children:
|
||||
- {fileID: 44654813}
|
||||
m_Father: {fileID: 0}
|
||||
@ -247,9 +253,9 @@ MonoBehaviour:
|
||||
renderMeshes: 1
|
||||
immutableTriangles: 0
|
||||
pmaVertexColors: 1
|
||||
clearStateOnDisable: 0
|
||||
calculateNormals: 0
|
||||
calculateTangents: 0
|
||||
frontFacing: 0
|
||||
logErrors: 0
|
||||
disableRenderingOnOverride: 1
|
||||
_animationName: walk
|
||||
@ -264,17 +270,20 @@ MeshRenderer:
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 4e2feebfcaa26a54ab19f1ff3e0eae35, type: 2}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
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
|
||||
@ -310,9 +319,10 @@ Transform:
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
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_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_Children:
|
||||
- {fileID: 1984548219}
|
||||
- {fileID: 36219067}
|
||||
@ -329,16 +339,14 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: b238dfcde8209044b97d23f62bcaadf6, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
boneName: root
|
||||
parentReference: {fileID: 0}
|
||||
mode: 0
|
||||
zPosition: 1
|
||||
position: 1
|
||||
rotation: 1
|
||||
scale: 1
|
||||
flip: 0
|
||||
flipX: 0
|
||||
zPosition: 1
|
||||
overrideAlpha: 1
|
||||
boneName: root
|
||||
parentReference: {fileID: 0}
|
||||
--- !u!1 &976394122
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -422,6 +430,7 @@ Transform:
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 1, z: -12}
|
||||
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
|
||||
@ -452,17 +461,20 @@ MeshRenderer:
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
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
|
||||
@ -497,6 +509,7 @@ Transform:
|
||||
m_LocalRotation: {x: 0, y: 0, z: -0.08522272, w: 0.996362}
|
||||
m_LocalPosition: {x: 0.29366082, y: 0.13593975, z: 2}
|
||||
m_LocalScale: {x: 13, y: 1, z: 2.6603487}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 2
|
||||
@ -549,25 +562,24 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: b238dfcde8209044b97d23f62bcaadf6, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
boneName: front_foot_goal
|
||||
parentReference: {fileID: 0}
|
||||
mode: 0
|
||||
zPosition: 1
|
||||
position: 1
|
||||
rotation: 1
|
||||
scale: 1
|
||||
flip: 0
|
||||
flipX: 0
|
||||
zPosition: 1
|
||||
overrideAlpha: 1
|
||||
boneName: front_foot_goal
|
||||
parentReference: {fileID: 0}
|
||||
--- !u!4 &1984548219
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 0}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
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_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 973814792}
|
||||
m_RootOrder: 0
|
||||
|
||||
@ -13,7 +13,7 @@ SceneSettings:
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 6
|
||||
serializedVersion: 7
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
@ -37,12 +37,12 @@ RenderSettings:
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
--- !u!157 &4
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 6
|
||||
serializedVersion: 7
|
||||
m_GIWorkflowMode: 1
|
||||
m_LightmapsMode: 1
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
@ -53,17 +53,22 @@ LightmapSettings:
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 3
|
||||
serializedVersion: 4
|
||||
m_Resolution: 1
|
||||
m_BakeResolution: 50
|
||||
m_TextureWidth: 1024
|
||||
m_TextureHeight: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_Padding: 2
|
||||
m_CompAOExponent: 0
|
||||
m_CompAOExponentDirect: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 0
|
||||
m_DirectLightInLightProbes: 1
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherFiltering: 1
|
||||
m_FinalGatherRayCount: 1024
|
||||
m_ReflectionCompression: 2
|
||||
m_LightingDataAsset: {fileID: 0}
|
||||
@ -172,12 +177,174 @@ RectTransform:
|
||||
m_Children:
|
||||
- {fileID: 2122594306}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 6
|
||||
m_RootOrder: 5
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -219,17 +386,20 @@ MeshRenderer:
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
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
|
||||
@ -310,17 +480,20 @@ MeshRenderer:
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
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
|
||||
@ -334,60 +507,6 @@ MeshFilter:
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 281786970}
|
||||
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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -442,17 +561,20 @@ MeshRenderer:
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
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
|
||||
@ -466,60 +588,168 @@ MeshFilter:
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 469940167}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!1001 &678089918
|
||||
Prefab:
|
||||
--- !u!1 &689192947
|
||||
GameObject:
|
||||
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.55
|
||||
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: 1
|
||||
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
|
||||
m_PrefabParentObject: {fileID: 183998, guid: 5c60df38c5334a249b38ac8cddc6433b, type: 2}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
serializedVersion: 4
|
||||
m_Component:
|
||||
- 4: {fileID: 689192954}
|
||||
- 33: {fileID: 689192953}
|
||||
- 23: {fileID: 689192952}
|
||||
- 114: {fileID: 689192951}
|
||||
- 114: {fileID: 689192950}
|
||||
- 114: {fileID: 689192949}
|
||||
- 60: {fileID: 689192948}
|
||||
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 &689192948
|
||||
PolygonCollider2D:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 6083998, guid: 5c60df38c5334a249b38ac8cddc6433b,
|
||||
type: 2}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 689192947}
|
||||
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 &689192949
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_PrefabParentObject: {fileID: 11483998, guid: 5c60df38c5334a249b38ac8cddc6433b,
|
||||
type: 2}
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 689192947}
|
||||
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 &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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -561,17 +791,20 @@ MeshRenderer:
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
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
|
||||
@ -639,17 +872,20 @@ MeshRenderer:
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
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
|
||||
@ -712,7 +948,7 @@ Transform:
|
||||
- {fileID: 1446269955}
|
||||
- {fileID: 469940168}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 5
|
||||
m_RootOrder: 4
|
||||
--- !u!1 &1332258640
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -841,17 +1077,20 @@ MeshRenderer:
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
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
|
||||
@ -878,6 +1117,168 @@ Transform:
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1241879115}
|
||||
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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -919,17 +1320,20 @@ MeshRenderer:
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
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
|
||||
@ -1010,17 +1414,20 @@ MeshRenderer:
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
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
|
||||
@ -1034,60 +1441,6 @@ MeshFilter:
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 1446269954}
|
||||
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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -1217,17 +1570,20 @@ MeshRenderer:
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
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
|
||||
@ -1338,7 +1694,7 @@ Light:
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 2147465172}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 6
|
||||
serializedVersion: 7
|
||||
m_Type: 2
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_Intensity: 2
|
||||
@ -1348,6 +1704,7 @@ Light:
|
||||
m_Shadows:
|
||||
m_Type: 0
|
||||
m_Resolution: -1
|
||||
m_CustomResolution: -1
|
||||
m_Strength: 1
|
||||
m_Bias: 0.05
|
||||
m_NormalBias: 0.4
|
||||
@ -1360,10 +1717,10 @@ Light:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_Lightmapping: 1
|
||||
m_AreaSize: {x: 1, y: 1}
|
||||
m_BounceIntensity: 1
|
||||
m_ShadowRadius: 0
|
||||
m_ShadowAngle: 0
|
||||
m_AreaSize: {x: 1, y: 1}
|
||||
--- !u!4 &2147465174
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -1376,4 +1733,4 @@ Transform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 4
|
||||
m_RootOrder: 3
|
||||
|
||||
@ -13,7 +13,7 @@ SceneSettings:
|
||||
--- !u!104 &2
|
||||
RenderSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 6
|
||||
serializedVersion: 7
|
||||
m_Fog: 0
|
||||
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
|
||||
m_FogMode: 3
|
||||
@ -37,12 +37,12 @@ RenderSettings:
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
--- !u!157 &4
|
||||
LightmapSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 6
|
||||
serializedVersion: 7
|
||||
m_GIWorkflowMode: 1
|
||||
m_LightmapsMode: 1
|
||||
m_GISettings:
|
||||
serializedVersion: 2
|
||||
m_BounceScale: 1
|
||||
@ -53,17 +53,22 @@ LightmapSettings:
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_LightmapEditorSettings:
|
||||
serializedVersion: 3
|
||||
serializedVersion: 4
|
||||
m_Resolution: 1
|
||||
m_BakeResolution: 50
|
||||
m_TextureWidth: 1024
|
||||
m_TextureHeight: 1024
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_Padding: 2
|
||||
m_CompAOExponent: 0
|
||||
m_CompAOExponentDirect: 0
|
||||
m_Padding: 2
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_LightmapsBakeMode: 1
|
||||
m_TextureCompression: 0
|
||||
m_DirectLightInLightProbes: 1
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherFiltering: 1
|
||||
m_FinalGatherRayCount: 1024
|
||||
m_ReflectionCompression: 2
|
||||
m_LightingDataAsset: {fileID: 0}
|
||||
@ -85,6 +90,99 @@ NavMeshSettings:
|
||||
cellSize: 0.16666666
|
||||
manualCellSize: 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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -98,7 +196,7 @@ GameObject:
|
||||
- 114: {fileID: 795271515}
|
||||
- 114: {fileID: 795271514}
|
||||
m_Layer: 0
|
||||
m_Name: Gauge
|
||||
m_Name: Spine GameObject (gauge)
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
@ -115,7 +213,7 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: c888ce38da699d143a68153f26379a37, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
fillPercent: 0.388
|
||||
fillPercent: 1
|
||||
fillAnimationName: Fill
|
||||
--- !u!114 &795271515
|
||||
MonoBehaviour:
|
||||
@ -135,9 +233,9 @@ MonoBehaviour:
|
||||
renderMeshes: 1
|
||||
immutableTriangles: 0
|
||||
pmaVertexColors: 1
|
||||
clearStateOnDisable: 0
|
||||
calculateNormals: 0
|
||||
calculateTangents: 0
|
||||
frontFacing: 0
|
||||
logErrors: 0
|
||||
disableRenderingOnOverride: 1
|
||||
--- !u!23 &795271516
|
||||
@ -149,17 +247,20 @@ MeshRenderer:
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: 9ab9bdbda020b3e46b5a3b0558ef591d, type: 2}
|
||||
m_SubsetIndices:
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_UseLightProbes: 0
|
||||
m_ReflectionProbeUsage: 1
|
||||
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
|
||||
@ -173,9 +274,11 @@ Transform:
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 795271513}
|
||||
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_Children: []
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_Children:
|
||||
- {fileID: 1025516230}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 1
|
||||
--- !u!33 &795271518
|
||||
@ -185,6 +288,127 @@ MeshFilter:
|
||||
m_PrefabInternal: {fileID: 0}
|
||||
m_GameObject: {fileID: 795271513}
|
||||
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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -268,6 +492,158 @@ Transform:
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 1, 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
|
||||
--- !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}
|
||||
|
||||
852
spine-unity/Assets/Examples/Other Examples/Sprite Shaders.unity
Normal file
852
spine-unity/Assets/Examples/Other Examples/Sprite Shaders.unity
Normal 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
|
||||
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0862248ab668ce749845b0d7de5c6355
|
||||
timeCreated: 1479531945
|
||||
licenseType: Free
|
||||
DefaultImporter:
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@ -1,4 +1,4 @@
|
||||
/******************************************************************************
|
||||
/******************************************************************************
|
||||
* Spine Runtimes Software License v2.5
|
||||
*
|
||||
* Copyright (c) 2013-2016, Esoteric Software
|
||||
@ -28,22 +28,36 @@
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*****************************************************************************/
|
||||
|
||||
// Contributed by: Mitch Thompson
|
||||
|
||||
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")]
|
||||
public string attachmentPath;
|
||||
int currentHealth = 100;
|
||||
const int maxHealth = 100;
|
||||
|
||||
[SpineSlot]
|
||||
public string targetSlot;
|
||||
void Update () {
|
||||
if (Input.GetKeyDown(KeyCode.Space)) {
|
||||
currentHealth -= 10;
|
||||
healthText.text = currentHealth + "/" + maxHealth;
|
||||
|
||||
void Start() {
|
||||
GetComponent<SkeletonRenderer>().skeleton.FindSlot(targetSlot).Attachment = SpineAttachment.GetAttachment(attachmentPath, skeletonDataSource);
|
||||
if (currentHealth > 0) {
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,5 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5053fe97a7657b5418b0c307b7338b0c
|
||||
guid: 7eab8e63d650dc74c80d142cd4b9fe4b
|
||||
timeCreated: 1480095094
|
||||
licenseType: Free
|
||||
MonoImporter:
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
@ -34,69 +34,71 @@ using UnityEngine;
|
||||
using System.Collections;
|
||||
using Spine.Unity;
|
||||
|
||||
public class FootSoldierExample : MonoBehaviour {
|
||||
[SpineAnimation("Idle")]
|
||||
public string idleAnimation;
|
||||
namespace Spine.Unity.Examples {
|
||||
public class FootSoldierExample : MonoBehaviour {
|
||||
[SpineAnimation("Idle")]
|
||||
public string idleAnimation;
|
||||
|
||||
[SpineAnimation]
|
||||
public string attackAnimation;
|
||||
[SpineAnimation]
|
||||
public string attackAnimation;
|
||||
|
||||
[SpineAnimation]
|
||||
public string moveAnimation;
|
||||
[SpineAnimation]
|
||||
public string moveAnimation;
|
||||
|
||||
[SpineSlot]
|
||||
public string eyesSlot;
|
||||
[SpineSlot]
|
||||
public string eyesSlot;
|
||||
|
||||
[SpineAttachment(currentSkinOnly: true, slotField: "eyesSlot")]
|
||||
public string eyesOpenAttachment;
|
||||
[SpineAttachment(currentSkinOnly: true, slotField: "eyesSlot")]
|
||||
public string eyesOpenAttachment;
|
||||
|
||||
[SpineAttachment(currentSkinOnly: true, slotField: "eyesSlot")]
|
||||
public string blinkAttachment;
|
||||
[SpineAttachment(currentSkinOnly: true, slotField: "eyesSlot")]
|
||||
public string blinkAttachment;
|
||||
|
||||
[Range(0, 0.2f)]
|
||||
public float blinkDuration = 0.05f;
|
||||
[Range(0, 0.2f)]
|
||||
public float blinkDuration = 0.05f;
|
||||
|
||||
public KeyCode attackKey = KeyCode.Mouse0;
|
||||
public KeyCode rightKey = KeyCode.D;
|
||||
public KeyCode leftKey = KeyCode.A;
|
||||
public KeyCode attackKey = KeyCode.Mouse0;
|
||||
public KeyCode rightKey = KeyCode.D;
|
||||
public KeyCode leftKey = KeyCode.A;
|
||||
|
||||
public float moveSpeed = 3;
|
||||
public float moveSpeed = 3;
|
||||
|
||||
private SkeletonAnimation skeletonAnimation;
|
||||
SkeletonAnimation skeletonAnimation;
|
||||
|
||||
void Awake() {
|
||||
skeletonAnimation = GetComponent<SkeletonAnimation>();
|
||||
skeletonAnimation.OnRebuild += Apply;
|
||||
}
|
||||
void Awake () {
|
||||
skeletonAnimation = GetComponent<SkeletonAnimation>();
|
||||
skeletonAnimation.OnRebuild += Apply;
|
||||
}
|
||||
|
||||
void Apply(SkeletonRenderer skeletonRenderer) {
|
||||
StartCoroutine("Blink");
|
||||
}
|
||||
void Apply (SkeletonRenderer skeletonRenderer) {
|
||||
StartCoroutine("Blink");
|
||||
}
|
||||
|
||||
void Update() {
|
||||
if (Input.GetKey(attackKey)) {
|
||||
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);
|
||||
void Update () {
|
||||
if (Input.GetKey(attackKey)) {
|
||||
skeletonAnimation.AnimationName = attackAnimation;
|
||||
} 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -29,36 +29,40 @@
|
||||
*****************************************************************************/
|
||||
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using Spine;
|
||||
using Spine.Unity;
|
||||
|
||||
public class Goblins : MonoBehaviour {
|
||||
private bool girlSkin;
|
||||
private SkeletonAnimation skeletonAnimation;
|
||||
private Bone headBone;
|
||||
|
||||
public void Start () {
|
||||
skeletonAnimation = GetComponent<SkeletonAnimation>();
|
||||
headBone = skeletonAnimation.skeleton.FindBone("head");
|
||||
skeletonAnimation.UpdateLocal += UpdateLocal;
|
||||
}
|
||||
namespace Spine.Unity.Examples {
|
||||
public class Goblins : MonoBehaviour {
|
||||
SkeletonAnimation skeletonAnimation;
|
||||
Bone headBone;
|
||||
bool girlSkin;
|
||||
|
||||
// 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 += 15;
|
||||
}
|
||||
|
||||
public void OnMouseDown () {
|
||||
skeletonAnimation.skeleton.SetSkin(girlSkin ? "goblin" : "goblingirl");
|
||||
skeletonAnimation.skeleton.SetSlotsToSetupPose();
|
||||
[Range(-360, 360)]
|
||||
public float extraRotation;
|
||||
|
||||
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) {
|
||||
skeletonAnimation.skeleton.SetAttachment("right hand item", null);
|
||||
skeletonAnimation.skeleton.SetAttachment("left hand item", "spear");
|
||||
} else
|
||||
skeletonAnimation.skeleton.SetAttachment("left hand item", "dagger");
|
||||
public void OnMouseDown () {
|
||||
skeletonAnimation.skeleton.SetSkin(girlSkin ? "goblin" : "goblingirl");
|
||||
skeletonAnimation.skeleton.SetSlotsToSetupPose();
|
||||
|
||||
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");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
112
spine-unity/Assets/Examples/Scripts/MixAndMatch.cs
Normal file
112
spine-unity/Assets/Examples/Scripts/MixAndMatch.cs
Normal 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);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
12
spine-unity/Assets/Examples/Scripts/MixAndMatch.cs.meta
Normal file
12
spine-unity/Assets/Examples/Scripts/MixAndMatch.cs.meta
Normal 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:
|
||||
@ -32,85 +32,76 @@ using UnityEngine;
|
||||
using System.Collections;
|
||||
using Spine.Unity;
|
||||
|
||||
public class RaggedySpineboy : MonoBehaviour {
|
||||
namespace Spine.Unity.Examples {
|
||||
public class RaggedySpineboy : MonoBehaviour {
|
||||
|
||||
public LayerMask groundMask;
|
||||
public float restoreDuration = 0.5f;
|
||||
public Vector2 launchVelocity = new Vector2(50,100);
|
||||
public LayerMask groundMask;
|
||||
public float restoreDuration = 0.5f;
|
||||
public Vector2 launchVelocity = new Vector2(50,100);
|
||||
|
||||
Spine.Unity.Modules.SkeletonRagdoll2D ragdoll;
|
||||
Collider2D naturalCollider;
|
||||
Spine.Unity.Modules.SkeletonRagdoll2D ragdoll;
|
||||
Collider2D naturalCollider;
|
||||
|
||||
void Start () {
|
||||
|
||||
ragdoll = GetComponent<Spine.Unity.Modules.SkeletonRagdoll2D>();
|
||||
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;
|
||||
void Start () {
|
||||
ragdoll = GetComponent<Spine.Unity.Modules.SkeletonRagdoll2D>();
|
||||
naturalCollider = GetComponent<Collider2D>();
|
||||
}
|
||||
|
||||
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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
12
spine-unity/Assets/Examples/Scripts/Rotator.cs
Normal file
12
spine-unity/Assets/Examples/Scripts/Rotator.cs
Normal 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));
|
||||
}
|
||||
}
|
||||
}
|
||||
12
spine-unity/Assets/Examples/Scripts/Rotator.cs.meta
Normal file
12
spine-unity/Assets/Examples/Scripts/Rotator.cs.meta
Normal 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:
|
||||
@ -29,46 +29,47 @@
|
||||
*****************************************************************************/
|
||||
|
||||
using UnityEngine;
|
||||
using System.Collections;
|
||||
using Spine.Unity;
|
||||
|
||||
[ExecuteInEditMode]
|
||||
[RequireComponent(typeof(SkeletonRenderer))]
|
||||
public class SpineGauge : MonoBehaviour {
|
||||
namespace Spine.Unity.Examples {
|
||||
[ExecuteInEditMode]
|
||||
[RequireComponent(typeof(SkeletonRenderer))]
|
||||
public class SpineGauge : MonoBehaviour {
|
||||
|
||||
#region Inspector
|
||||
[Range(0,1)]
|
||||
public float fillPercent = 0;
|
||||
#region Inspector
|
||||
[Range(0,1)]
|
||||
public float fillPercent = 0;
|
||||
|
||||
[SpineAnimation]
|
||||
public string fillAnimationName;
|
||||
#endregion
|
||||
[SpineAnimation]
|
||||
public string fillAnimationName;
|
||||
#endregion
|
||||
|
||||
SkeletonRenderer skeletonRenderer;
|
||||
Spine.Animation fillAnimation;
|
||||
SkeletonRenderer skeletonRenderer;
|
||||
Spine.Animation fillAnimation;
|
||||
|
||||
void Awake () {
|
||||
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;
|
||||
void Awake () {
|
||||
skeletonRenderer = GetComponent<SkeletonRenderer>();
|
||||
}
|
||||
|
||||
fillAnimation.Apply(skeleton, 0, x, false, null, 1f, true, false);
|
||||
|
||||
skeleton.Update(Time.deltaTime);
|
||||
skeleton.UpdateWorldTransform();
|
||||
void Update () {
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -33,25 +33,28 @@ using UnityEngine;
|
||||
using Spine;
|
||||
using Spine.Unity;
|
||||
|
||||
public class Spineboy : MonoBehaviour {
|
||||
SkeletonAnimation skeletonAnimation;
|
||||
namespace Spine.Unity.Examples {
|
||||
public class Spineboy : MonoBehaviour {
|
||||
SkeletonAnimation skeletonAnimation;
|
||||
|
||||
public void Start () {
|
||||
skeletonAnimation = GetComponent<SkeletonAnimation>(); // Get the SkeletonAnimation component for the GameObject this script is attached to.
|
||||
public void Start () {
|
||||
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.End += (entry) => Debug.Log("start: " + entry.trackIndex); // A lambda can be used for the callback instead of a method.
|
||||
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.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, "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.
|
||||
}
|
||||
|
||||
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.
|
||||
}
|
||||
}
|
||||
|
||||
@ -34,48 +34,52 @@ using Spine.Unity;
|
||||
|
||||
using Spine.Unity.Modules;
|
||||
|
||||
public class SpineboyPole : MonoBehaviour {
|
||||
public SkeletonAnimation skeletonAnimation;
|
||||
public SkeletonRenderSeparator separator;
|
||||
namespace Spine.Unity.Examples {
|
||||
public class SpineboyPole : MonoBehaviour {
|
||||
public SkeletonAnimation skeletonAnimation;
|
||||
public SkeletonRenderSeparator separator;
|
||||
|
||||
[Space(18)]
|
||||
[SpineAnimation]
|
||||
public string run;
|
||||
[SpineAnimation]
|
||||
public string pole;
|
||||
public float startX;
|
||||
public float endX;
|
||||
[Space(18)]
|
||||
[SpineAnimation]
|
||||
public string run;
|
||||
[SpineAnimation]
|
||||
public string pole;
|
||||
public float startX;
|
||||
public float endX;
|
||||
|
||||
const float Speed = 18f;
|
||||
const float RunTimeScale = 1.5f;
|
||||
const float Speed = 18f;
|
||||
const float RunTimeScale = 1.5f;
|
||||
|
||||
IEnumerator Start () {
|
||||
var state = skeletonAnimation.state;
|
||||
IEnumerator Start () {
|
||||
var state = skeletonAnimation.state;
|
||||
|
||||
while (true) {
|
||||
// Run phase
|
||||
SetXPosition(startX);
|
||||
separator.enabled = false; // Disable Separator during run.
|
||||
state.SetAnimation(0, run, true);
|
||||
state.TimeScale = RunTimeScale;
|
||||
while (true) {
|
||||
// Run phase
|
||||
SetXPosition(startX);
|
||||
separator.enabled = false; // Disable Separator during run.
|
||||
state.SetAnimation(0, run, true);
|
||||
state.TimeScale = RunTimeScale;
|
||||
|
||||
while (transform.localPosition.x < endX) {
|
||||
transform.Translate(Vector3.right * Speed * Time.deltaTime);
|
||||
yield return null;
|
||||
while (transform.localPosition.x < endX) {
|
||||
transform.Translate(Vector3.right * Speed * Time.deltaTime);
|
||||
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
|
||||
SetXPosition(endX);
|
||||
separator.enabled = true; // Enable Separator when hit
|
||||
var poleTrack = state.SetAnimation(0, pole, false);
|
||||
yield return new WaitForSpineAnimationComplete(poleTrack);
|
||||
yield return new WaitForSeconds(1f);
|
||||
void SetXPosition (float x) {
|
||||
var tp = transform.localPosition;
|
||||
tp.x = x;
|
||||
transform.localPosition = tp;
|
||||
}
|
||||
}
|
||||
|
||||
void SetXPosition (float x) {
|
||||
var tp = transform.localPosition;
|
||||
tp.x = x;
|
||||
transform.localPosition = tp;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,9 +1,30 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6bc52290ef03f2846ba38d67e2823598
|
||||
timeCreated: 1467205225
|
||||
timeCreated: 1479419653
|
||||
licenseType: Free
|
||||
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
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
@ -46,10 +67,285 @@ TextureImporter:
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 5
|
||||
buildTargetSettings: []
|
||||
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: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
|
||||
@ -1,9 +1,28 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 12c126994123f12468cf4c5a2684078a
|
||||
timeCreated: 1467205225
|
||||
timeCreated: 1479419653
|
||||
licenseType: Free
|
||||
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
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
@ -46,10 +65,259 @@ TextureImporter:
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 5
|
||||
buildTargetSettings: []
|
||||
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: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
|
||||
@ -15,16 +15,14 @@ Material:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 2
|
||||
m_TexEnvs:
|
||||
data:
|
||||
first:
|
||||
name: _MainTex
|
||||
second:
|
||||
m_Texture: {fileID: 2800000, guid: 6bc52290ef03f2846ba38d67e2823598, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- first:
|
||||
name: _MainTex
|
||||
second:
|
||||
m_Texture: {fileID: 2800000, guid: 6bc52290ef03f2846ba38d67e2823598, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
data:
|
||||
first:
|
||||
name: _Cutoff
|
||||
second: 0.1
|
||||
m_Colors: {}
|
||||
- first:
|
||||
name: _Cutoff
|
||||
second: 0.1
|
||||
m_Colors: []
|
||||
|
||||
@ -15,16 +15,14 @@ Material:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 2
|
||||
m_TexEnvs:
|
||||
data:
|
||||
first:
|
||||
name: _MainTex
|
||||
second:
|
||||
m_Texture: {fileID: 2800000, guid: 12c126994123f12468cf4c5a2684078a, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- first:
|
||||
name: _MainTex
|
||||
second:
|
||||
m_Texture: {fileID: 2800000, guid: 12c126994123f12468cf4c5a2684078a, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
data:
|
||||
first:
|
||||
name: _Cutoff
|
||||
second: 0.1
|
||||
m_Colors: {}
|
||||
- first:
|
||||
name: _Cutoff
|
||||
second: 0.1
|
||||
m_Colors: []
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 49441e5a1682e564694545bd9b509785
|
||||
timeCreated: 1467205225
|
||||
timeCreated: 1479419653
|
||||
licenseType: Free
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
@ -46,9 +46,11 @@ TextureImporter:
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 5
|
||||
buildTargetSettings: []
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
spritePackingTag:
|
||||
|
||||
@ -15,16 +15,14 @@ Material:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 2
|
||||
m_TexEnvs:
|
||||
data:
|
||||
first:
|
||||
name: _MainTex
|
||||
second:
|
||||
m_Texture: {fileID: 2800000, guid: 49441e5a1682e564694545bd9b509785, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- first:
|
||||
name: _MainTex
|
||||
second:
|
||||
m_Texture: {fileID: 2800000, guid: 49441e5a1682e564694545bd9b509785, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
data:
|
||||
first:
|
||||
name: _Cutoff
|
||||
second: 0.1
|
||||
m_Colors: {}
|
||||
- first:
|
||||
name: _Cutoff
|
||||
second: 0.1
|
||||
m_Colors: []
|
||||
|
||||
@ -1,13 +1,17 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ddb89f63d0296cf4f8572b0448bb6b30
|
||||
timeCreated: 1467205225
|
||||
timeCreated: 1480096533
|
||||
licenseType: Free
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
fileIDToRecycleName:
|
||||
21300000: Equipment/shield1
|
||||
21300002: Equipment/shield2
|
||||
21300004: Equipment/sword1
|
||||
21300006: Equipment/sword4
|
||||
serializedVersion: 2
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
enableMipMap: 1
|
||||
linearTexture: 0
|
||||
correctGamma: 0
|
||||
fadeOut: 0
|
||||
@ -46,10 +50,64 @@ TextureImporter:
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaIsTransparency: 0
|
||||
textureType: 5
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 0
|
||||
buildTargetSettings: []
|
||||
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: []
|
||||
spritePackingTag:
|
||||
userData:
|
||||
|
||||
@ -15,16 +15,14 @@ Material:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 2
|
||||
m_TexEnvs:
|
||||
data:
|
||||
first:
|
||||
name: _MainTex
|
||||
second:
|
||||
m_Texture: {fileID: 2800000, guid: ddb89f63d0296cf4f8572b0448bb6b30, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- first:
|
||||
name: _MainTex
|
||||
second:
|
||||
m_Texture: {fileID: 2800000, guid: ddb89f63d0296cf4f8572b0448bb6b30, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
data:
|
||||
first:
|
||||
name: _Cutoff
|
||||
second: 0.1
|
||||
m_Colors: {}
|
||||
- first:
|
||||
name: _Cutoff
|
||||
second: 0.1
|
||||
m_Colors: []
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 57b57f94df266f94ea0981915a4472e1
|
||||
timeCreated: 1467205225
|
||||
timeCreated: 1479419653
|
||||
licenseType: Free
|
||||
TextureImporter:
|
||||
fileIDToRecycleName: {}
|
||||
@ -46,9 +46,11 @@ TextureImporter:
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spritePixelsToUnits: 100
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 5
|
||||
buildTargetSettings: []
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
spritePackingTag:
|
||||
|
||||
@ -15,16 +15,14 @@ Material:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 2
|
||||
m_TexEnvs:
|
||||
data:
|
||||
first:
|
||||
name: _MainTex
|
||||
second:
|
||||
m_Texture: {fileID: 2800000, guid: 57b57f94df266f94ea0981915a4472e1, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- first:
|
||||
name: _MainTex
|
||||
second:
|
||||
m_Texture: {fileID: 2800000, guid: 57b57f94df266f94ea0981915a4472e1, type: 3}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Floats:
|
||||
data:
|
||||
first:
|
||||
name: _Cutoff
|
||||
second: 0.1
|
||||
m_Colors: {}
|
||||
- first:
|
||||
name: _Cutoff
|
||||
second: 0.1
|
||||
m_Colors: []
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user