+ 주인공 스킬(검의 왈츠)가 추가되었습니다.
  ㄴ 검의 왈츠 애니메이션이 추가되었습니다.
  ㄴ 스킬에 맞게 UI를 표시합니다.
+ 주인공이 더 이상 공격 중에 이동할 수 없습니다.
+ 새로운 스킬 시스템으로 변경하였습니다.
+ Combat씬에서 사용할 Camera, Ui를 추가하였습니다.
+ Input Action이 변경 되었습니다. (UseSkill => ActivateMainSkill)
+ Idamameable 인터페이스에 GetCurrentHp() 기능이 추가되었습니다.
  ㄴ 변경에 따라 기존 스크립트들에 추가되었습니다.
This commit is contained in:
NTG 2024-01-29 00:46:56 +09:00
parent 419259c5f4
commit 27267fbeeb
68 changed files with 3271 additions and 222 deletions

File diff suppressed because it is too large Load Diff

View File

@ -145,7 +145,7 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
""initialStateCheck"": false
},
{
""name"": ""UseSkill"",
""name"": ""ActivateMainSkill"",
""type"": ""Button"",
""id"": ""bde6ac11-b3da-4cdd-a8a9-b11db01d47e3"",
""expectedControlType"": ""Button"",
@ -396,7 +396,7 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
""interactions"": """",
""processors"": """",
""groups"": ""Keyboard&Mouse"",
""action"": ""UseSkill"",
""action"": ""ActivateMainSkill"",
""isComposite"": false,
""isPartOfComposite"": false
},
@ -619,7 +619,7 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
m_Player_CancelHold = m_Player.FindAction("CancelHold", throwIfNotFound: true);
m_Player_Attack = m_Player.FindAction("Attack", throwIfNotFound: true);
m_Player_Dash = m_Player.FindAction("Dash", throwIfNotFound: true);
m_Player_UseSkill = m_Player.FindAction("UseSkill", throwIfNotFound: true);
m_Player_ActivateMainSkill = m_Player.FindAction("ActivateMainSkill", throwIfNotFound: true);
m_Player_Mouse0 = m_Player.FindAction("Mouse0", throwIfNotFound: true);
m_Player_Mouse1 = m_Player.FindAction("Mouse1", throwIfNotFound: true);
m_Player_ShiftKey = m_Player.FindAction("ShiftKey", throwIfNotFound: true);
@ -707,7 +707,7 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
private readonly InputAction m_Player_CancelHold;
private readonly InputAction m_Player_Attack;
private readonly InputAction m_Player_Dash;
private readonly InputAction m_Player_UseSkill;
private readonly InputAction m_Player_ActivateMainSkill;
private readonly InputAction m_Player_Mouse0;
private readonly InputAction m_Player_Mouse1;
private readonly InputAction m_Player_ShiftKey;
@ -729,7 +729,7 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
public InputAction @CancelHold => m_Wrapper.m_Player_CancelHold;
public InputAction @Attack => m_Wrapper.m_Player_Attack;
public InputAction @Dash => m_Wrapper.m_Player_Dash;
public InputAction @UseSkill => m_Wrapper.m_Player_UseSkill;
public InputAction @ActivateMainSkill => m_Wrapper.m_Player_ActivateMainSkill;
public InputAction @Mouse0 => m_Wrapper.m_Player_Mouse0;
public InputAction @Mouse1 => m_Wrapper.m_Player_Mouse1;
public InputAction @ShiftKey => m_Wrapper.m_Player_ShiftKey;
@ -782,9 +782,9 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
@Dash.started += instance.OnDash;
@Dash.performed += instance.OnDash;
@Dash.canceled += instance.OnDash;
@UseSkill.started += instance.OnUseSkill;
@UseSkill.performed += instance.OnUseSkill;
@UseSkill.canceled += instance.OnUseSkill;
@ActivateMainSkill.started += instance.OnActivateMainSkill;
@ActivateMainSkill.performed += instance.OnActivateMainSkill;
@ActivateMainSkill.canceled += instance.OnActivateMainSkill;
@Mouse0.started += instance.OnMouse0;
@Mouse0.performed += instance.OnMouse0;
@Mouse0.canceled += instance.OnMouse0;
@ -840,9 +840,9 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
@Dash.started -= instance.OnDash;
@Dash.performed -= instance.OnDash;
@Dash.canceled -= instance.OnDash;
@UseSkill.started -= instance.OnUseSkill;
@UseSkill.performed -= instance.OnUseSkill;
@UseSkill.canceled -= instance.OnUseSkill;
@ActivateMainSkill.started -= instance.OnActivateMainSkill;
@ActivateMainSkill.performed -= instance.OnActivateMainSkill;
@ActivateMainSkill.canceled -= instance.OnActivateMainSkill;
@Mouse0.started -= instance.OnMouse0;
@Mouse0.performed -= instance.OnMouse0;
@Mouse0.canceled -= instance.OnMouse0;
@ -1021,7 +1021,7 @@ public partial class @BlueWater: IInputActionCollection2, IDisposable
void OnCancelHold(InputAction.CallbackContext context);
void OnAttack(InputAction.CallbackContext context);
void OnDash(InputAction.CallbackContext context);
void OnUseSkill(InputAction.CallbackContext context);
void OnActivateMainSkill(InputAction.CallbackContext context);
void OnMouse0(InputAction.CallbackContext context);
void OnMouse1(InputAction.CallbackContext context);
void OnShiftKey(InputAction.CallbackContext context);

View File

@ -123,7 +123,7 @@
"initialStateCheck": false
},
{
"name": "UseSkill",
"name": "ActivateMainSkill",
"type": "Button",
"id": "bde6ac11-b3da-4cdd-a8a9-b11db01d47e3",
"expectedControlType": "Button",
@ -374,7 +374,7 @@
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "UseSkill",
"action": "ActivateMainSkill",
"isComposite": false,
"isPartOfComposite": false
},

View File

@ -10,6 +10,8 @@ namespace BlueWaterProject
public OceanCamera OceanCamera { get; set; }
public CombatCamera CombatCamera { get; set; }
[Title("InShip Change Offset")]
private Vector3 targetOffset;
private Vector3 startingOffset;

View File

@ -53,6 +53,8 @@ namespace BlueWaterProject
[DisableIf("@true")]
public class CurrentState
{
public bool useMouseAttack = true;
public bool isInvincibility;
public bool isAttacking;
public bool isComboPossible;
public bool isComboAttacking;
@ -80,11 +82,16 @@ namespace BlueWaterProject
[field: SerializeField] public CharacterOption MyCharacterOption { get; private set; }
[field: SerializeField] public CurrentState MyCurrentState { get; set; }
[field: SerializeField] public CurrentValue MyCurrentValue { get; set; }
public string mainSkillName;
public GameObject MainSkillObject { get; private set; }
private ISkill mainSkill;
public static readonly int IsMovingHash = Animator.StringToHash("isMoving");
public static readonly int XDirectionHash = Animator.StringToHash("xDirection");
public static readonly int ZDirectionHash = Animator.StringToHash("zDirection");
public static readonly int IsAttackingHash = Animator.StringToHash("isAttacking");
public static readonly int IsActivateMainSkillHash = Animator.StringToHash("isActivateMainSkill");
#endregion
@ -106,6 +113,7 @@ namespace BlueWaterProject
private void Start()
{
InitComponents();
InitSkills();
InitStartValue();
}
@ -132,6 +140,22 @@ namespace BlueWaterProject
MyComponents.movement.SetAnimator(MyComponents.animator);
}
private void InitSkills()
{
MainSkillObject = SkillManager.Inst.InstantiateSkill(mainSkillName).gameObject;
mainSkill = MainSkillObject.GetComponent<ISkill>();
if (mainSkill != null)
{
var myCollider = MyComponents.movement.MyComponents.capsuleCollider;
var myRb = MyComponents.movement.MyComponents.rb;
var myVisualLook = MyComponents.visualLook;
var ui = UiManager.Inst.CombatUi.MainSkillUi;
ui.gameObject.SetActive(true);
mainSkill.SkillInputData.InitInputData(myCollider, myRb, myVisualLook, MyCharacterOption.targetLayer, ui);
}
}
private void InitStartValue()
{
MyCurrentValue.hitColliders = new Collider[MyCharacterOption.maxHitNum];
@ -149,16 +173,16 @@ namespace BlueWaterProject
{
if (MyCurrentState.isAttacking && !MyCurrentState.isComboPossible) return;
// var control = context.control;
//
// if (control.name.Equals("leftButton"))
// {
// UseMouseAttack = true;
// }
// else if (control.name.Equals("k"))
// {
// UseMouseAttack = false;
// }
var control = context.control;
if (control.name.Equals("leftButton"))
{
MyCurrentState.useMouseAttack = true;
}
else if (control.name.Equals("k"))
{
MyCurrentState.useMouseAttack = false;
}
if (MyCurrentState.isComboPossible)
{
@ -167,6 +191,19 @@ namespace BlueWaterProject
}
MyComponents.animator.SetBool(IsAttackingHash, true);
}
private void OnActivateMainSkill()
{
if (MyCurrentState.isAttacking || GetIsDashing()) return;
mainSkill.SkillInputData.UpdateInputData(GetCurrentPosition());
if (mainSkill.EnableSkill())
{
SetEnableMoving(false);
MyComponents.animator.SetBool(IsActivateMainSkillHash, true);
mainSkill.ActivateSkill();
}
}
#endregion
@ -178,15 +215,15 @@ namespace BlueWaterProject
// IDamageable
public void TakeDamage(float attackerPower, Vector3? attackPos = null)
{
if (MyComponents.movement.GetIsDashing()) return;
if (MyCurrentState.isInvincibility) return;
var changeHp = Mathf.Max(MyCurrentValue.currentHp - attackerPower, 0);
SetCurrentHp(changeHp);
if (InIslandCamera.Inst.InIslandCam)
{
VisualFeedbackManager.Inst.CameraShake(InIslandCamera.Inst.InIslandCam);
}
// if (InIslandCamera.Inst.InIslandCam)
// {
// VisualFeedbackManager.Inst.CameraShake(InIslandCamera.Inst.InIslandCam);
// }
// 죽었는지 체크
if (changeHp == 0f)
@ -200,6 +237,8 @@ namespace BlueWaterProject
{
print("Combat Player Die");
}
public float GetCurrentHp() => MyCurrentValue.currentHp;
#endregion
@ -282,8 +321,12 @@ namespace BlueWaterProject
[Button("현재 체력 변경")]
private void SetCurrentHp(float value) => MyCurrentValue.currentHp = value;
public void SetEnableMoving(bool value) => MyComponents.movement.SetEnableMoving(value);
public void Move(Vector3 velocity) => MyComponents.movement.Move(velocity);
public void MoveToCurrentDirection(float speed) => MyComponents.movement.MoveToCurrentDirection(speed);
public bool GetIsAttacking() => MyCurrentState.isAttacking;
public bool GetIsComboAttacking() => MyCurrentState.isComboAttacking;
public bool GetIsDashing() => MyComponents.movement.GetIsDashing();
public float GetDashCooldown() => MyComponents.movement.GetDashCooldown();
public float GetDashTime() => MyComponents.movement.GetDashTime();
public float GetAttackTime() => MyCharacterOption.attackTime;
@ -292,6 +335,19 @@ namespace BlueWaterProject
public void SetIsComboPossible(bool value) => MyCurrentState.isComboPossible = value;
public void SetIsDashing(bool value) => MyComponents.movement.SetIsDashing(value);
public void SetEnableDashing(bool value) => MyComponents.movement.SetEnableDashing(value);
public Vector3 GetCurrentPosition() => MyComponents.movement.GetCurrentPosition();
public void SetIsInvincibility(bool value) => MyCurrentState.isInvincibility = value;
public void SetIsTrigger(bool value) => MyComponents.movement.SetIsTrigger(value);
public void SetUseGravity(bool value) => MyComponents.movement.SetUseGravity(value);
public void SetPreviousMoveDirection(Vector3 value)
{
MyComponents.movement.SetPreviousMoveDirection(value);
if (value != Vector3.zero)
{
MyComponents.animator.SetFloat(XDirectionHash, value.x);
MyComponents.animator.SetFloat(ZDirectionHash, value.z);
}
}
#endregion
}

View File

@ -2,7 +2,6 @@ using System;
using Sirenix.OdinInspector;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.Serialization;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
@ -63,6 +62,7 @@ namespace BlueWaterProject
[DisableIf("@true")]
public class CurrentState
{
public bool enableMoving = true;
public bool isMoving;
public bool isGrounded;
public bool isOnSlope;
@ -138,6 +138,8 @@ namespace BlueWaterProject
private void FixedUpdate()
{
if (!MyCurrentState.enableMoving) return;
InputMove();
CheckGround();
CheckForward();
@ -366,6 +368,18 @@ namespace BlueWaterProject
MyComponents.rb.MovePosition(finalVelocity);
}
public void Move(Vector3 velocity)
{
MyComponents.rb.position = velocity;
}
public void MoveToCurrentDirection(float speed)
{
var finalVelocity = MyComponents.rb.position + MyCurrentValue.previousMoveDirection * speed * Time.fixedDeltaTime;
MyComponents.rb.MovePosition(finalVelocity);
}
public void SetEnableMoving(bool value) => MyCurrentState.enableMoving = value;
public bool GetIsMoving() => MyCurrentState.isMoving;
public bool GetIsDashing() => MyCurrentState.isDashing;
public float GetDashCooldown() => MyMovementOption.dashCooldown;
@ -373,7 +387,11 @@ namespace BlueWaterProject
public void SetIsDashing(bool value) => MyCurrentState.isDashing = value;
public void SetEnableDashing(bool value) => MyCurrentState.enableDash = value;
public Vector3 GetPreviousMoveDirection() => MyCurrentValue.previousMoveDirection;
public void SetPreviousMoveDirection(Vector3 value) => MyCurrentValue.previousMoveDirection = value;
public void SetAnimator(Animator animator) => MyComponents.animator = animator;
public Vector3 GetCurrentPosition() => MyComponents.rb.position;
public void SetIsTrigger(bool value) => MyComponents.capsuleCollider.isTrigger = value;
public void SetUseGravity(bool value) => MyComponents.rb.useGravity = value;
#endregion
@ -469,14 +487,21 @@ namespace BlueWaterProject
var yPos = 10f;
GUI.Label(new Rect(sWidth - 350f, yPos, 150f, 30f), $"Speed : {MyMovementOption.moveSpeed: 00.00}",
RTLabelStyle);
MyMovementOption.moveSpeed = GUI.HorizontalSlider(new Rect(sWidth - 200f, yPos + 10f, 180f, 20f),
MyMovementOption.moveSpeed = GUI.HorizontalSlider(new Rect(sWidth - 180f, yPos + 10f, 160f, 20f),
MyMovementOption.moveSpeed, 1f, 10f);
yPos += 20f;
GUI.Label(new Rect(sWidth - 350f, yPos, 150f, 30f), $"Max Slope : {MyMovementOption.maxSlopeAngle: 00}",
RTLabelStyle);
MyMovementOption.maxSlopeAngle = (int)GUI.HorizontalSlider(
new Rect(sWidth - 200f, yPos + 10f, 180f, 20f), MyMovementOption.maxSlopeAngle, 1f, 75f);
new Rect(sWidth - 180f, yPos + 10f, 160f, 20f), MyMovementOption.maxSlopeAngle, 1f, 75f);
yPos += 20f;
GUI.Label(new Rect(sWidth - 350f, yPos, 180f, 30f), $"TimeScale : {Time.timeScale: 0.00}",
RTLabelStyle);
Time.timeScale = GUI.HorizontalSlider(
new Rect(sWidth - 180f, yPos + 10f, 160f, 20f), Time.timeScale, 0f, 1f);
Time.fixedDeltaTime = 0.02f * Time.timeScale;
labelStyle.fontSize = Math.Max(guiTextSize, 20);
}

View File

@ -0,0 +1,65 @@
using UnityEngine;
using UnityEngine.InputSystem;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class ComboAttackBehavior : StateMachineBehaviour
{
private CombatPlayerController combatPlayerController;
[SerializeField] private LayerMask groundLayer;
public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
if (combatPlayerController == null)
{
combatPlayerController = animator.GetComponentInParent<CombatPlayerController>();
}
var animationLength = stateInfo.length;
animator.speed = animationLength / combatPlayerController.GetAttackTime();
combatPlayerController.SetEnableMoving(false);
combatPlayerController.SetIsAttacking(true);
combatPlayerController.SetIsComboPossible(true);
if (combatPlayerController.MyCurrentState.useMouseAttack)
{
var mousePos = Mouse.current.position.ReadValue();
var ray = CameraManager.Inst.MainCam.ScreenPointToRay(mousePos);
if (!Physics.Raycast(ray, out var hit, float.MaxValue, groundLayer)) return;
var attackDirection = (hit.point - combatPlayerController.GetCurrentPosition()).normalized;
attackDirection.y = 0f;
combatPlayerController.SetPreviousMoveDirection(attackDirection);
}
}
public override void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
if (stateInfo.normalizedTime < 0.2f)
{
combatPlayerController.MoveToCurrentDirection(1f);
}
else if (combatPlayerController.GetIsComboAttacking() && stateInfo.normalizedTime is > 0.4f and < 0.45f)
{
combatPlayerController.MoveToCurrentDirection(10f);
}
if (stateInfo.normalizedTime >= 1f)
{
animator.SetBool(CombatPlayerController.IsAttackingHash, false);
}
}
public override void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
animator.speed = 1f;
combatPlayerController.SetIsComboPossible(false);
combatPlayerController.SetIsComboAttacking(false);
combatPlayerController.SetIsAttacking(false);
combatPlayerController.SetEnableMoving(true);
}
}
}

View File

@ -3,7 +3,7 @@ using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class Dash : StateMachineBehaviour
public class DashBehavior : StateMachineBehaviour
{
private CombatPlayerController combatPlayerController;
@ -16,6 +16,7 @@ namespace BlueWaterProject
var animationLength = stateInfo.length;
animator.speed = animationLength / combatPlayerController.GetDashTime();
combatPlayerController.SetIsInvincibility(true);
combatPlayerController.SetIsDashing(true);
combatPlayerController.SetEnableDashing(false);
}
@ -32,7 +33,7 @@ namespace BlueWaterProject
{
animator.speed = 1f;
combatPlayerController.SetIsDashing(false);
animator.SetBool(PhysicsMovement.IsDashingHash, false);
combatPlayerController.SetIsInvincibility(false);
combatPlayerController.CoolDown(combatPlayerController.GetDashCooldown(), () => combatPlayerController.SetEnableDashing(true));
}

View File

@ -1,11 +1,13 @@
using System;
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class ComboAttack : StateMachineBehaviour
public class ReadyToTheWaltzOfTheSwordBehavior : StateMachineBehaviour
{
private CombatPlayerController combatPlayerController;
private TheWaltzOfTheSword theWaltzOfTheSword;
public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
@ -13,28 +15,24 @@ namespace BlueWaterProject
{
combatPlayerController = animator.GetComponentInParent<CombatPlayerController>();
}
var animationLength = stateInfo.length;
animator.speed = animationLength / combatPlayerController.GetAttackTime();
if (theWaltzOfTheSword == null)
{
theWaltzOfTheSword = combatPlayerController.MainSkillObject.GetComponent<TheWaltzOfTheSword>();
}
combatPlayerController.SetIsAttacking(true);
combatPlayerController.SetIsComboPossible(true);
var animationLength = stateInfo.length;
animator.speed = animationLength / theWaltzOfTheSword.castingTime;
}
public override void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
if (stateInfo.normalizedTime >= 1f)
{
animator.SetBool(CombatPlayerController.IsAttackingHash, false);
}
}
public override void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
animator.speed = 1f;
combatPlayerController.SetIsComboPossible(false);
combatPlayerController.SetIsComboAttacking(false);
combatPlayerController.SetIsAttacking(false);
animator.SetBool(CombatPlayerController.IsAttackingHash, false);
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 905d1054b17eb674bb34e1798f47c650

View File

@ -0,0 +1,164 @@
using System;
using System.Linq;
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class TheWaltzOfTheSwordBehavior : StateMachineBehaviour
{
private enum Direction
{
NONE = -1,
LEFT,
BACK,
RIGHT
}
private CombatPlayerController combatPlayerController;
private TheWaltzOfTheSword theWaltzOfTheSword;
private int currentHitNum;
private int hitCount;
private float time;
private float intervalTime;
private Direction currentDirection;
private bool previousLeft;
private bool isMoved;
public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
if (combatPlayerController == null)
{
combatPlayerController = animator.GetComponentInParent<CombatPlayerController>();
}
if (theWaltzOfTheSword == null)
{
theWaltzOfTheSword = combatPlayerController.MainSkillObject.GetComponent<TheWaltzOfTheSword>();
}
var animationLength = stateInfo.length;
animator.speed = animationLength / theWaltzOfTheSword.skillDuration;
intervalTime = stateInfo.length / 6f;
combatPlayerController.SetUseGravity(false);
combatPlayerController.SetIsTrigger(true);
combatPlayerController.SetIsInvincibility(true);
currentDirection = Direction.BACK;
previousLeft = false;
isMoved = false;
currentHitNum = 0;
hitCount = 0;
time = 0f;
}
public override void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
time += Time.deltaTime;
if (hitCount < 6)
{
if (!isMoved)
{
MovePoint(theWaltzOfTheSword.HitColliders[currentHitNum], currentDirection);
}
else if (time >= intervalTime)
{
ExecuteAttackRoutine(animator);
}
}
// 모든 공격 시퀀스가 완료된 경우
if (hitCount >= 6)
{
animator.SetBool(CombatPlayerController.IsActivateMainSkillHash, false);
}
}
public override void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
animator.speed = 1f;
if (theWaltzOfTheSword.returnToStartPosition)
{
combatPlayerController.Move(theWaltzOfTheSword.SkillInputData.startPosition);
}
combatPlayerController.SetIsTrigger(false);
combatPlayerController.SetUseGravity(true);
combatPlayerController.SetIsInvincibility(false);
combatPlayerController.SetEnableMoving(true);
}
private void ExecuteAttackRoutine(Animator animator)
{
theWaltzOfTheSword.SkillAttackTiming(theWaltzOfTheSword.HitColliders[currentHitNum]);
hitCount++;
AddCurrentNum();
for (var i = 0; i < theWaltzOfTheSword.HitSize; i++)
{
if (!theWaltzOfTheSword.IsTargetAlive(theWaltzOfTheSword.HitColliders[currentHitNum]))
{
AddCurrentNum();
continue;
}
isMoved = false;
time = 0f;
return;
}
animator.SetBool(CombatPlayerController.IsActivateMainSkillHash, false);
}
private void AddCurrentNum()
{
currentHitNum = (currentHitNum + 1) % theWaltzOfTheSword.HitSize;
}
private void MovePoint(Collider hitCollider, Direction direction)
{
var center = hitCollider.bounds.center;
var addX = 0f;
var addZ = 0f;
switch(direction)
{
case Direction.NONE:
break;
case Direction.LEFT:
combatPlayerController.SetPreviousMoveDirection(Vector3.right);
addX = -hitCollider.bounds.extents.x;
currentDirection = Direction.BACK;
break;
case Direction.BACK:
addZ = hitCollider.bounds.extents.z;
if (previousLeft)
{
currentDirection = Direction.RIGHT;
}
else
{
currentDirection = Direction.LEFT;
}
previousLeft = !previousLeft;
break;
case Direction.RIGHT:
combatPlayerController.SetPreviousMoveDirection(Vector3.left);
addX = hitCollider.bounds.extents.x;
currentDirection = Direction.BACK;
break;
default:
throw new ArgumentOutOfRangeException(nameof(direction), direction, null);
}
var newPosition = new Vector3(center.x + addX, combatPlayerController.transform.position.y, center.z + addZ);
combatPlayerController.Move(newPosition);
isMoved = true;
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: fc7f327f78a10164b8a90f10b8eefc5f

View File

@ -405,6 +405,8 @@ namespace BlueWaterProject
Destroy(gameObject, 2f);
}
public float GetCurrentHp() => CurrentHp;
// IAnimatorBridge
public virtual void AttackTiming()
{

View File

@ -321,6 +321,8 @@ namespace BlueWaterProject
Destroy(hpSlider.gameObject, 2f);
Destroy(gameObject, 2f);
}
public float GetCurrentHp() => CurrentHp;
// IAiView
[field: Title("IAiView")]

View File

@ -112,6 +112,8 @@ namespace BlueWaterProject
{
Destroy(gameObject, 2f);
}
public float GetCurrentHp() => CurrentHp;
#endregion

View File

@ -29,6 +29,11 @@ namespace BlueWaterProject
throw new NotImplementedException();
}
public virtual float GetCurrentHp()
{
throw new NotImplementedException();
}
public virtual void OnMove(InputValue value) // WASD
{
movementInput = value.Get<Vector2>();

View File

@ -223,8 +223,8 @@ namespace BlueWaterProject
base.OnEnable();
playerInput.actions.FindAction("Attack").performed += OnAttackEvent;
playerInput.actions.FindAction("UseSkill").performed += OnUseSkillEvent;
playerInput.actions.FindAction("UseSkill").canceled += OnCancelSkillEvent;
playerInput.actions.FindAction("ActivateMainSkill").performed += OnUseSkillEvent;
playerInput.actions.FindAction("ActivateMainSkill").canceled += OnCancelSkillEvent;
}
protected override void OnDisable()
@ -232,8 +232,8 @@ namespace BlueWaterProject
base.OnDisable();
playerInput.actions.FindAction("Attack").performed -= OnAttackEvent;
playerInput.actions.FindAction("UseSkill").performed -= OnUseSkillEvent;
playerInput.actions.FindAction("UseSkill").canceled -= OnCancelSkillEvent;
playerInput.actions.FindAction("ActivateMainSkill").performed -= OnUseSkillEvent;
playerInput.actions.FindAction("ActivateMainSkill").canceled -= OnCancelSkillEvent;
}
protected override void Update()
@ -266,10 +266,10 @@ namespace BlueWaterProject
var changeHp = Mathf.Max(CurrentHp - attackerPower, 0);
SetCurrentHp(changeHp);
if (InIslandCamera.Inst.InIslandCam)
{
VisualFeedbackManager.Inst.CameraShake(InIslandCamera.Inst.InIslandCam);
}
// if (InIslandCamera.Inst.InIslandCam)
// {
// VisualFeedbackManager.Inst.CameraShake(InIslandCamera.Inst.InIslandCam);
// }
// 죽었는지 체크
if (changeHp == 0f)

View File

@ -2,7 +2,6 @@ using System.Collections;
using Sirenix.OdinInspector;
using UnityEngine;
using UnityEngine.InputSystem;
using Vignette = UnityEngine.Rendering.Universal.Vignette;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
@ -441,6 +440,8 @@ namespace BlueWaterProject
{
print("배 파괴 - 현재 체력 : " + CurrentHp);
}
public float GetCurrentHp() => CurrentHp;
#endregion

View File

@ -0,0 +1,65 @@
using System.Collections.Generic;
using Cinemachine;
using Sirenix.OdinInspector;
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class CombatCamera : MonoBehaviour
{
[Title("초기화 방식")]
[SerializeField] private bool autoInit = true;
[field: Title("카메라")]
[field: SerializeField] public CinemachineVirtualCamera BaseCombatCamera { get; private set; }
private GameObject cinemachineCameras;
private List<CinemachineVirtualCamera> cineCamList;
private const int CINE_CAM_NUM = 1;
private void Awake()
{
if (autoInit)
{
Init();
}
CameraManager.Inst.CombatCamera = this;
CameraManager.Inst.MainCam = Camera.main;
}
[Button("셋팅 초기화")]
private void Init()
{
cinemachineCameras = GameObject.Find("CinemachineCameras");
if (!cinemachineCameras)
{
Debug.LogError("cineCams is null error");
return;
}
BaseCombatCamera = cinemachineCameras.transform.Find("BaseCombatCamera")?.GetComponent<CinemachineVirtualCamera>();
if (!BaseCombatCamera)
{
Debug.LogError("BaseShipCam is null error");
return;
}
cineCamList = new List<CinemachineVirtualCamera>(CINE_CAM_NUM)
{
BaseCombatCamera
};
foreach (var cam in cineCamList)
{
cam.Priority = 0;
}
BaseCombatCamera.Priority = 1;
CameraManager.Inst.MainCam = Camera.main;
}
}
}

View File

@ -0,0 +1,46 @@
using Sirenix.OdinInspector;
using UnityEngine;
using UnityEngine.UI;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class CombatUi : MonoBehaviour
{
[Title("초기화 방식")]
[SerializeField] private bool autoInit = true;
[field: Title("UI")]
[field: SerializeField] public Canvas MainCanvas { get; private set; }
[field: SerializeField] public SkillUi MainSkillUi { get; private set; }
[Button("셋팅 초기화")]
private void Init()
{
MainCanvas = GetComponent<Canvas>();
if (!MainCanvas)
{
Debug.LogError("canvas is null error");
return;
}
MainSkillUi = MainCanvas.transform.Find("MainSkillUi").GetComponent<SkillUi>();
}
private void Awake()
{
if (autoInit)
{
Init();
}
UiManager.Inst.CombatUi = this;
}
private void Update()
{
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 46e87f89bdfbf204490afa0109f8a7fa
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -75,25 +75,25 @@ namespace BlueWaterProject
public void SetCurrentInIslandPlayer(IInIslandPlayer inIslandPlayer)
{
PlayerInput currentPlayerInput;
if (CurrentInIslandPlayer != null)
{
currentPlayerInput = CurrentInIslandPlayer.Transform.GetComponent<PlayerInput>();
if (currentPlayerInput != null)
{
currentPlayerInput.enabled = false;
}
}
CurrentInIslandPlayer = inIslandPlayer;
InIslandCamera.Inst.SetTarget(inIslandPlayer.Transform);
currentPlayerInput = CurrentInIslandPlayer.Transform.GetComponent<PlayerInput>();
if (currentPlayerInput != null)
{
currentPlayerInput.enabled = true;
}
// PlayerInput currentPlayerInput;
//
// if (CurrentInIslandPlayer != null)
// {
// currentPlayerInput = CurrentInIslandPlayer.Transform.GetComponent<PlayerInput>();
// if (currentPlayerInput != null)
// {
// currentPlayerInput.enabled = false;
// }
// }
//
// CurrentInIslandPlayer = inIslandPlayer;
// InIslandCamera.Inst.SetTarget(inIslandPlayer.Transform);
//
// currentPlayerInput = CurrentInIslandPlayer.Transform.GetComponent<PlayerInput>();
// if (currentPlayerInput != null)
// {
// currentPlayerInput.enabled = true;
// }
}
}
}

View File

@ -1,23 +0,0 @@
using Cinemachine;
using Sirenix.OdinInspector;
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class InIslandCamera : Singleton<InIslandCamera>
{
[field: Required("InIslandCamera를 넣어주세요.")]
[field: SerializeField] public CinemachineVirtualCamera InIslandCam { get; private set; }
/// <summary>
/// LookAt target and follow target
/// </summary>
/// <param name="obj"></param>
public void SetTarget(Transform obj)
{
InIslandCam.LookAt = obj;
InIslandCam.Follow = obj;
}
}
}

View File

@ -5,7 +5,8 @@ namespace BlueWaterProject
{
public interface IDamageable
{
public void TakeDamage(float attackerPower, Vector3? attackPos = null);
public void Die();
void TakeDamage(float attackerPower, Vector3? attackPos = null);
void Die();
float GetCurrentHp();
}
}

View File

@ -0,0 +1,10 @@
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public interface ISkill
{
SkillInputData SkillInputData { get; set; }
void ActivateSkill();
bool EnableSkill();
}
}

View File

@ -1,12 +0,0 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public interface ISkillUser
{
void UseSkill(SkillBase skill, SkillInputData inputData);
}
}

View File

@ -1,15 +1,73 @@
using System;
using System.Collections;
using Sirenix.OdinInspector;
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public abstract class SkillBase : MonoBehaviour
[Serializable]
public class SkillInputData
{
[field: SerializeField] public float Cooldown { get; set; }
[field: SerializeField] public float Range { get; set; }
[Title("초기화 데이터")]
public Collider playerCollider;
public Rigidbody playerRb;
public Transform playerVisualLook;
public LayerMask targetLayer;
public SkillUi skillUi;
public abstract void Activate(SkillInputData inputData);
[Title("실시간 데이터")]
public Vector3 startPosition;
protected abstract void ApplyEffect(GameObject target);
public void InitInputData(Collider collider, Rigidbody rb, Transform visualLook, LayerMask target, SkillUi ui)
{
playerCollider = collider;
playerRb = rb;
playerVisualLook = visualLook;
targetLayer = target;
skillUi = ui;
}
public void UpdateInputData(Vector3 start)
{
startPosition = start;
}
}
public abstract class SkillBase : MonoBehaviour, ISkill
{
[Title("기본 설정")]
public string skillName;
public bool enableSkill = true;
public float damage;
public float cooldown;
public float range;
public float castingTime;
public float skillDuration;
[field: DisableIf("@true")]
[field: SerializeField] public SkillInputData SkillInputData { get; set; }
public abstract void ActivateSkill();
public virtual bool EnableSkill() => enableSkill;
public void CoolDown(float waitTime, Action onCooldownComplete = null)
{
StartCoroutine(CoolDownCoroutine(waitTime, onCooldownComplete));
}
private IEnumerator CoolDownCoroutine(float waitTime, Action onCooldownComplete = null)
{
var time = 0f;
while (time <= waitTime)
{
time += Time.deltaTime;
yield return null;
}
onCooldownComplete?.Invoke();
}
}
}

View File

@ -1,13 +0,0 @@
using System;
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
[Serializable]
public class SkillInputData
{
[field: SerializeField] public Vector3 TargetPosition { get; set; }
[field: SerializeField] public GameObject TargetObject { get; set; }
}
}

View File

@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 69b5f511a1d916c44b583e01a50d7b69

View File

@ -1,23 +1,52 @@
using System.Collections.Generic;
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class SkillManager : Singleton<SkillManager>
{
private List<SkillBase> skillList = new();
[SerializeField] private List<GameObject> skillPrefab = new();
private List<SkillBase> skillList;
public void RegisterSkill(SkillBase skill)
protected override void OnAwake()
{
skillList.Add(skill);
}
public void ActivateSkill(ISkillUser user, int skillIndex, SkillInputData inputData)
{
if (skillIndex >= 0 && skillIndex < skillList.Count)
var skillNum = skillPrefab.Count;
skillList = new List<SkillBase>(skillNum);
for (var i = 0; i < skillNum; i++)
{
user.UseSkill(skillList[skillIndex], inputData);
var skill = skillPrefab[i].GetComponent<SkillBase>();
AddSkill(skill);
}
}
public void AddSkill(SkillBase skill)
{
if (!skillList.Contains(skill))
{
skillList.Add(skill);
}
}
public SkillBase FindSkill(string skillName)
{
return skillList.Find(s => s.skillName == skillName);
}
public SkillBase InstantiateSkill(string skillName)
{
var skill = FindSkill(skillName);
return skill ? Instantiate(skill.gameObject, Vector3.zero, Quaternion.identity).GetComponent<SkillBase>() : null;
}
// public void ActivateSkill(ISkillUser user, int skillIndex, SkillInputData inputData)
// {
// if (skillIndex >= 0 && skillIndex < skillList.Count)
// {
// user.ActivateSkill(skillList[skillIndex], inputData);
// }
// }
}
}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 739234759b1614d40b223ee6336ab166
guid: ef791b8610023cb4a8c2428c248f6160
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -0,0 +1,81 @@
using System.Linq;
using Sirenix.OdinInspector;
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class TheWaltzOfTheSword : SkillBase
{
[Title("추가 설정")]
public bool returnToStartPosition;
public bool isHitStop = true;
[ShowIf("@isHitStop")]
public float hitStopDuration = 0.3f;
[field: SerializeField] public Collider[] HitColliders { get; private set; } = new Collider[MAX_HIT_NUM];
public int HitSize { get; private set; }
private const int MAX_HIT_NUM = 6;
public override void ActivateSkill()
{
SortCollidersByDistance();
enableSkill = false;
CoolDown(cooldown, () => enableSkill = true);
SkillInputData.skillUi.Cooldown(cooldown);
}
public override bool EnableSkill()
{
if (!enableSkill) return false;
HitColliders = new Collider[MAX_HIT_NUM];
HitSize = Physics.OverlapSphereNonAlloc(SkillInputData.startPosition, range, HitColliders,SkillInputData.targetLayer);
var readySkill = HitSize > 0;
return readySkill;
}
private void SortCollidersByDistance()
{
HitColliders = HitColliders
.Where(c => c != null)
.OrderBy(c => (c.transform.position - transform.position).sqrMagnitude)
.ToArray();
}
public void SkillAttackTiming(Collider hitCollider)
{
var iDamageable = hitCollider.GetComponent<IDamageable>();
iDamageable.TakeDamage(damage);
if (iDamageable.GetCurrentHp() == 0f)
{
if (isHitStop)
{
VisualFeedbackManager.Inst.CameraShake(CameraManager.Inst.CombatCamera.BaseCombatCamera);
VisualFeedbackManager.Inst.TriggerHitStop(hitStopDuration);
}
}
}
public bool IsTargetAlive(Collider hitCollider)
{
if (!hitCollider) return false;
var damageable = hitCollider.GetComponent<IDamageable>();
if (damageable != null && damageable.GetCurrentHp() > 0)
{
return true;
}
return false;
}
public bool AllTargetsAreDead()
{
return HitColliders.All(c => c == null || !IsTargetAlive(c));
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 2748ef62a9ba8734986610a7072e7155

View File

@ -1,3 +1,4 @@
using System;
using Sirenix.OdinInspector;
using UnityEngine;
using Random = UnityEngine.Random;
@ -61,5 +62,10 @@ namespace BlueWaterProject
{
Destroy(bulletEffect.gameObject);
}
public virtual float GetCurrentHp()
{
throw new NotImplementedException();
}
}
}

View File

@ -66,47 +66,47 @@ namespace BlueWaterProject
private void SpawnInIslandPlayer(Vector3 spawnPos, Quaternion spawnRotation)
{
// if (Physics.Raycast(spawnPos, Vector3.down, out var hit, 10f, groundLayer))
// // if (Physics.Raycast(spawnPos, Vector3.down, out var hit, 10f, groundLayer))
// // {
// // print(hit.point.y);
// // spawnPos.y = hit.point.y;
// // }
//
// var islandPlayer = Instantiate(GameManager.Inst.InIslandPlayerPrefab, spawnPos, spawnRotation, spawnLocation);
// islandPlayer.name = IN_ISLAND_PLAYER_NAME;
// islandPlayer.gameObject.SetActive(true);
//
// var playerInput = islandPlayer.GetComponent<PlayerInput>();
// if (playerInput == null)
// {
// print(hit.point.y);
// spawnPos.y = hit.point.y;
// playerInput = islandPlayer.transform.AddComponent<PlayerInput>();
// }
var islandPlayer = Instantiate(GameManager.Inst.InIslandPlayerPrefab, spawnPos, spawnRotation, spawnLocation);
islandPlayer.name = IN_ISLAND_PLAYER_NAME;
islandPlayer.gameObject.SetActive(true);
var playerInput = islandPlayer.GetComponent<PlayerInput>();
if (playerInput == null)
{
playerInput = islandPlayer.transform.AddComponent<PlayerInput>();
}
var desiredActionMap = playerInput.actions.FindActionMap(PLAYER_NAME);
if (desiredActionMap == null)
{
print($"Action map named '{PLAYER_NAME}' not found in player actions!");
return;
}
playerInput.defaultActionMap = PLAYER_NAME;
// if (GameManager.Inst.ShipPlayer != null)
//
// var desiredActionMap = playerInput.actions.FindActionMap(PLAYER_NAME);
// if (desiredActionMap == null)
// {
// GameManager.Inst.ShipPlayer.GetComponent<PlayerInput>().enabled = false;
// print($"Action map named '{PLAYER_NAME}' not found in player actions!");
// return;
// }
playerInput.enabled = true;
var inIslandPlayer = islandPlayer.GetComponent<InIslandPlayer>();
if (inIslandPlayer == null)
{
inIslandPlayer = islandPlayer.AddComponent<InIslandPlayer>();
}
InIslandCamera.Inst.SetTarget(islandPlayer.transform);
GameManager.Inst.SetCurrentInIslandPlayer(inIslandPlayer);
//
// playerInput.defaultActionMap = PLAYER_NAME;
//
// // if (GameManager.Inst.ShipPlayer != null)
// // {
// // GameManager.Inst.ShipPlayer.GetComponent<PlayerInput>().enabled = false;
// // }
//
// playerInput.enabled = true;
//
// var inIslandPlayer = islandPlayer.GetComponent<InIslandPlayer>();
// if (inIslandPlayer == null)
// {
// inIslandPlayer = islandPlayer.AddComponent<InIslandPlayer>();
// }
//
// InIslandCamera.Inst.SetTarget(islandPlayer.transform);
//
// GameManager.Inst.SetCurrentInIslandPlayer(inIslandPlayer);
}
[DisableIf("@crewmatePrefabIndex >= GameManager.Inst.CrewmatePrefabList.Count || crewmatePrefabIndex < 0")]

View File

@ -0,0 +1,41 @@
using System;
using System.Collections;
using Doozy.Runtime.UIManager.Containers;
using UnityEngine;
using UnityEngine.UI;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
[Serializable]
public class SkillUi : MonoBehaviour
{
[field: SerializeField] public GameObject Obj { get; set; }
[field: SerializeField] public Image Icon { get; set; }
[field: SerializeField] public Image Fill { get; set; }
[field: SerializeField] public UIView Fade { get; set; }
public void Cooldown(float waitTime)
{
StartCoroutine(CooldownCoroutine(waitTime));
}
private void Start()
{
Fill.fillAmount = 0f;
}
public IEnumerator CooldownCoroutine(float waitTime)
{
Fill.fillAmount = 1f;
while (Fill.fillAmount > 0f)
{
Fill.fillAmount -= Time.deltaTime / waitTime;
yield return null;
}
Fade.Show();
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 879121df51fe6b848b90643a85533f9b

View File

@ -11,11 +11,15 @@ namespace BlueWaterProject
[Title("Mouse")]
private Texture2D cursorTexture;
[Title("Ocean")]
public OceanUi OceanUi { get; set; }
[Title("Tycoon")]
public TycoonUi TycoonUi { get; set; }
[Title("Combat")]
public CombatUi CombatUi { get; set; }
private void Start()
{

View File

@ -262,19 +262,21 @@ MonoBehaviour:
maxHp: 100
maxHitNum: 10
attackDamage: 10
attackTime: 0.7
attackRange: 1.5
attackAngle: 180
comboTime: 0.5
targetLayer:
serializedVersion: 2
m_Bits: 512
m_Bits: 8192
<MyCurrentState>k__BackingField:
isInvincibility: 0
isAttacking: 0
isComboPossible: 0
isComboAttacking: 0
<MyCurrentValue>k__BackingField:
currentHp: 0
hitColliders: []
mainSkillName: TheWaltzOfTheSword
--- !u!114 &803982772767150407
MonoBehaviour:
m_ObjectHideFlags: 0
@ -305,6 +307,7 @@ MonoBehaviour:
dashTime: 0.2
dashCooldown: 0.5
<MyCurrentState>k__BackingField:
enableMoving: 1
isMoving: 0
isGrounded: 0
isOnSlope: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 27c025b40bf0ac240bc814fd06837cf9
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,71 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &3729466749377576705
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8361458334772768619}
- component: {fileID: 5112256407064551989}
m_Layer: 0
m_Name: TheWaltzOfTheSword
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8361458334772768619
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3729466749377576705}
serializedVersion: 2
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_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &5112256407064551989
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3729466749377576705}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2748ef62a9ba8734986610a7072e7155, type: 3}
m_Name:
m_EditorClassIdentifier:
skillName: TheWaltzOfTheSword
enableSkill: 1
damage: 30
cooldown: 5
range: 10
castingTime: 0.3
skillDuration: 3
<SkillInputData>k__BackingField:
playerCollider: {fileID: 0}
playerRb: {fileID: 0}
playerVisualLook: {fileID: 0}
targetLayer:
serializedVersion: 2
m_Bits: 0
startPosition: {x: 0, y: 0, z: 0}
returnToStartPosition: 0
isHitStop: 1
hitStopDuration: 0.3
<HitColliders>k__BackingField:
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 3a62bfa9fbff9a740a8b945873365f44
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,5 +1,30 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1101 &-8486779952133263134
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: isActivateMainSkill
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 5288804090290371663}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 0.64285713
m_HasExitTime: 0
m_HasFixedDuration: 0
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!206 &-8385716840509112995
BlendTree:
m_ObjectHideFlags: 1
@ -72,6 +97,31 @@ AnimatorStateTransition:
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1101 &-6446804397988170077
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 2
m_ConditionEvent: isMoving
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 2904739495372590564}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 0.59016395
m_HasExitTime: 0
m_HasFixedDuration: 0
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!114 &-5518085723798809257
MonoBehaviour:
m_ObjectHideFlags: 1
@ -98,6 +148,56 @@ MonoBehaviour:
m_EditorClassIdentifier:
StartPosition: {x: 0, y: 0}
AnimationSpeed: {x: 1, y: 1}
--- !u!1101 &-5095364130690757460
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: isActivateMainSkill
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 0}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 0.64285713
m_HasExitTime: 0
m_HasFixedDuration: 0
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1101 &-4952400126227690250
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: isDashing
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 9191734135348127121}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 0.64285713
m_HasExitTime: 0
m_HasFixedDuration: 0
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1101 &-4577426398346569303
AnimatorStateTransition:
m_ObjectHideFlags: 1
@ -179,6 +279,53 @@ AnimatorStateTransition:
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!206 &-3909535805539343691
BlendTree:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Blend Tree
m_Childs:
- serializedVersion: 2
m_Motion: {fileID: 7400000, guid: ab6fed51b6721c54b93fa13229c486d8, type: 2}
m_Threshold: 0
m_Position: {x: 0, y: -1}
m_TimeScale: 1
m_CycleOffset: 0
m_DirectBlendParameter: Blend
m_Mirror: 0
- serializedVersion: 2
m_Motion: {fileID: 7400000, guid: 8225cf4fb8d780f4da74eb343488237a, type: 2}
m_Threshold: 0.33333334
m_Position: {x: -0.9, y: 0}
m_TimeScale: 1
m_CycleOffset: 0
m_DirectBlendParameter: Blend
m_Mirror: 0
- serializedVersion: 2
m_Motion: {fileID: 7400000, guid: 8225cf4fb8d780f4da74eb343488237a, type: 2}
m_Threshold: 0.6666667
m_Position: {x: 0.9, y: 0}
m_TimeScale: 1
m_CycleOffset: 0
m_DirectBlendParameter: Blend
m_Mirror: 0
- serializedVersion: 2
m_Motion: {fileID: 7400000, guid: 8cd6c873f7a755549b544fa90b733869, type: 2}
m_Threshold: 1
m_Position: {x: 0, y: 1}
m_TimeScale: 1
m_CycleOffset: 0
m_DirectBlendParameter: Blend
m_Mirror: 0
m_BlendParameter: xDirection
m_BlendParameterY: zDirection
m_MinThreshold: 0
m_MaxThreshold: 1
m_UseAutomaticThresholds: 1
m_NormalizedBlendValues: 0
m_BlendType: 1
--- !u!1101 &-3809054890995379507
AnimatorStateTransition:
m_ObjectHideFlags: 1
@ -328,6 +475,18 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!114 &-623268372849783563
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7d04132e6724ede4ea1dacf9bcc84ec0, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1102 &-618453422930481919
AnimatorState:
serializedVersion: 6
@ -341,6 +500,7 @@ AnimatorState:
m_Transitions:
- {fileID: -3809054890995379507}
- {fileID: -4577426398346569303}
- {fileID: -8486779952133263134}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@ -356,6 +516,18 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!114 &-485676201465698196
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fc7f327f78a10164b8a90f10b8eefc5f, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1101 &-27374218785730259
AnimatorStateTransition:
m_ObjectHideFlags: 1
@ -423,6 +595,12 @@ AnimatorController:
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
- m_Name: isActivateMainSkill
m_Type: 4
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
@ -436,6 +614,91 @@ AnimatorController:
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1101 &276457862005141075
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 2
m_ConditionEvent: isActivateMainSkill
m_EventTreshold: 0
- m_ConditionMode: 2
m_ConditionEvent: isMoving
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 2904739495372590564}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 0
m_HasFixedDuration: 0
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1101 &750437929063984674
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 2
m_ConditionEvent: isActivateMainSkill
m_EventTreshold: 0
- m_ConditionMode: 1
m_ConditionEvent: isMoving
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -618453422930481919}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 0
m_HasFixedDuration: 0
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &937190665916713420
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: MainSkill
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 276457862005141075}
- {fileID: 750437929063984674}
m_StateMachineBehaviours:
- {fileID: -485676201465698196}
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: 17f2b42253dd3d3469dba4824a446877, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!206 &1924325176296308351
BlendTree:
m_ObjectHideFlags: 1
@ -512,6 +775,28 @@ AnimatorStateTransition:
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 0
--- !u!1101 &2391347082371453877
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 937190665916713420}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 1
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &2904739495372590564
AnimatorState:
serializedVersion: 6
@ -525,6 +810,7 @@ AnimatorState:
m_Transitions:
- {fileID: 3163530354401825757}
- {fileID: -7583967420879830985}
- {fileID: 6486267535032140894}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@ -656,6 +942,33 @@ BlendTree:
m_UseAutomaticThresholds: 1
m_NormalizedBlendValues: 0
m_BlendType: 1
--- !u!1102 &5288804090290371663
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: ReadyToMainSkill
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 2391347082371453877}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: -3909535805539343691}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1107 &6036754318826198548
AnimatorStateMachine:
serializedVersion: 6
@ -676,18 +989,49 @@ AnimatorStateMachine:
m_Position: {x: 450, y: 210, z: 0}
- serializedVersion: 1
m_State: {fileID: -1391371825940290833}
m_Position: {x: 460, y: 0, z: 0}
m_Position: {x: 300, y: 0, z: 0}
- serializedVersion: 1
m_State: {fileID: 937190665916713420}
m_Position: {x: 900, y: -100, z: 0}
- serializedVersion: 1
m_State: {fileID: 5288804090290371663}
m_Position: {x: 600, y: -100, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions:
- {fileID: 2368236931724677174}
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 240, y: 0, z: 0}
m_AnyStatePosition: {x: 40, y: 0, z: 0}
m_EntryPosition: {x: 40, y: 100, z: 0}
m_ExitPosition: {x: 990, y: 110, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 2904739495372590564}
--- !u!1101 &6486267535032140894
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: isActivateMainSkill
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 5288804090290371663}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionOffset: 0
m_ExitTime: 0.59016395
m_HasExitTime: 0
m_HasFixedDuration: 0
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!206 &7176258330419148192
BlendTree:
m_ObjectHideFlags: 1
@ -747,6 +1091,9 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 1155782f2a5497e448bf8cc52985612c, type: 3}
m_Name:
m_EditorClassIdentifier:
groundLayer:
serializedVersion: 2
m_Bits: 8
--- !u!1102 &9191734135348127121
AnimatorState:
serializedVersion: 6

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 50a1723014483a24e9804f6ee150c5d8
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,81 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: BackReadyTheWaltzOfTheSword
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves:
- serializedVersion: 2
curve:
- time: 0
value: {fileID: 1825319529750142893, guid: 3799083e0fb2447b58c45499eaf37bd0,
type: 3}
- time: 0.15
value: {fileID: -986075251332770354, guid: 3799083e0fb2447b58c45499eaf37bd0,
type: 3}
- time: 0.3
value: {fileID: -3660300481513293558, guid: 3799083e0fb2447b58c45499eaf37bd0,
type: 3}
attribute: m_Sprite
path:
classID: 212
script: {fileID: 0}
flags: 2
m_SampleRate: 100
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 0
script: {fileID: 0}
typeID: 212
customType: 23
isPPtrCurve: 1
isIntCurve: 0
isSerializeReferenceCurve: 0
pptrCurveMapping:
- {fileID: 1825319529750142893, guid: 3799083e0fb2447b58c45499eaf37bd0, type: 3}
- {fileID: -986075251332770354, guid: 3799083e0fb2447b58c45499eaf37bd0, type: 3}
- {fileID: -3660300481513293558, guid: 3799083e0fb2447b58c45499eaf37bd0, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.31
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 0
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8cd6c873f7a755549b544fa90b733869
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,81 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: FrontReadyTheWaltzOfTheSword
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves:
- serializedVersion: 2
curve:
- time: 0
value: {fileID: 8842556938668532038, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 0.15
value: {fileID: 2482873589965228132, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 0.3
value: {fileID: -2708405932515165879, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
attribute: m_Sprite
path:
classID: 212
script: {fileID: 0}
flags: 2
m_SampleRate: 100
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 0
script: {fileID: 0}
typeID: 212
customType: 23
isPPtrCurve: 1
isIntCurve: 0
isSerializeReferenceCurve: 0
pptrCurveMapping:
- {fileID: 8842556938668532038, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: 2482873589965228132, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -2708405932515165879, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.31
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 0
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ab6fed51b6721c54b93fa13229c486d8
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,81 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: SideReadyTheWaltzOfTheSword
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves:
- serializedVersion: 2
curve:
- time: 0
value: {fileID: 7414131888971756592, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 0.15
value: {fileID: -8491270915927727279, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 0.3
value: {fileID: -3328434381802528436, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
attribute: m_Sprite
path:
classID: 212
script: {fileID: 0}
flags: 2
m_SampleRate: 100
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 0
script: {fileID: 0}
typeID: 212
customType: 23
isPPtrCurve: 1
isIntCurve: 0
isSerializeReferenceCurve: 0
pptrCurveMapping:
- {fileID: 7414131888971756592, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: -8491270915927727279, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: -3328434381802528436, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.31
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 0
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8225cf4fb8d780f4da74eb343488237a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,393 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: TheWaltzOfTheSword
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves:
- serializedVersion: 2
curve:
- time: 0
value: {fileID: 676376719021367935, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 0.04
value: {fileID: 7075474257182208009, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 0.08
value: {fileID: -7330508827711092842, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 0.12
value: {fileID: 1587993407618024185, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 0.15
value: {fileID: 7125293203650736703, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 0.19
value: {fileID: -1886102513309244554, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 0.23
value: {fileID: -2236658673280625294, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 0.27
value: {fileID: 7464747088723063719, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 0.31
value: {fileID: -7053859854731117362, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 0.35
value: {fileID: -246377619162188687, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 0.38
value: {fileID: -8910233782443103351, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 0.42
value: {fileID: 5074171851503986758, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 0.46
value: {fileID: -593530978813535299, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 0.5
value: {fileID: -593530978813535299, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 0.51
value: {fileID: -4665969359783447086, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 0.56
value: {fileID: 3046325850537428308, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 0.6
value: {fileID: 8355407047057278999, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 0.64
value: {fileID: 531808216999434893, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 0.68
value: {fileID: -5238447988111708349, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 0.72
value: {fileID: 3167164698273632755, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 0.76
value: {fileID: -2343593065518401393, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 0.8
value: {fileID: 3281824216133067538, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 0.84
value: {fileID: 1000478860194645677, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 0.88
value: {fileID: -6405820590031011402, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 0.92
value: {fileID: 8450779600869156891, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 0.96
value: {fileID: -8540832944191789790, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 1
value: {fileID: -8540832944191789790, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 1.01
value: {fileID: 676376719021367935, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 1.05
value: {fileID: 7075474257182208009, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 1.09
value: {fileID: -7330508827711092842, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 1.12
value: {fileID: 1587993407618024185, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 1.16
value: {fileID: 7125293203650736703, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 1.2
value: {fileID: -1886102513309244554, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 1.24
value: {fileID: -2236658673280625294, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 1.27
value: {fileID: 7464747088723063719, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 1.31
value: {fileID: -7053859854731117362, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 1.35
value: {fileID: -246377619162188687, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 1.39
value: {fileID: -8910233782443103351, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 1.42
value: {fileID: 5074171851503986758, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 1.46
value: {fileID: -593530978813535299, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 1.5
value: {fileID: -593530978813535299, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 1.51
value: {fileID: -4665969359783447086, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 1.56
value: {fileID: 3046325850537428308, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 1.6
value: {fileID: 8355407047057278999, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 1.64
value: {fileID: 531808216999434893, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 1.68
value: {fileID: -5238447988111708349, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 1.72
value: {fileID: 3167164698273632755, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 1.76
value: {fileID: -2343593065518401393, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 1.8
value: {fileID: 3281824216133067538, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 1.84
value: {fileID: 1000478860194645677, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 1.88
value: {fileID: -6405820590031011402, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 1.92
value: {fileID: 8450779600869156891, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 1.96
value: {fileID: -8540832944191789790, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 2
value: {fileID: -8540832944191789790, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 2.01
value: {fileID: 676376719021367935, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 2.05
value: {fileID: 7075474257182208009, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 2.09
value: {fileID: -7330508827711092842, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 2.12
value: {fileID: 1587993407618024185, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 2.16
value: {fileID: 7125293203650736703, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 2.2
value: {fileID: -1886102513309244554, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 2.24
value: {fileID: -2236658673280625294, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 2.27
value: {fileID: 7464747088723063719, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 2.31
value: {fileID: -7053859854731117362, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 2.35
value: {fileID: -246377619162188687, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 2.39
value: {fileID: -8910233782443103351, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 2.42
value: {fileID: 5074171851503986758, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 2.46
value: {fileID: -593530978813535299, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 2.49
value: {fileID: -593530978813535299, guid: 88b84319f88e542e495fc1f6338dc3ab,
type: 3}
- time: 2.5
value: {fileID: -4665969359783447086, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 2.55
value: {fileID: 3046325850537428308, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 2.59
value: {fileID: 8355407047057278999, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 2.63
value: {fileID: 531808216999434893, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 2.67
value: {fileID: -5238447988111708349, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 2.71
value: {fileID: 3167164698273632755, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 2.75
value: {fileID: -2343593065518401393, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 2.79
value: {fileID: 3281824216133067538, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 2.83
value: {fileID: 1000478860194645677, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 2.87
value: {fileID: -6405820590031011402, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 2.91
value: {fileID: 8450779600869156891, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 2.95
value: {fileID: -8540832944191789790, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
- time: 3
value: {fileID: -8540832944191789790, guid: defcc8125c9264ebc9dc3d4026bcb572,
type: 3}
attribute: m_Sprite
path:
classID: 212
script: {fileID: 0}
flags: 2
m_SampleRate: 100
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 0
script: {fileID: 0}
typeID: 212
customType: 23
isPPtrCurve: 1
isIntCurve: 0
isSerializeReferenceCurve: 0
pptrCurveMapping:
- {fileID: 676376719021367935, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: 7075474257182208009, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -7330508827711092842, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: 1587993407618024185, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: 7125293203650736703, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -1886102513309244554, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -2236658673280625294, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: 7464747088723063719, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -7053859854731117362, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -246377619162188687, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -8910233782443103351, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: 5074171851503986758, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -593530978813535299, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -593530978813535299, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -4665969359783447086, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 3046325850537428308, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 8355407047057278999, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 531808216999434893, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: -5238447988111708349, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 3167164698273632755, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: -2343593065518401393, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 3281824216133067538, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 1000478860194645677, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: -6405820590031011402, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 8450779600869156891, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: -8540832944191789790, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: -8540832944191789790, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 676376719021367935, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: 7075474257182208009, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -7330508827711092842, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: 1587993407618024185, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: 7125293203650736703, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -1886102513309244554, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -2236658673280625294, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: 7464747088723063719, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -7053859854731117362, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -246377619162188687, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -8910233782443103351, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: 5074171851503986758, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -593530978813535299, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -593530978813535299, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -4665969359783447086, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 3046325850537428308, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 8355407047057278999, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 531808216999434893, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: -5238447988111708349, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 3167164698273632755, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: -2343593065518401393, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 3281824216133067538, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 1000478860194645677, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: -6405820590031011402, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 8450779600869156891, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: -8540832944191789790, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: -8540832944191789790, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 676376719021367935, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: 7075474257182208009, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -7330508827711092842, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: 1587993407618024185, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: 7125293203650736703, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -1886102513309244554, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -2236658673280625294, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: 7464747088723063719, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -7053859854731117362, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -246377619162188687, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -8910233782443103351, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: 5074171851503986758, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -593530978813535299, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -593530978813535299, guid: 88b84319f88e542e495fc1f6338dc3ab, type: 3}
- {fileID: -4665969359783447086, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 3046325850537428308, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 8355407047057278999, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 531808216999434893, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: -5238447988111708349, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 3167164698273632755, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: -2343593065518401393, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 3281824216133067538, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 1000478860194645677, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: -6405820590031011402, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: 8450779600869156891, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: -8540832944191789790, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
- {fileID: -8540832944191789790, guid: defcc8125c9264ebc9dc3d4026bcb572, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 3.01
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 0
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 17f2b42253dd3d3469dba4824a446877
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant: