closed #41 섬 안에서의 Player, Crewmate 조작 방식 선택 기능 추가

+ 게임 시작 전에 GameManager에서 IslandPlayerMode로 조작 방식 선택
+ IInIslandPlayer 인터페이스 추가
+ 텐텐 무기(Dagger) 회전값 변경
+ 원거리 무기 생성 위치 변경
+ 섬 전용 카메라 InIslandCamera(싱글톤) 추가
+ player, crewmate 스폰 방식 수정
+ 파티클 OnDrawGizmoSelected 추가
This commit is contained in:
NTG_Lenovo 2023-10-23 15:11:28 +09:00
parent f19f199a13
commit 6a21c607bb
96 changed files with 229 additions and 649 deletions

View File

@ -6859,12 +6859,14 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
_persistent: 0
<IslandPlayerMode>k__BackingField: 1
<PlayerAction>k__BackingField: {fileID: -944628639613478452, guid: 0acb404847404484198cbf94e6929af2,
type: 3}
<InIslandPlayerPrefab>k__BackingField: {fileID: 418278336}
<CrewmatePrefabList>k__BackingField:
- {fileID: 1362034959}
- {fileID: 302959427}
currentInIslandPlayer: {fileID: 0}
slowSpeed: 0.1
<IsInShipMode>k__BackingField: 0
<IsDredgeMode>k__BackingField: 0

View File

@ -11,7 +11,7 @@ using UnityEngine.UI;
namespace BlueWaterProject
{
[RequireComponent(typeof(PlayerInput))]
public abstract class Crewmate : BaseCharacter, IDamageable, IAnimatorBridge, IAiView, INormalAttack
public abstract class Crewmate : BaseCharacter, IDamageable, IAnimatorBridge, IAiView, INormalAttack, IInIslandPlayer
{
#region Properties and variables
@ -93,11 +93,14 @@ namespace BlueWaterProject
[SerializeField] protected bool isAttacking;
// 일반 변수
protected Vector2 movementInput;
protected bool usedNormalAttackCoroutine;
protected WaitForSeconds waitAtkCooldown;
// 컴포넌트
protected Rigidbody rb;
public GameObject GameObject => gameObject;
public Transform Transform => transform;
public Rigidbody Rb { get; set; }
public Collider MyCollider { get; set; }
public NavMeshAgent Agent { get; set; }
private BehaviorTree bt;
@ -129,7 +132,7 @@ namespace BlueWaterProject
{
base.Awake();
rb = GetComponent<Rigidbody>();
Rb = GetComponent<Rigidbody>();
MyCollider = GetComponent<Collider>();
Agent = GetComponent<NavMeshAgent>();
bt = GetComponent<BehaviorTree>();
@ -206,39 +209,77 @@ namespace BlueWaterProject
if (CurrentHp <= 0) return;
if (GameManager.Inst.InIslandPlayer && GameManager.Inst.InIslandPlayer.UseRigidbody)
if (GameManager.Inst.CurrentInIslandPlayer.GameObject == gameObject)
{
if (!UseRigidbody)
// 움직이는 경우
if (movementInput.x != 0 || movementInput.y != 0)
{
UseRigidbodyMovement();
// Rigidbody 사용
if (!UseRigidbody)
{
UseRigidbodyMovement();
}
if (!beAttacked)
{
myAnimator.SetFloat(RunStateHash, 0.5f);
}
}
if (!beAttacked)
// 멈춰있는 경우
else
{
myAnimator.SetFloat(RunStateHash, 0.5f);
// NavMeshAgent 사용
if (UseRigidbody)
{
UseAgentMovement();
}
if (Agent.velocity.x != 0 || Agent.velocity.z != 0)
{
myAnimator.SetFloat(RunStateHash, 0.5f);
}
else if (!beAttacked)
{
myAnimator.SetFloat(RunStateHash, 0f);
}
}
}
else if (GameManager.Inst.InIslandPlayer && !GameManager.Inst.InIslandPlayer.UseRigidbody)
else
{
if (UseRigidbody)
if (GameManager.Inst.CurrentInIslandPlayer.GameObject && GameManager.Inst.CurrentInIslandPlayer.UseRigidbody)
{
UseAgentMovement();
}
if (!UseRigidbody)
{
UseRigidbodyMovement();
}
if (Agent.velocity.x != 0 || Agent.velocity.z != 0)
{
myAnimator.SetFloat(RunStateHash, 0.5f);
if (!beAttacked)
{
myAnimator.SetFloat(RunStateHash, 0.5f);
}
}
else if (!beAttacked)
else if (GameManager.Inst.CurrentInIslandPlayer.GameObject && !GameManager.Inst.CurrentInIslandPlayer.UseRigidbody)
{
myAnimator.SetFloat(RunStateHash, 0f);
if (UseRigidbody)
{
UseAgentMovement();
}
if (Agent.velocity.x != 0 || Agent.velocity.z != 0)
{
myAnimator.SetFloat(RunStateHash, 0.5f);
}
else if (!beAttacked)
{
myAnimator.SetFloat(RunStateHash, 0f);
}
}
}
var localScale = transform.localScale;
if (UseRigidbody)
{
localScale.x = rb.velocity.x switch
localScale.x = Rb.velocity.x switch
{
> 0 => Mathf.Abs(localScale.x),
< 0 => -Mathf.Abs(localScale.x),
@ -283,9 +324,20 @@ namespace BlueWaterProject
// var movement = GameManager.Inst.InIslandPlayer.Rb.velocity * (MoveSpd / GameManager.Inst.InIslandPlayer.MoveSpd);
// rb.velocity = new Vector3(movement.x, 0, movement.z);
var predictedPos = GameManager.Inst.InIslandPlayer.Rb.position + GameManager.Inst.InIslandPlayer.Rb.velocity;
var moveDir = (predictedPos - transform.position).normalized;
rb.velocity = new Vector3(moveDir.x, 0, moveDir.z) * MoveSpd;
if (GameManager.Inst.CurrentInIslandPlayer.GameObject == gameObject)
{
var localMovement = new Vector3(movementInput.x, 0, movementInput.y);
var worldDirection = transform.TransformDirection(localMovement);
var movement = worldDirection * MoveSpd;
Rb.velocity = new Vector3(movement.x, 0, movement.z);
}
else
{
var predictedPos = GameManager.Inst.CurrentInIslandPlayer.Rb.position + GameManager.Inst.CurrentInIslandPlayer.Rb.velocity;
var moveDir = (predictedPos - transform.position).normalized;
Rb.velocity = new Vector3(moveDir.x, 0, moveDir.z) * MoveSpd;
}
}
}
@ -327,7 +379,7 @@ namespace BlueWaterProject
}
else
{
rb.isKinematic = true;
Rb.isKinematic = true;
}
Agent.enabled = false;
@ -431,6 +483,21 @@ namespace BlueWaterProject
public void StopNormalAttackCoroutine() => StopCoroutine(nameof(NormalAttackCoroutine));
public bool GetUsedNormalAttackCoroutine() => usedNormalAttackCoroutine;
#endregion
#region Player input system
public void OnMove(InputValue value)
{
if (CurrentHp <= 0)
{
Rb.velocity = Vector3.zero;
return;
}
movementInput = value.Get<Vector2>();
}
#endregion
#region Custom methods
@ -438,19 +505,19 @@ namespace BlueWaterProject
private void UseRigidbodyMovement()
{
UseRigidbody = true;
rb.isKinematic = false;
Rb.isKinematic = false;
Agent.enabled = false;
}
private void UseAgentMovement()
{
UseRigidbody = false;
rb.isKinematic = true;
Rb.isKinematic = true;
Agent.enabled = true;
if (Target) return;
MoveTarget(GameManager.Inst.InIslandPlayer.transform.position, MoveSpd, GlobalValue.MAXIMUM_STOP_DISTANCE);
MoveTarget(GameManager.Inst.CurrentInIslandPlayer.Transform.position, MoveSpd, GlobalValue.MAXIMUM_STOP_DISTANCE);
}
private IEnumerator BeAttacked()

View File

@ -14,8 +14,6 @@ namespace BlueWaterProject
[Title("Weapon")]
[Required]
[SerializeField] private GameObject projectileObj;
[Required]
[SerializeField] private Transform shootLocation;
[SerializeField] private float speed = 500f;
private Transform objectPoolLocation;
@ -43,7 +41,7 @@ namespace BlueWaterProject
var myCenterPos = MyCollider.bounds.center;
var weapon = Instantiate(projectileObj, shootLocation.transform.position, Quaternion.identity, objectPoolLocation).GetComponent<ObjectWeapon>();
var weapon = Instantiate(projectileObj, MyCollider.bounds.center, Quaternion.identity, objectPoolLocation).GetComponent<ObjectWeapon>();
weapon.transform.LookAt(Target.bounds.center);
weapon.SetPower(Atk);
weapon.GetComponent<Rigidbody>().AddForce(weapon.transform.forward * speed);

View File

@ -14,8 +14,6 @@ namespace BlueWaterProject
[Title("Weapon")]
[Required]
[SerializeField] private GameObject projectileObj;
[Required]
[SerializeField] private Transform shootLocation;
[SerializeField] private float speed = 500f;
//private IObjectPool<WeaponParticle> weaponParticlePool;
@ -57,7 +55,7 @@ namespace BlueWaterProject
var targetDir = (Target.bounds.center - myCenterPos).normalized;
// targetLookRotation = Quaternion.LookRotation(targetDir);
var particleWeapon = Instantiate(projectileObj, shootLocation.transform.position, Quaternion.identity, objectPoolLocation).GetComponent<ParticleWeapon>();
var particleWeapon = Instantiate(projectileObj, MyCollider.bounds.center, Quaternion.identity, objectPoolLocation).GetComponent<ParticleWeapon>();
particleWeapon.transform.LookAt(Target.bounds.center);
particleWeapon.SetPower(Atk);
particleWeapon.GetComponent<Rigidbody>().AddForce(particleWeapon.transform.forward * speed);

View File

@ -1,6 +1,5 @@
using System;
using System.Collections;
using System.Collections.Generic;
using BehaviorDesigner.Runtime;
using Sirenix.OdinInspector;
using UnityEngine;
@ -11,7 +10,7 @@ using UnityEngine.UI;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class InIslandPlayer : Player, IAnimatorBridge, IAiView, INormalAttack
public class InIslandPlayer : Player, IAnimatorBridge, IAiView, INormalAttack, IInIslandPlayer
{
#region Properties and variables
@ -88,17 +87,15 @@ namespace BlueWaterProject
[SerializeField] private bool beAttacked;
[DisableIf("@true")]
[SerializeField] private bool isAttacking;
// Crewmate Data
[field: Title("Crewmate Data")]
[field: SerializeField] public List<Crewmate> CrewmateList { get; set; }
// 일반 변수
private bool usedNormalAttackCoroutine;
private WaitForSeconds waitAtkCooldown;
// 컴포넌트
public Rigidbody Rb { get; private set; }
public GameObject GameObject => gameObject;
public Transform Transform => transform;
public Rigidbody Rb { get; set; }
public Collider MyCollider { get; set; }
public NavMeshAgent Agent { get; set; }
private BehaviorTree bt;
@ -368,9 +365,32 @@ namespace BlueWaterProject
Rb.isKinematic = true;
}
Agent.enabled = false;
switch (GameManager.Inst.IslandPlayerMode)
{
case GlobalValue.InIslandPlayerMode.NONE:
print("IslandPlayerMode == none error.");
break;
case GlobalValue.InIslandPlayerMode.ONLY_PLAYER:
// 게임 종료
break;
case GlobalValue.InIslandPlayerMode.CREWMATE:
foreach (var crewmate in GameManager.Inst.CurrentCrewmateList)
{
if (crewmate == null || !crewmate.gameObject.activeSelf || crewmate.CurrentHp <= 0) continue;
GameManager.Inst.SetCurrentInIslandPlayer(crewmate);
return;
}
// 게임 종료
break;
default:
throw new ArgumentOutOfRangeException();
}
Destroy(hpSlider.gameObject, 2f);
Destroy(gameObject, 2f);
//Destroy(hpSlider.gameObject, 2f);
//Destroy(gameObject, 2f);
}
// IAnimatorBridge
@ -477,7 +497,7 @@ namespace BlueWaterProject
public void UseAgentMovement()
{
DefensePos = transform.position;
foreach (var crewmate in CrewmateList)
foreach (var crewmate in GameManager.Inst.CurrentCrewmateList)
{
crewmate.DefensePos = DefensePos;
}

View File

@ -1,10 +1,7 @@
using System.Collections.Generic;
using BlueWaterProject;
using Sirenix.OdinInspector;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.Serialization;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
@ -12,22 +9,29 @@ namespace BlueWaterProject
[DefaultExecutionOrder(-1)]
public class GameManager : Singleton<GameManager>
{
[field: Title("Player")]
public ShipPlayer ShipPlayer { get; private set; }
[field: Required("BlueWater Player Input Action을 넣어주세요.")]
[field: SerializeField] public InputActionAsset PlayerAction { get; private set; }
public InShipPlayer InShipPlayer { get; private set; }
public InIslandPlayer InIslandPlayer { get; set; }
// 섬 안의 플레이어 모드 선택
[field: Title("InIsland Data")]
[field: SerializeField] public GlobalValue.InIslandPlayerMode IslandPlayerMode { get; private set; }
[field: Required("Viking Prefab을 넣어주세요.")]
[field: SerializeField] public GameObject InIslandPlayerPrefab { get; set; }
[field: SerializeField] public List<Crewmate> CrewmatePrefabList { get; set; }
[field: SerializeField] public GameObject InIslandPlayerPrefab { get; private set; }
[field: SerializeField] public List<Crewmate> CrewmatePrefabList { get; private set; }
[field: SerializeField] public List<Crewmate> CurrentCrewmateList { get; set; }
public IInIslandPlayer CurrentInIslandPlayer { get; set; }
// Player
[field: Title("Player")]
[field: SerializeField] public ShipPlayer ShipPlayer { get; private set; }
[field: SerializeField] public InShipPlayer InShipPlayer { get; private set; }
// Game Data
[Title("Game Data")]
[Range(0f, 1f)]
[SerializeField] private float slowSpeed = 0.1f;
private const string IN_ISLAND_PLAYER_NAME = "InIslandPlayer";
[Title("Game State")]
// Game State
[field: Title("Game State")]
[field: SerializeField] public bool IsInShipMode { get; set; }
[field: SerializeField] public bool IsDredgeMode { get; set; }
[field: SerializeField] public bool IsTakeAim { get; set; }
@ -63,6 +67,29 @@ namespace BlueWaterProject
Time.fixedDeltaTime = 0.02f;
}
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;
}
}
#region Player Mode State switch
public void SwitchDredgeMode(bool isOn)

View File

@ -0,0 +1,13 @@
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public interface IInIslandPlayer
{
GameObject GameObject { get; }
Transform Transform { get; }
Rigidbody Rb { get; set; }
bool UseRigidbody { get; set; }
}
}

View File

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

View File

@ -24,7 +24,8 @@ namespace BlueWaterProject
private GameObject spawnPositionObj;
private CinemachineVirtualCamera cinemachineVirtualCamera;
private Transform spawnLocation;
private string CrewmateIndexInfoMessage => $"0 ~ {GameManager.Inst.CrewmatePrefabList.Count - 1} 숫자를 입력해주세요.";
private const string PLAYER_NAME = "Player";
@ -46,6 +47,12 @@ namespace BlueWaterProject
print("Virtual Camera 오브젝트를 찾을 수 없습니다.");
return;
}
spawnLocation = GameObject.Find("Characters")?.transform;
if (spawnLocation == null)
{
spawnLocation = new GameObject("Characters").transform;
}
var currentSceneName = SceneManager.GetActiveScene().name;
if (currentSceneName != "02.Main")
@ -56,7 +63,7 @@ namespace BlueWaterProject
private void SpawnInIslandPlayer(Vector3 spawnPos, Quaternion spawnRotation)
{
var islandPlayer = Instantiate(GameManager.Inst.InIslandPlayerPrefab, spawnPos, spawnRotation);
var islandPlayer = Instantiate(GameManager.Inst.InIslandPlayerPrefab, spawnPos, spawnRotation, spawnLocation);
islandPlayer.name = IN_ISLAND_PLAYER_NAME;
islandPlayer.gameObject.SetActive(true);
@ -65,7 +72,6 @@ namespace BlueWaterProject
{
playerInput = islandPlayer.transform.AddComponent<PlayerInput>();
}
playerInput.actions = GameManager.Inst.PlayerAction;
var desiredActionMap = playerInput.actions.FindActionMap(PLAYER_NAME);
if (desiredActionMap == null)
@ -80,7 +86,8 @@ namespace BlueWaterProject
{
GameManager.Inst.ShipPlayer.GetComponent<PlayerInput>().enabled = false;
}
playerInput.SwitchCurrentActionMap(PLAYER_NAME);
playerInput.enabled = true;
var inIslandPlayer = islandPlayer.GetComponent<InIslandPlayer>();
if (inIslandPlayer == null)
@ -92,14 +99,14 @@ namespace BlueWaterProject
InIslandCamera.Inst.SetTarget(islandPlayer.transform);
GameManager.Inst.InIslandPlayer = inIslandPlayer;
GameManager.Inst.SetCurrentInIslandPlayer(inIslandPlayer);
}
[DisableIf("@crewmateIndex >= GameManager.Inst.CrewmatePrefabList.Count || crewmateIndex < 0")]
[Button("Crewmate 추가")]
private void AddCrewmate()
{
if (!GameManager.Inst.InIslandPlayer) return;
if (!GameManager.Inst.CurrentInIslandPlayer.GameObject) return;
if (crewmateIndex >= GameManager.Inst.CrewmatePrefabList.Count || crewmateIndex < 0)
{
@ -110,7 +117,7 @@ namespace BlueWaterProject
for (var i = 0; i < 50; i++)
{
var randomDirection = new Vector3(Random.Range(-1f, 1f), 0, Random.Range(-1f, 1f)).normalized;
var spawnPos = GameManager.Inst.InIslandPlayer.transform.position + (randomDirection * instantiationDistance);
var spawnPos = GameManager.Inst.CurrentInIslandPlayer.Transform.position + (randomDirection * instantiationDistance);
Array.Clear(colliders, 0, MAX_COLLIDER);
var size = Physics.OverlapSphereNonAlloc(spawnPos, checkRadius, colliders, checkLayer);
@ -118,10 +125,10 @@ namespace BlueWaterProject
if (size != 0) continue;
var crewmate = Instantiate(GameManager.Inst.CrewmatePrefabList[crewmateIndex], spawnPos,
GameManager.Inst.CrewmatePrefabList[crewmateIndex].transform.rotation);
GameManager.Inst.CrewmatePrefabList[crewmateIndex].transform.rotation, spawnLocation);
crewmate.gameObject.SetActive(true);
GameManager.Inst.InIslandPlayer.CrewmateList.Add(crewmate);
GameManager.Inst.CurrentCrewmateList.Add(crewmate);
return;
}

View File

@ -47,5 +47,12 @@ namespace BlueWaterProject
TAKE_AIM,
IN_SHIP
}
public enum InIslandPlayerMode
{
NONE = -1,
ONLY_PLAYER,
CREWMATE
}
}
}

View File

@ -18,10 +18,21 @@ namespace BlueWaterProject
[SerializeField] private LayerMask targetLayer;
[SerializeField] private float power;
[SerializeField] private float autoDestroyTime = 5f;
private float detectionDistance;
private Rigidbody rb;
private SphereCollider sphereCollider;
private WaitForSeconds waitForSeconds;
private void OnDrawGizmosSelected()
{
var radius = sphereCollider ? sphereCollider.radius : colliderRadius;
var direction = rb ? rb.velocity.normalized : transform.forward;
Gizmos.color = Color.red;
Gizmos.DrawWireSphere(transform.position, radius); // Draws the start sphere
Gizmos.DrawLine(transform.position, transform.position + direction * detectionDistance); // Draws the path of the SphereCast
}
private void Awake()
{
@ -66,8 +77,8 @@ namespace BlueWaterProject
direction += Physics.gravity * Time.deltaTime; // Accounts for gravity if enabled
direction = direction.normalized;
var detectionDistance = rb.velocity.magnitude * Time.deltaTime; // Distance of collision detection for this frame
detectionDistance = rb.velocity.magnitude * Time.deltaTime; // Distance of collision detection for this frame
if (Physics.SphereCast(transform.position, radius, direction, out var hit, detectionDistance, targetLayer)) // Checks if collision will happen
{
transform.position = hit.point + (hit.normal * collideOffset); // Move projectile to point of collision

View File

@ -25,13 +25,13 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4974917693782220124}
serializedVersion: 2
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
m_LocalRotation: {x: 0.6532815, y: 0.27059805, z: -0.27059805, w: 0.6532815}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 2, y: 2, z: 2}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 2677528810302803348}
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
m_LocalEulerAnglesHint: {x: 90, y: 0, z: -45}
--- !u!212 &2067129615080396003
SpriteRenderer:
m_ObjectHideFlags: 0

View File

@ -28,7 +28,7 @@ Transform:
m_GameObject: {fileID: 128572}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 8.313633, y: 5.892903, z: -13.319157}
m_LocalPosition: {x: 8.638, y: 5.892903, z: -13.319157}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 4d9b575363cdb56408d92f7d7f0e5216
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 171c5051d845c4545a6679cdcb9e8290
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: e381f1e638a8aec4dbd9a7be673b56e2
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 01db744855bbae74481522d48fd63008
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: e5f625ae60b99fe4ab78d44cfb58ce5a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: b606e558541a7b14593ea370c1a31da1
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: c13a7e89fcc1f5544b4debda9d682854
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 9d6eeb26838ae2140a98c7b012c07610
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 46615cbdbe482664aaf8d3fe2af274c8
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 92b78aa6c7b02924c907a69383e7722f
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 169dbd692ce7b8a4083e3e77421ce8d0
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 9a785472f49cbc0419f4e80050360f8a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: acc7135a62c70bb40bfd196dcc0dbf58
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 43b92591c923d1543bc95a9b89918a6c
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 4c1d290c89eb9a146a0c3fc3c5d97639
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 79d6a8f7106f5a949afdf0f9fce6e5c9
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 5db5e6540b70aa44a8b8f0be7cbc03a4
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: b81586c5bf3938042babe319ccb6b693
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 29400b82342c15b44bebd36e5f253c7a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: e3dca3dc2724503479b532ec6f801f2f
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 5a3da110bff34d54eb93d1c3c7755741
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 590bfaf71ac68024e96342bd38a2e799
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 89c6283ed4a7a914db4ed32d9fe4be1b
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 2133c1709cbeab043b2c0d4a09f8c560
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 61a9883a71fe42f4cb3a2538927c5b54
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 107656dc7c8decd4b98ddacdb4c63d9c
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 69578b34b0b99fd408db1f26e709204b
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 890975c726da4f447a9fdbb24e0ac5a6
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 1977e46ddf171054ba06e70c3a17b562
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: d04dae1efd4c20f42801fa99bfb48c71
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: f48e38a1694a4a94ba7bfa99b5bb8da7
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: a760ee77bdfe6fc4fbfeb4e74d81e9ee
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 7ac1fca502db8634ca8a220957ce0efe
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 03276c81a3b7e1f4f8b9a2c42d29ccb5
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 4c2fe1e05f53ce540a7e6629e37e62ba
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 41dc081f41d06ad4cb3a976e3bc784ff
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 7224afe475473f5479a4be84354c0ffe
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 6566ea9453ea9a54c8adda4ce157bfe5
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 8a6eaa4e4e356664da332e906c4116ca
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: d78d339535406c443be8ab962fe3faed
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 6556a12f622b9f84a87c93e43a05c57a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 7adde0d8ab9d11c4f8958df473963096
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 2e0d514b37da90b43aca77d71d4ea274
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: f73b81d6a28009a4d8a6cfa24e4f6670
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 14eb0de10b56d7d48aa47c34c085763a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: bab8f8e2fd66cc94eb0381c12da4f8a1
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 853d51cc63a44614b8aa108c20970d53
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 0acaab50ea80e2740907f9fb8e96d5cb
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 00d3be9741969ee4abb41a0d36893d12
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: a84c2fae02ab66e4bb10f4b632b4e59f
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: ff46b33770bc0e04da5553db516b2791
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: d4762985b08cf424d8a389bd106e9c41
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 82f4200e470c7a2459f54ef829fd130b
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 8f7926653749bc042b66acaf162cb653
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: d8244e47333fea34cabbe75f30b489cd
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: a60eb26401f5d2e40a3f8ad3a0cdd2ae
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: d20f46daec1cff04b8767c37cbc64dfd
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 1e0bc8e64ca5a204ab01fcb065ad3ea4
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 0439b345dc19afc4e9e38a45964c21d2
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 2f034bb78093baf41a5b14693eefb6ba
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 37a76039173f99b4fac971349e64b845
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 12f5d0647e98dad4cba5773dbfe617ee
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: cfa06a72ad668b64e84eb67a6653c27a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 5f372c15f48325e4da788631806fbd37
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: d48ea718ba1476a4baa5cd9e66f6ed78
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 21b40e7d71233864788700238fab175d
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 44688b79fc3aa6a44b5c47a92a453722
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: c6b5601000159b44594b95b58dc95e5e
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 1f67bb1f7a0ccac4bacceb5680482ca2
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: d418d21b145ca9e4289690cca70d800d
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: ba01c8813d9d8e645a60034600445394
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 373fa280b9df46f45901d7ac3fea3beb
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: d0b0bdbd9366c9e4fba085f618ca54ba
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: c59e446cf466a424daed6859d731bc80
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 494657561b44a1c489255e7049d56ad7
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 0bfa1827c30ff98418b3b36047505a15
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: d3504844ffe57564caa188ff0f30bae8
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 40756660825b35747929372b595fa82f
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: c3c34eebf26184b4fb5b0a9dfd25567f
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 185ff7b46f2f79a4287cdf5efb411fbb
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 89146e181822a34479674ffc071163df
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 630bf89a42bf760458299c96a71e7f04
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 8302722bd792b384e898fed750f555a9
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant: