# Conflicts:
#	Assets/StreamingAssets/google-services-desktop.json.meta
This commit is contained in:
SweetJJuya 2024-12-19 19:21:44 +09:00
commit ebb5e6c127
194 changed files with 192611 additions and 4621 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

76831
Assets/01.Scenes/99.T47.unity Normal file

File diff suppressed because it is too large Load Diff

View File

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

79722
Assets/01.Scenes/99.T48.unity Normal file

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -24,6 +24,12 @@ namespace BlueWater.BehaviorTrees.Actions
public override void OnStart()
{
if (!_customer.CanVomit)
{
_canVomit = false;
return;
}
_customer.MoveMoneyCounter();
var random = Random.Range(0f, 100f);
if (random <= TycoonManager.Instance.TycoonStageController.StageDataSo.VomitingPercent)

View File

@ -21,7 +21,7 @@ namespace BlueWater.Npcs.Customers
{
public const string Idle = "Idle";
public const string Walk = "Run";
public const string Happy = "Happy";
public const string Happy = "HappyIdle";
public const string HappyRun = "HappyRun";
public const string Upset = "Upset";
public const string UpsetRun = "UpsetRun";
@ -30,6 +30,30 @@ namespace BlueWater.Npcs.Customers
public const string VomitingIdle = "VomitingIdle";
public const string VomitingRun = "VomitingRun";
}
public static class CatSpineAnimation
{
public const string Idle = "Cat/Idle";
public const string Walk = "Cat/Run";
public const string Happy = "Cat/HappyIdle";
public const string HappyRun = "Cat/HappyRun";
public const string Upset = "Cat/Upset";
public const string UpsetRun = "Cat/UpsetRun";
public const string Vomiting = "Cat/Vomiting";
public const string VomitingForm = "Cat/VomitingForm";
public const string VomitingIdle = "Cat/VomitingIdle";
public const string VomitingRun = "Cat/VomitingRun";
}
public static class WitchSpineAnimation
{
public const string Idle = "Witch/Idle";
public const string Walk = "Witch/Run";
public const string Happy = "Witch/HappyIdle";
public const string HappyRun = "Witch/HappyRun";
public const string Upset = "Witch/Upset";
public const string UpsetRun = "Witch/UpsetRun";
}
public enum CustomerInteractionType
{
@ -39,8 +63,13 @@ namespace BlueWater.Npcs.Customers
public enum CustomerSkin
{
Casper = 0,
PumkinHead = 1
BigCat = 0,
Casper = 1,
CasperBlack = 2,
Cat = 3,
PumkinHead = 4,
Reaper = 5,
Witch = 6
}
public class Customer : MonoBehaviour, IPlayerInteraction, ICrewInteraction
@ -99,7 +128,6 @@ namespace BlueWater.Npcs.Customers
[field: SerializeField]
public string InteractionMessage { get; set; }
[field: Title("실시간 데이터")]
[field: SerializeField]
public LevelData CurrentLevelData { get; private set; }
@ -127,6 +155,7 @@ namespace BlueWater.Npcs.Customers
private CustomerInteractionType _customerInteractionType;
public bool IsMoving { get; private set; }
public bool CanVomit { get; private set; }
public bool IsVomited { get; private set; }
[SerializeField]
@ -148,7 +177,16 @@ namespace BlueWater.Npcs.Customers
}
}
public int CustomerSkin { get; private set; }
[Title("스킨 연출")]
[field: SerializeField]
public CustomerSkin CustomerSkin { get; private set; }
[SerializeField]
private Vector3 _bigSize = new(1.5f, 1.5f, 1.5f);
[SerializeField]
private Vector3 _smallSize = new(0.5f, 0.5f, 0.5f);
public int HurryTime { get; private set; }
private IAstarAI _astarAi;
@ -197,10 +235,20 @@ namespace BlueWater.Npcs.Customers
{
if (element.ToString().Equals(currentSkinName))
{
CustomerSkin = (int)element;
return;
CustomerSkin = element;
break;
}
}
if (CustomerSkin is CustomerSkin.BigCat or CustomerSkin.Witch)
{
CanVomit = false;
transform.localScale = _bigSize;
}
else
{
CanVomit = true;
}
}
private void Update()
@ -407,14 +455,14 @@ namespace BlueWater.Npcs.Customers
public virtual void ShowInteractionUi()
{
SpineController.EnableCustomMaterial();
//SpineController.EnableCustomMaterial();
EventManager.InvokeShowInteractionUi(InteractionMessage);
EventManager.InvokeHoldInteracting(0f);
}
public virtual void HideInteractionUi()
{
SpineController.DisableCustomMaterial();
//SpineController.DisableCustomMaterial();
EventManager.InvokeHideInteractionUi();
}
@ -485,6 +533,12 @@ namespace BlueWater.Npcs.Customers
var gold = (int)(CurrentLevelData.Gold * TycoonManager.Instance.TycoonStatus.GoldMultiplier);
_moneyCounter.AddCurrentGold(gold);
if (!ES3.Load(SaveData.TutorialC, false))
{
EventManager.InvokeTutorial(TutorialName.TutorialC);
ES3.Save(SaveData.TutorialC, true);
}
}
public void Vomit()
@ -520,6 +574,18 @@ namespace BlueWater.Npcs.Customers
RegisterPlayerInteraction();
EventManager.InvokeOrderedCocktail(this);
if (!ES3.Load(SaveData.TutorialB, false))
{
EventManager.InvokeTutorial(TutorialName.TutorialB);
ES3.Save(SaveData.TutorialB, true);
}
if (!ES3.Load(SaveData.TutorialJ, false) && OrderedCocktailData.Idx == "Cocktail006")
{
EventManager.InvokeTutorial(TutorialName.TutorialJ);
ES3.Save(SaveData.TutorialJ, true);
}
}
public void MovePosition(Vector3 targetPosition)

View File

@ -6,7 +6,18 @@ namespace BlueWater.Npcs.Customers
{
public void EnterState(Customer character)
{
character.SpineController.PlayAnimation(CustomerSpineAnimation.Happy, true);
if (character.CustomerSkin == CustomerSkin.Cat)
{
character.SpineController.PlayAnimation(CatSpineAnimation.Happy, true);
}
else if (character.CustomerSkin == CustomerSkin.Witch)
{
character.SpineController.PlayAnimation(WitchSpineAnimation.Happy, true);
}
else
{
character.SpineController.PlayAnimation(CustomerSpineAnimation.Happy, true);
}
}
public void UpdateState(Customer character)

View File

@ -8,16 +8,62 @@ namespace BlueWater.Npcs.Customers
{
if (character.IsVomited)
{
character.SpineController.PlayAnimation(CustomerSpineAnimation.VomitingIdle, true);
if (character.CustomerSkin == CustomerSkin.Cat)
{
character.SpineController.PlayAnimation(CatSpineAnimation.VomitingIdle, true);
}
else
{
character.SpineController.PlayAnimation(CustomerSpineAnimation.VomitingIdle, true);
}
}
else if (character.IsReceivedItem)
{
character.SpineController.PlayAnimation(character.IsOrderedCorrected ?
CustomerSpineAnimation.Happy : CustomerSpineAnimation.Upset, true);
if (character.IsOrderedCorrected)
{
if (character.CustomerSkin == CustomerSkin.Cat)
{
character.SpineController.PlayAnimation(CatSpineAnimation.Happy, true);
}
else if (character.CustomerSkin == CustomerSkin.Witch)
{
character.SpineController.PlayAnimation(WitchSpineAnimation.Happy, true);
}
else
{
character.SpineController.PlayAnimation(CustomerSpineAnimation.Happy, true);
}
}
else
{
if (character.CustomerSkin == CustomerSkin.Cat)
{
character.SpineController.PlayAnimation(CatSpineAnimation.Upset, true);
}
else if (character.CustomerSkin == CustomerSkin.Witch)
{
character.SpineController.PlayAnimation(WitchSpineAnimation.Upset, true);
}
else
{
character.SpineController.PlayAnimation(CustomerSpineAnimation.Upset, true);
}
}
}
else if (!character.IsReceivedItem)
{
character.SpineController.PlayAnimation(CustomerSpineAnimation.Idle, true);
if (character.CustomerSkin == CustomerSkin.Cat)
{
character.SpineController.PlayAnimation(CatSpineAnimation.Idle, true);
}
else if (character.CustomerSkin == CustomerSkin.Witch)
{
character.SpineController.PlayAnimation(WitchSpineAnimation.Idle, true);
}
else
{
character.SpineController.PlayAnimation(CustomerSpineAnimation.Idle, true);
}
}
}
@ -25,6 +71,18 @@ namespace BlueWater.Npcs.Customers
{
if (character.IsMoving)
{
if (character.CustomerSkin == CustomerSkin.Cat)
{
character.SpineController.PlayAnimation(CatSpineAnimation.Idle, true);
}
else if (character.CustomerSkin == CustomerSkin.Witch)
{
character.SpineController.PlayAnimation(WitchSpineAnimation.Idle, true);
}
else
{
character.SpineController.PlayAnimation(CustomerSpineAnimation.Idle, true);
}
character.StateMachineController.TransitionToState(character.WalkingState, character);
}
}

View File

@ -6,7 +6,18 @@ namespace BlueWater.Npcs.Customers
{
public void EnterState(Customer character)
{
character.SpineController.PlayAnimation(CustomerSpineAnimation.Upset, true);
if (character.CustomerSkin == CustomerSkin.Cat)
{
character.SpineController.PlayAnimation(CatSpineAnimation.Upset, true);
}
else if (character.CustomerSkin == CustomerSkin.Witch)
{
character.SpineController.PlayAnimation(WitchSpineAnimation.Upset, true);
}
else
{
character.SpineController.PlayAnimation(CustomerSpineAnimation.Upset, true);
}
}
public void UpdateState(Customer character)

View File

@ -10,7 +10,14 @@ namespace BlueWater.Npcs.Customers
public void EnterState(Customer character)
{
character.SpineController.PlayAnimation(CustomerSpineAnimation.VomitingForm, false);
if (character.CustomerSkin == CustomerSkin.Cat)
{
character.SpineController.PlayAnimation(CatSpineAnimation.VomitingForm, false);
}
else
{
character.SpineController.PlayAnimation(CustomerSpineAnimation.VomitingForm, false);
}
}
public void UpdateState(Customer character)
@ -18,7 +25,14 @@ namespace BlueWater.Npcs.Customers
if (!_isVomiting && character.SpineController.IsAnimationComplete())
{
AudioManager.Instance.PlaySfx(_vomitSfxName);
character.SpineController.PlayAnimation(CustomerSpineAnimation.Vomiting, false);
if (character.CustomerSkin == CustomerSkin.Cat)
{
character.SpineController.PlayAnimation(CatSpineAnimation.Vomiting, false);
}
else
{
character.SpineController.PlayAnimation(CustomerSpineAnimation.Vomiting, false);
}
_isVomiting = true;
}

View File

@ -8,16 +8,62 @@ namespace BlueWater.Npcs.Customers
{
if (character.IsVomited)
{
character.SpineController.PlayAnimation(CustomerSpineAnimation.VomitingRun, true);
if (character.CustomerSkin == CustomerSkin.Cat)
{
character.SpineController.PlayAnimation(CatSpineAnimation.VomitingRun, true);
}
else
{
character.SpineController.PlayAnimation(CustomerSpineAnimation.VomitingRun, true);
}
}
else if (character.IsReceivedItem)
{
character.SpineController.PlayAnimation(character.IsOrderedCorrected ?
CustomerSpineAnimation.HappyRun : CustomerSpineAnimation.UpsetRun, true);
if (character.IsOrderedCorrected)
{
if (character.CustomerSkin == CustomerSkin.Cat)
{
character.SpineController.PlayAnimation(CatSpineAnimation.HappyRun, true);
}
else if (character.CustomerSkin == CustomerSkin.Witch)
{
character.SpineController.PlayAnimation(WitchSpineAnimation.HappyRun, true);
}
else
{
character.SpineController.PlayAnimation(CustomerSpineAnimation.HappyRun, true);
}
}
else
{
if (character.CustomerSkin == CustomerSkin.Cat)
{
character.SpineController.PlayAnimation(CatSpineAnimation.UpsetRun, true);
}
else if (character.CustomerSkin == CustomerSkin.Witch)
{
character.SpineController.PlayAnimation(WitchSpineAnimation.UpsetRun, true);
}
else
{
character.SpineController.PlayAnimation(CustomerSpineAnimation.UpsetRun, true);
}
}
}
else if (!character.IsReceivedItem)
{
character.SpineController.PlayAnimation(CustomerSpineAnimation.Walk, true);
if (character.CustomerSkin == CustomerSkin.Cat)
{
character.SpineController.PlayAnimation(CatSpineAnimation.Walk, true);
}
else if (character.CustomerSkin == CustomerSkin.Witch)
{
character.SpineController.PlayAnimation(WitchSpineAnimation.Walk, true);
}
else
{
character.SpineController.PlayAnimation(CustomerSpineAnimation.Walk, true);
}
}
}

View File

@ -78,9 +78,11 @@ namespace BlueWater.Players.Tycoons
public void OnDevelopKey01(InputAction.CallbackContext context)
{
#if UNITY_EDITOR
EventManager.InvokeCreateServerCrew();
EventManager.InvokeCreateCleanerCrew();
EventManager.InvokeCreateBartenderCrew();
#endif
}
#endregion

View File

@ -38,14 +38,14 @@ namespace BlueWater.Players.Tycoons
_isMoving = value;
if (_isMoving)
{
AudioManager.Instance.PlaySfx(_walkingSfxName, true);
}
else
{
AudioManager.Instance.StopSfx(_walkingSfxName);
}
// if (_isMoving)
// {
// AudioManager.Instance.PlaySfx(_walkingSfxName, true);
// }
// else
// {
// AudioManager.Instance.StopSfx(_walkingSfxName);
// }
}
}
@ -67,6 +67,9 @@ namespace BlueWater.Players.Tycoons
[SerializeField]
private string _walkingSfxName = "TycoonPlayerWalking";
[SerializeField]
private string _dashSfxName = "TycoonPlayerDashing";
public bool IsDashEnabled { get; private set; } = true;
public bool IsDashing { get; private set; }
@ -242,6 +245,7 @@ namespace BlueWater.Players.Tycoons
{
_dashParticle.Play();
}
AudioManager.Instance.PlaySfx(_dashSfxName);
var dashDirection = _inputDirection;
if (dashDirection == Vector3.zero)

View File

@ -232,8 +232,8 @@ namespace BlueWater
}
// 손님이 퇴장하기 전에 스킨을 확인하는 이벤트
public static Action<int> OnCheckedSkin;
public static void InvokeCheckedSkin(int skinIndex)
public static Action<CustomerSkin> OnCheckedSkin;
public static void InvokeCheckedSkin(CustomerSkin skinIndex)
{
OnCheckedSkin?.Invoke(skinIndex);
}
@ -321,6 +321,13 @@ namespace BlueWater
OnCreateMold?.Invoke();
}
// 펌프 활성화 이벤트
public static Action OnActivatePump;
public static void InvokeActivatePump()
{
OnActivatePump?.Invoke();
}
// 계산대 골드 자동 회수 이벤트
public static Action<int> OnGainAutoMoneyCounter;
public static void InvokeGainAutoMoneyCounter(int gainWaitTime)
@ -355,6 +362,13 @@ namespace BlueWater
{
OnOpenedRareRewardBox?.Invoke();
}
// 튜토리얼
public static Action<string> OnTutorial;
public static void InvokeTutorial(string tutorialName)
{
OnTutorial?.Invoke(tutorialName);
}
#endregion
}

View File

@ -751,6 +751,33 @@
"interactions": "",
"initialStateCheck": false
},
{
"name": "PressR",
"type": "Button",
"id": "e4fa5849-c9d6-4997-9b4e-90534871a42b",
"expectedControlType": "",
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{
"name": "PressA",
"type": "Button",
"id": "ba45488a-1cd7-479a-a42c-7ecf4d140eb6",
"expectedControlType": "",
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{
"name": "PressD",
"type": "Button",
"id": "8eb2dcae-c555-4f18-949a-ead8d65767f9",
"expectedControlType": "",
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{
"name": "PressAnyKey",
"type": "Button",
@ -843,10 +870,43 @@
"path": "<Keyboard>/e",
"interactions": "",
"processors": "",
"groups": "",
"groups": ";Keyboard&Mouse",
"action": "InteractionE",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "",
"id": "c8c18337-6d1f-47f7-9e88-017d311a5ece",
"path": "<Keyboard>/r",
"interactions": "",
"processors": "",
"groups": ";Keyboard&Mouse",
"action": "PressR",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "",
"id": "35cbd356-f529-4281-94b8-087c7bd21859",
"path": "<Keyboard>/a",
"interactions": "",
"processors": "",
"groups": ";Keyboard&Mouse",
"action": "PressA",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "",
"id": "2df367e5-1d6c-428c-b859-455392708188",
"path": "<Keyboard>/d",
"interactions": "",
"processors": "",
"groups": ";Keyboard&Mouse",
"action": "PressD",
"isComposite": false,
"isPartOfComposite": false
}
]
},

View File

@ -38,6 +38,9 @@ namespace BlueWater
public const string Move = "Move";
public const string Cancel = "Cancel";
public const string PressQ = "PressQ";
public const string PressR = "PressR";
public const string PressA = "PressA";
public const string PressD = "PressD";
public const string PressAnyKey = "PressAnyKey";
public const string InteractionE = "InteractionE";
}

View File

@ -6,6 +6,11 @@ using UnityEngine;
namespace BlueWater.Tycoons
{
public static class StatueBarrelSpineAnimation
{
public const string Idle = "Idle";
}
public static class LiquidBarrelSpineAnimation
{
public const string IdleLevel0 = "Empty";
@ -68,7 +73,11 @@ namespace BlueWater.Tycoons
_liquidImage.sprite = IsActivated ? LiquidData.Sprite : DataManager.Instance.SpriteDataSo.BarrelLock;
if (!IsStatue)
if (IsStatue)
{
SpineController.PlayAnimation(StatueBarrelSpineAnimation.Idle, false);
}
else
{
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.IdleLevel0, false);
}
@ -167,30 +176,16 @@ namespace BlueWater.Tycoons
InteractionMessage = $"{Utils.GetLocalizedString(LiquidData.Idx)} {Utils.GetLocalizedString("Pour")}";
}
if (IsStatue)
{
base.ShowInteractionUi();
}
else
{
SpineController.EnableCustomMaterial();
EventManager.InvokeShowInteractionUi(InteractionMessage);
IsShowing = true;
}
SpineController.EnableCustomMaterial();
EventManager.InvokeShowInteractionUi(InteractionMessage);
IsShowing = true;
}
public override void HideInteractionUi()
{
if (IsStatue)
{
base.HideInteractionUi();
}
else
{
SpineController.DisableCustomMaterial();
EventManager.InvokeHideInteractionUi();
IsShowing = false;
}
SpineController.DisableCustomMaterial();
EventManager.InvokeHideInteractionUi();
IsShowing = false;
}
public override void Activate()

View File

@ -1,4 +1,5 @@
using System;
using BlueWater.Audios;
using UnityEngine;
namespace BlueWater.Tycoons
@ -12,6 +13,9 @@ namespace BlueWater.Tycoons
[SerializeField]
private Sprite _heartSprite;
[SerializeField]
private string _cleaningSfxName = "CleaningFloor";
private bool _isPlayerInteracting;
private void Update()
@ -51,12 +55,14 @@ namespace BlueWater.Tycoons
{
GameManager.Instance.CurrentTycoonPlayer.IsCleaningFloor = true;
_isPlayerInteracting = true;
AudioManager.Instance.PlaySfx(_cleaningSfxName);
}
public override void CancelInteraction()
{
GameManager.Instance.CurrentTycoonPlayer.IsCleaningFloor = false;
_isPlayerInteracting = false;
AudioManager.Instance.StopSfx(_cleaningSfxName);
}
public override bool CanInteraction()

View File

@ -9,6 +9,7 @@ namespace BlueWater.Tycoons
public static class PumpSpineAnimation
{
public const string Idle = "Idle";
public const string Stop = "IdleStop";
public const string Run = "Run";
}
@ -37,10 +38,13 @@ namespace BlueWater.Tycoons
private string _playPumpSfxName = "PlayPump";
private bool _isPlayerInteracting;
private bool _isActivated;
protected override void Awake()
{
base.Awake();
EventManager.OnActivatePump += Activate;
_spineController = GetComponent<SpineController>();
}
@ -49,7 +53,7 @@ namespace BlueWater.Tycoons
{
base.Start();
_spineController.PlayAnimation(PumpSpineAnimation.Idle, true);
_spineController.PlayAnimation(PumpSpineAnimation.Stop, false);
}
private void Update()
@ -83,6 +87,11 @@ namespace BlueWater.Tycoons
}
}
private void OnDestroy()
{
EventManager.OnActivatePump -= Activate;
}
public override void Interaction()
{
AudioManager.Instance.PlaySfx(_attackSfxName, true);
@ -103,7 +112,7 @@ namespace BlueWater.Tycoons
public override bool CanInteraction()
{
return !GameManager.Instance.CurrentTycoonPlayer.TycoonPickupHandler.IsPickedUpAnything();
return _isActivated && !GameManager.Instance.CurrentTycoonPlayer.TycoonPickupHandler.IsPickedUpAnything();
}
public override void ShowInteractionUi()
@ -119,5 +128,11 @@ namespace BlueWater.Tycoons
EventManager.InvokeHideInteractionUi();
IsShowing = false;
}
public void Activate()
{
_isActivated = true;
_spineController.PlayAnimation(PumpSpineAnimation.Idle, true);
}
}
}

View File

@ -76,20 +76,7 @@ namespace BlueWater.Tycoons
private IEnumerator OpenRewardBoxCoroutine()
{
_isInteracting = true;
_animationController.SetAnimationParameter("isOpened", true);
var animationStarted = false;
yield return StartCoroutine(_animationController.WaitForAnimationToRun("Open",
success => animationStarted = success));
if (!animationStarted)
{
Destroy(gameObject);
yield break;
}
yield return new WaitUntil(() => _animationController.GetCurrentAnimationNormalizedTime() >= 1f);
EventManager.InvokeAddedGold(-_requiredGold, false);
switch (_rewardBoxType)
@ -104,6 +91,20 @@ namespace BlueWater.Tycoons
throw new ArgumentOutOfRangeException();
}
_animationController.SetAnimationParameter("isOpened", true);
var animationStarted = false;
yield return StartCoroutine(_animationController.WaitForAnimationToRun("Open",
success => animationStarted = success));
if (!animationStarted)
{
Destroy(gameObject);
yield break;
}
yield return new WaitUntil(() => _animationController.GetCurrentAnimationNormalizedTime() >= 1f);
Destroy(gameObject);
}
}

View File

@ -2,6 +2,7 @@ using BlueWater.Audios;
using BlueWater.Interfaces;
using BlueWater.Items;
using BlueWater.Players;
using Sirenix.OdinInspector;
using UnityEngine;
namespace BlueWater.Tycoons
@ -34,9 +35,13 @@ namespace BlueWater.Tycoons
[SerializeField]
private bool _isChanged;
[Title("사운드")]
[SerializeField]
private string _discardSfxName = "DiscardCocktail";
[SerializeField]
private string _changeRandomBoxSfxName = "ChangeRandomBox";
private bool _isPlayerInteracting;
private bool _canInteraction = true;
@ -121,6 +126,7 @@ namespace BlueWater.Tycoons
{
if (!_canRandomChange) return;
AudioManager.Instance.PlaySfx(_changeRandomBoxSfxName);
_spineController.PlayAnimation(TrashCanSpineAnimation.ChangeRandomBox, false);
_spineController.AddAnimation(TrashCanSpineAnimation.RandomBoxIdle, true);
_isChanged = true;

View File

@ -12,5 +12,15 @@ namespace BlueWater
public const string CompleteFirstGame = "CompleteFirstGame";
// 튜토리얼 데이터
public const string TutorialA = "TutorialA";
public const string TutorialB = "TutorialB";
public const string TutorialC = "TutorialC";
public const string TutorialD = "TutorialD";
public const string TutorialE = "TutorialE";
public const string TutorialF = "TutorialF";
public const string TutorialG = "TutorialG";
public const string TutorialH = "TutorialH";
public const string TutorialI = "TutorialI";
public const string TutorialJ = "TutorialJ";
}
}

View File

@ -36,4 +36,4 @@ MonoBehaviour:
- <BgmName>k__BackingField: TycoonBgm02
<Clip>k__BackingField: {fileID: 8300000, guid: 26776146cb587a74aa860cdac5318a39, type: 3}
- <BgmName>k__BackingField: TycoonResult
<Clip>k__BackingField: {fileID: 8300000, guid: 727c8fcf7bfe53744968a986ff7b43aa, type: 3}
<Clip>k__BackingField: {fileID: 8300000, guid: e149ff3b8678af448a8e1f04cf55649c, type: 3}

View File

@ -82,7 +82,7 @@ MonoBehaviour:
- <SfxName>k__BackingField: CleaningTable
<Clip>k__BackingField: {fileID: 8300000, guid: 717f06a127178564ab5ea8cdf9da3ef2, type: 3}
- <SfxName>k__BackingField: OpenManualBook
<Clip>k__BackingField: {fileID: 8300000, guid: a324e82da09f7f84cab40d74f755c9e8, type: 3}
<Clip>k__BackingField: {fileID: 8300000, guid: 1b87c0475bbd52b429768eeffe0b6ff5, type: 3}
- <SfxName>k__BackingField: CloseManualBook
<Clip>k__BackingField: {fileID: 8300000, guid: b1d132518b614a743ac3a571ac75718c, type: 3}
- <SfxName>k__BackingField: SucceedServing
@ -116,10 +116,20 @@ MonoBehaviour:
- <SfxName>k__BackingField: TycoonPlayerWalking
<Clip>k__BackingField: {fileID: 8300000, guid: 4b5f41d537a9a574b9520f50b39fb425, type: 3}
- <SfxName>k__BackingField: SelectCard
<Clip>k__BackingField: {fileID: 8300000, guid: 9f82d570d14d65b4a80fe00bae7bc0c0, type: 3}
<Clip>k__BackingField: {fileID: 8300000, guid: 39e368c24fb04084ea3ba929f16a4e91, type: 3}
- <SfxName>k__BackingField: CreateCrew
<Clip>k__BackingField: {fileID: 8300000, guid: 557c74c78a72aac41ae6da3f8477169c, type: 3}
<Clip>k__BackingField: {fileID: 8300000, guid: cbb6eb52c18da1c43bc2aa34def2df9c, type: 3}
- <SfxName>k__BackingField: TycoonPlayerAttacked
<Clip>k__BackingField: {fileID: 8300000, guid: 416cb3dc1c8801f46a4a3b14d7665d8b, type: 3}
- <SfxName>k__BackingField: RewardBoxInteractionFailed
<Clip>k__BackingField: {fileID: 8300000, guid: 5850aa1a011156841bed2ffc74d93bbd, type: 3}
- <SfxName>k__BackingField: TycoonPlayerDashing
<Clip>k__BackingField: {fileID: 8300000, guid: 595646b0d77e94543bbf73c0236ae42f, type: 3}
- <SfxName>k__BackingField: ChangeRandomBox
<Clip>k__BackingField: {fileID: 8300000, guid: 8fec2c602d8ae2b4ca2ab0f1c0f8a117, type: 3}
- <SfxName>k__BackingField: Purify
<Clip>k__BackingField: {fileID: 8300000, guid: b554c7102f4142d46aad7dd333a2616b, type: 3}
- <SfxName>k__BackingField: CreateMoldy
<Clip>k__BackingField: {fileID: 8300000, guid: a041f5ba1fec6304895b80091ebf431b, type: 3}
- <SfxName>k__BackingField: RareCardOpen
<Clip>k__BackingField: {fileID: 8300000, guid: 28272de0f0479f94691b57e097565010, type: 3}

File diff suppressed because it is too large Load Diff

View File

@ -30,6 +30,139 @@ MonoBehaviour:
<PageIndex>k__BackingField: 3
<DescriptionIdx>k__BackingField: TutorialA03
<Sprite>k__BackingField: {fileID: 21300000, guid: 29fd4626221cc4e449047cb509a4b670, type: 3}
- <Key>k__BackingField: TutorialB
<Value>k__BackingField:
<TutorialName>k__BackingField: TutorialB
<TitleTextIdx>k__BackingField: TutorialTitleB
<TutorialPages>k__BackingField:
- <TutorialPageType>k__BackingField: 0
<PageIndex>k__BackingField: 1
<DescriptionIdx>k__BackingField: TutorialB01
<Sprite>k__BackingField: {fileID: 21300000, guid: 3d7a8b0b4b41eac4aa4098cef0206994, type: 3}
- <TutorialPageType>k__BackingField: 1
<PageIndex>k__BackingField: 2
<DescriptionIdx>k__BackingField: TutorialB02
<Sprite>k__BackingField: {fileID: 21300000, guid: 1b6fbbe5c5df6df45b4feabedfc5d24d, type: 3}
- <TutorialPageType>k__BackingField: 1
<PageIndex>k__BackingField: 3
<DescriptionIdx>k__BackingField: TutorialB03
<Sprite>k__BackingField: {fileID: 21300000, guid: 4b752d2d5763abc4cb65b8355450cc70, type: 3}
- <TutorialPageType>k__BackingField: 2
<PageIndex>k__BackingField: 4
<DescriptionIdx>k__BackingField: TutorialB04
<Sprite>k__BackingField: {fileID: 21300000, guid: f13384a7d3bd41a48a5ef3bd2671681b, type: 3}
- <Key>k__BackingField: TutorialC
<Value>k__BackingField:
<TutorialName>k__BackingField: TutorialC
<TitleTextIdx>k__BackingField: TutorialTitleC
<TutorialPages>k__BackingField:
- <TutorialPageType>k__BackingField: 0
<PageIndex>k__BackingField: 1
<DescriptionIdx>k__BackingField: TutorialC01
<Sprite>k__BackingField: {fileID: 21300000, guid: 4c88f781368f1354bbc3dc6d16a5e092, type: 3}
- <TutorialPageType>k__BackingField: 2
<PageIndex>k__BackingField: 2
<DescriptionIdx>k__BackingField: TutorialC02
<Sprite>k__BackingField: {fileID: 21300000, guid: c2b2347daad35824fb06639765562756, type: 3}
- <Key>k__BackingField: TutorialD
<Value>k__BackingField:
<TutorialName>k__BackingField: TutorialD
<TitleTextIdx>k__BackingField: TutorialTitleD
<TutorialPages>k__BackingField:
- <TutorialPageType>k__BackingField: 0
<PageIndex>k__BackingField: 1
<DescriptionIdx>k__BackingField: TutorialD01
<Sprite>k__BackingField: {fileID: 21300000, guid: 498ee1d309cc40147be2fbc30f4e1f98, type: 3}
- <TutorialPageType>k__BackingField: 2
<PageIndex>k__BackingField: 2
<DescriptionIdx>k__BackingField: TutorialD02
<Sprite>k__BackingField: {fileID: 21300000, guid: 0e5d85d1988fddf4489c332411fdcd01, type: 3}
- <Key>k__BackingField: TutorialE
<Value>k__BackingField:
<TutorialName>k__BackingField: TutorialE
<TitleTextIdx>k__BackingField: TutorialTitleE
<TutorialPages>k__BackingField:
- <TutorialPageType>k__BackingField: 0
<PageIndex>k__BackingField: 1
<DescriptionIdx>k__BackingField: TutorialE01
<Sprite>k__BackingField: {fileID: 21300000, guid: 50aa58873f7c70a4e9e852c4f85c961d, type: 3}
- <TutorialPageType>k__BackingField: 1
<PageIndex>k__BackingField: 2
<DescriptionIdx>k__BackingField: TutorialE02
<Sprite>k__BackingField: {fileID: 21300000, guid: 1df0d2dcaa205ac4896a9445e53ca20d, type: 3}
- <TutorialPageType>k__BackingField: 1
<PageIndex>k__BackingField: 3
<DescriptionIdx>k__BackingField: TutorialE03
<Sprite>k__BackingField: {fileID: 21300000, guid: e8737123e0a24884fbdee2f95b076c02, type: 3}
- <TutorialPageType>k__BackingField: 2
<PageIndex>k__BackingField: 4
<DescriptionIdx>k__BackingField: TutorialE04
<Sprite>k__BackingField: {fileID: 21300000, guid: b944272f378e723459f5b917aecea0df, type: 3}
- <Key>k__BackingField: TutorialF
<Value>k__BackingField:
<TutorialName>k__BackingField: TutorialF
<TitleTextIdx>k__BackingField: TutorialTitleF
<TutorialPages>k__BackingField:
- <TutorialPageType>k__BackingField: 0
<PageIndex>k__BackingField: 1
<DescriptionIdx>k__BackingField: TutorialF01
<Sprite>k__BackingField: {fileID: 21300000, guid: 34afe998d81409849ac9027c92aa8298, type: 3}
- <TutorialPageType>k__BackingField: 0
<PageIndex>k__BackingField: 2
<DescriptionIdx>k__BackingField: TutorialF02
<Sprite>k__BackingField: {fileID: 21300000, guid: 314511725dea78e489cd83c8e6e7c7f4, type: 3}
- <Key>k__BackingField: TutorialG
<Value>k__BackingField:
<TutorialName>k__BackingField: TutorialG
<TitleTextIdx>k__BackingField: TutorialTitleG
<TutorialPages>k__BackingField:
- <TutorialPageType>k__BackingField: 0
<PageIndex>k__BackingField: 1
<DescriptionIdx>k__BackingField: TutorialG01
<Sprite>k__BackingField: {fileID: 21300000, guid: a89ec2f974875f84ba47bf0ee5f6bf43, type: 3}
- <TutorialPageType>k__BackingField: 2
<PageIndex>k__BackingField: 2
<DescriptionIdx>k__BackingField: TutorialG02
<Sprite>k__BackingField: {fileID: 21300000, guid: 28a69f413a21ad548aa6e4add76be684, type: 3}
- <Key>k__BackingField: TutorialH
<Value>k__BackingField:
<TutorialName>k__BackingField: TutorialH
<TitleTextIdx>k__BackingField: TutorialTitleH
<TutorialPages>k__BackingField:
- <TutorialPageType>k__BackingField: 3
<PageIndex>k__BackingField: 1
<DescriptionIdx>k__BackingField: TutorialH01
<Sprite>k__BackingField: {fileID: 21300000, guid: db00f49f58fded241a25b68b4ac8ff9a, type: 3}
- <Key>k__BackingField: TutorialI
<Value>k__BackingField:
<TutorialName>k__BackingField: TutorialI
<TitleTextIdx>k__BackingField: TutorialTitleI
<TutorialPages>k__BackingField:
- <TutorialPageType>k__BackingField: 3
<PageIndex>k__BackingField: 1
<DescriptionIdx>k__BackingField: TutorialI01
<Sprite>k__BackingField: {fileID: 21300000, guid: 6758a337148c7474588128873b3695a2, type: 3}
- <Key>k__BackingField: TutorialJ
<Value>k__BackingField:
<TutorialName>k__BackingField: TutorialJ
<TitleTextIdx>k__BackingField: TutorialTitleJ
<TutorialPages>k__BackingField:
- <TutorialPageType>k__BackingField: 0
<PageIndex>k__BackingField: 1
<DescriptionIdx>k__BackingField: TutorialJ01
<Sprite>k__BackingField: {fileID: 21300000, guid: df7a898725d87014cba236537831e17a, type: 3}
- <TutorialPageType>k__BackingField: 1
<PageIndex>k__BackingField: 2
<DescriptionIdx>k__BackingField: TutorialJ02
<Sprite>k__BackingField: {fileID: 21300000, guid: f3aded03bbc1e8345b08380f7647ffd4, type: 3}
- <TutorialPageType>k__BackingField: 1
<PageIndex>k__BackingField: 3
<DescriptionIdx>k__BackingField: TutorialJ03
<Sprite>k__BackingField: {fileID: 21300000, guid: 66cfebf11cb5b7d46bbec75addd1764e, type: 3}
- <TutorialPageType>k__BackingField: 2
<PageIndex>k__BackingField: 4
<DescriptionIdx>k__BackingField: TutorialJ04
<Sprite>k__BackingField: {fileID: 21300000, guid: 5d6455c1c94a7d44395818bc14d8a867, type: 3}
<FirstPopup>k__BackingField: {fileID: 1581927570, guid: d881395249d9f7d43940877db16f096d, type: 3}
<MiddlePopup>k__BackingField: {fileID: 1740845040, guid: 4eb21a9cf7ed8e44388a74756a151b20, type: 3}
<LastPopup>k__BackingField: {fileID: -1576049482, guid: d21603cd31610504c847fd606881daba, type: 3}

View File

@ -70,6 +70,12 @@ namespace BlueWater.Tycoons
Utils.RegisterList(Crews, newCrew);
newCrew.Initialize();
EventManager.InvokeUpdateCrewUi(BartenderCrews.Count, ServerCrews.Count, CleanerCrews.Count);
if (!ES3.Load(SaveData.TutorialF, false))
{
EventManager.InvokeTutorial(TutorialName.TutorialF);
ES3.Save(SaveData.TutorialF, true);
}
return newCrew;
}
@ -81,6 +87,12 @@ namespace BlueWater.Tycoons
Utils.RegisterList(Crews, newCrew);
newCrew.Initialize();
EventManager.InvokeUpdateCrewUi(BartenderCrews.Count, ServerCrews.Count, CleanerCrews.Count);
if (!ES3.Load(SaveData.TutorialD, false))
{
EventManager.InvokeTutorial(TutorialName.TutorialD);
ES3.Save(SaveData.TutorialD, true);
}
return newCrew;
}
@ -97,6 +109,12 @@ namespace BlueWater.Tycoons
newCrew.SetBartenderTable(spawnTransform.GetComponentInParent<BartenderTable>());
newCrew.Initialize();
EventManager.InvokeUpdateCrewUi(BartenderCrews.Count, ServerCrews.Count, CleanerCrews.Count);
if (!ES3.Load(SaveData.TutorialE, false))
{
EventManager.InvokeTutorial(TutorialName.TutorialE);
ES3.Save(SaveData.TutorialE, true);
}
return newCrew;
}

View File

@ -8,8 +8,9 @@ namespace BlueWater
{
public enum RewardBoxType
{
Normal = 0,
Rare = 1
None = 0,
Normal = 1,
Rare = 2
}
[Serializable]

View File

@ -368,10 +368,14 @@ namespace BlueWater
_reachedCollider.transform.position = _originalReachedPosition;
EventManager.InvokeCocktailStarted();
}
else if (_instanceLiquidCount >= _maxLiquidCount)
{
return;
}
_elapsedTime = 0f;
_isPouring = true;
AudioManager.Instance.PlaySfx(_pouringSfxName, loop: true);
AudioManager.Instance.PlaySfx(_pouringSfxName);
// To Center 이동 코루틴이 활성화 중이지 않을 때
if (_movePanelToCenterInstance == null)
@ -582,7 +586,7 @@ namespace BlueWater
float offsetY = Mathf.Lerp(_offsetY.x, _offsetY.y, t);
var playerViewportPoint = mainCamera.WorldToViewportPoint(playerPosition);
var panelWorldPosition = _overlayCamera.ViewportToWorldPoint(new Vector3(playerViewportPoint.x,
playerViewportPoint.y, _overlayCamera.nearClipPlane));
playerViewportPoint.y, playerViewportPoint.z));
panelWorldPosition.y += offsetY;
var lerpTime = elapsedTime / _moveToPlayerDuration;
@ -606,7 +610,7 @@ namespace BlueWater
float offsetY = Mathf.Lerp(_offsetY.x, _offsetY.y, t);
var playerViewportPoint = mainCamera.WorldToViewportPoint(playerPosition);
var panelWorldPosition = _overlayCamera.ViewportToWorldPoint(new Vector3(playerViewportPoint.x,
playerViewportPoint.y, _overlayCamera.nearClipPlane));
playerViewportPoint.y, playerViewportPoint.z));
panelWorldPosition.y += offsetY;
_liquidPanel.transform.position = panelWorldPosition;

View File

@ -28,6 +28,9 @@ namespace BlueWater.Tycoons
[Title("사운드")]
[SerializeField]
private string _selectCardSfxName = "SelectCard";
[SerializeField]
private string _purifySfxName = "Purify";
private TycoonManager _tycoonManager;
private TycoonStatus _tycoonStatus;
@ -135,6 +138,7 @@ namespace BlueWater.Tycoons
break;
case "AllCustomerPurification":
EventManager.InvokePurifiedCustomerAll();
AudioManager.Instance.PlaySfx(_purifySfxName);
break;
case "GaugeTimeUp":
_tycoonStatus.CustomerHurryTimeIncrease += 3;

View File

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using BlueWater.Audios;
using BlueWater.Items;
using Sirenix.OdinInspector;
using UnityEngine;
@ -32,6 +33,9 @@ namespace BlueWater.Tycoons
public GarnishBarrel GarnishBarrel2 { get; private set; }
private List<Barrel> _barrels;
[SerializeField]
private string _createMoldySfxName = "CreateMoldy";
private void Awake()
{
@ -125,6 +129,8 @@ namespace BlueWater.Tycoons
int randomIndex = Random.Range(0, moldableElements.Count);
moldableElements[randomIndex].Mold();
AudioManager.Instance.PlaySfx(_createMoldySfxName);
}
}
}

View File

@ -1,5 +1,3 @@
using System;
using BlueWater.Audios;
using UnityEngine;
using Sirenix.OdinInspector;
@ -29,9 +27,6 @@ namespace BlueWater.Tycoons
[field: SerializeField]
public TycoonCardController TycoonCardController { get; private set; }
[SerializeField]
private string _dailyBgm;
[field: Title("타이쿤 플레이어 스탯")]
[field: SerializeField]
public TycoonStatus TycoonStatus { get; private set; }
@ -47,11 +42,6 @@ namespace BlueWater.Tycoons
private void Start()
{
if (!string.IsNullOrEmpty(_dailyBgm))
{
AudioManager.Instance.PlayBgm(_dailyBgm);
}
TycoonStatus = new TycoonStatus();
TycoonStatus.Initialize();
}

View File

@ -156,7 +156,7 @@ namespace BlueWater.Tycoons
[Button("노말 상자 생성")]
public void CreateChest(LevelData levelData)
{
if (levelData.Idx == "1") return;
if (levelData.Idx == "1" || levelData.RewardBoxType == RewardBoxType.None) return;
var spawnPosition = Utils.RandomPositionOnGraph(1);

View File

@ -352,6 +352,7 @@ namespace BlueWater.Tycoons
case "Upgrade1":
tycoonManager.CustomerTableController.ShowCustomerTable(1);
tycoonManager.TycoonIngredientController.LiquidBarrelB.Activate();
EventManager.InvokeActivatePump();
break;
case "Upgrade2":
tycoonManager.CustomerTableController.ShowCustomerTable(2);

View File

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

View File

@ -0,0 +1,47 @@
namespace BlueWater.Uis
{
public class PausePopupUi : PopupUi
{
public override void Open()
{
VisualFeedbackManager.Instance.SetBaseTimeScale(0f);
PopupUiController.RegisterPopup(this);
IsOpened = true;
IsPaused = true;
}
public override void Close()
{
PopupUiController.UnregisterPopup(this);
IsOpened = false;
IsPaused = false;
if (PopupUiController.IsPopupListEmpty() || !PopupUiController.IsPausedPopupList())
{
VisualFeedbackManager.Instance.ResetTimeScale();
}
}
public void OpenSwitch(InputActionMaps inputActionMaps)
{
VisualFeedbackManager.Instance.SetBaseTimeScale(0f);
PopupUiController.RegisterPopup(this);
IsOpened = true;
IsPaused = true;
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(inputActionMaps);
}
public void CloseSwitch(InputActionMaps inputActionMaps)
{
PopupUiController.UnregisterPopup(this);
IsOpened = false;
IsPaused = false;
if (PopupUiController.IsPopupListEmpty() || !PopupUiController.IsPausedPopupList())
{
VisualFeedbackManager.Instance.ResetTimeScale();
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(inputActionMaps);
}
}
}
}

View File

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

View File

@ -5,19 +5,16 @@ namespace BlueWater.Uis
public class PopupUi : MonoBehaviour
{
public bool IsOpened { get; protected set; }
public bool IsPaused { get; protected set; }
public virtual void Open()
{
// 화면의 가장 앞으로 가져오기
// transform.SetAsLastSibling();
gameObject.SetActive(true);
PopupUiController.RegisterPopup(this);
IsOpened = true;
}
public virtual void Close()
{
gameObject.SetActive(false);
PopupUiController.UnregisterPopup(this);
IsOpened = false;
}

View File

@ -56,6 +56,21 @@ namespace BlueWater
}
}
/// <summary>
/// 현재 열려있는 팝업 리스트 중에 시간을 멈춘 팝업이 있는지 없는지 확인
/// </summary>
public static bool IsPausedPopupList()
{
foreach (var element in PopupUis)
{
if (!element.IsPaused) continue;
return true;
}
return false;
}
// Popup 목록이 비어 있는지 확인
public static bool IsPopupListEmpty() => PopupUis.Count == 0;

View File

@ -6,12 +6,16 @@ namespace BlueWater.Uis
{
public override void Open()
{
PopupUiController.RegisterPopup(this);
gameObject.SetActive(true);
IsOpened = true;
}
public override void Close()
{
gameObject.SetActive(false);
PopupUiController.UnregisterPopup(this);
IsOpened = false;
}
public override void EnableInput()

View File

@ -125,16 +125,14 @@ public class TitleOptions : PopupUi
public override void Open()
{
PopupUiController.RegisterPopup(this);
base.Open();
_panel.SetActive(true);
IsOpened = true;
}
public override void Close()
{
_panel.SetActive(false);
PopupUiController.UnregisterPopup(this);
IsOpened = false;
base.Close();
}
public override void EnableInput()

View File

@ -3,7 +3,6 @@ using BlueWater.Uis;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.InputSystem;
using UnityEngine.Serialization;
using UnityEngine.UI;
namespace BlueWater
@ -19,8 +18,8 @@ namespace BlueWater
[SerializeField]
private Button _cancelButton;
[FormerlySerializedAs("_uiNavigationController")] [SerializeField]
private UiEventsController uiEventsController;
[SerializeField]
private UiEventsController _uiEventsController;
private InputAction _interactionEAction;
private InputAction _closeOptionsAction;
@ -49,17 +48,16 @@ namespace BlueWater
public override void Open()
{
PopupUiController.RegisterPopup(this);
base.Open();
_panel.SetActive(true);
IsOpened = true;
EventSystem.current.SetSelectedGameObject(_cancelButton.gameObject);
// EventSystem.current.SetSelectedGameObject(_cancelButton.gameObject);
}
public override void Close()
{
_panel.SetActive(false);
PopupUiController.UnregisterPopup(this);
IsOpened = false;
base.Close();
EventSystem.current.SetSelectedGameObject(null);
}
public override void EnableInput()
@ -67,7 +65,7 @@ namespace BlueWater
_interactionEAction.performed += OnInteractionE;
_closeOptionsAction.performed += OnCloseOptions;
uiEventsController.EnableAutoNavigate(_cancelButton.gameObject);
_uiEventsController.EnableAutoNavigate(_cancelButton.gameObject);
}
public override void DisableInput()
@ -75,7 +73,7 @@ namespace BlueWater
_interactionEAction.performed -= OnInteractionE;
_closeOptionsAction.performed -= OnCloseOptions;
uiEventsController.DisableAutoNavigate();
_uiEventsController.DisableAutoNavigate();
}
public void OnInteractionE(InputAction.CallbackContext context)

View File

@ -12,7 +12,7 @@ using UnityEngine.UI;
namespace BlueWater.Titles
{
public class TycoonTitle : PopupUi
public class TycoonTitle : PausePopupUi
{
[SerializeField]
private GameObject _panel;
@ -81,6 +81,8 @@ namespace BlueWater.Titles
_interactionEAction = _playerInputKeyManager.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.InteractionE);
_openAction = _playerInputKeyManager.GetAction(InputActionMaps.Tycoon, TycoonActions.Options);
_closeAction = _playerInputKeyManager.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.Cancel);
EventManager.OnTutorial += ShowTutorialUiByName;
if (_isTitleScene)
{
@ -89,7 +91,7 @@ namespace BlueWater.Titles
AudioManager.Instance.PlayBgm(_dailyBgm);
Open();
EventSystem.current.SetSelectedGameObject(_startGameButton.gameObject);
// EventSystem.current.SetSelectedGameObject(_startGameButton.gameObject);
}
else
{
@ -100,6 +102,7 @@ namespace BlueWater.Titles
titleOptions.CloseOptions = HideSettingUi;
titleQuitUi.CloseQuit = HideQuitUi;
_tycoonTutorial.CloseAction = HideTutorialUi;
_versionText.text = GetVersion();
inkMaterialInstance = Instantiate(_ink.material);
@ -108,6 +111,8 @@ namespace BlueWater.Titles
private void OnDestroy()
{
EventManager.OnTutorial -= ShowTutorialUiByName;
if (_isTitleScene)
{
_startGameButton?.onClick.RemoveListener(() => SceneController.Instance?.LoadScene(SceneName.Tycoon));
@ -138,21 +143,19 @@ namespace BlueWater.Titles
public override void Open()
{
PopupUiController.RegisterPopup(this);
OpenSwitch(InputActionMaps.TycoonUi);
_panel.SetActive(true);
if (_isTitleScene)
{
}
else
{
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
_playerInputKeyManager.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
EventSystem.current.SetSelectedGameObject(_resumeGameButton.gameObject);
}
IsOpened = true;
// if (_isTitleScene)
// {
//
// }
// else
// {
// VisualFeedbackManager.Instance.SetBaseTimeScale(0f);
// _playerInputKeyManager.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
// // EventSystem.current.SetSelectedGameObject(_resumeGameButton.gameObject);
// }
}
public void OnClose(InputAction.CallbackContext context)
@ -162,19 +165,22 @@ namespace BlueWater.Titles
public override void Close()
{
// base.Close();
//
// if (_isTitleScene)
// {
//
// }
// else
// {
// if (PopupUiController.IsPopupListEmpty() || !PopupUiController.IsPausedPopupList())
// {
// VisualFeedbackManager.Instance.ResetTimeScale();
// _playerInputKeyManager.SwitchCurrentActionMap(InputActionMaps.Tycoon);
// }
// }
_panel.SetActive(false);
PopupUiController.UnregisterPopup(this);
IsOpened = false;
if (_isTitleScene)
{
}
else
{
_playerInputKeyManager.SwitchCurrentActionMap(InputActionMaps.Tycoon);
VisualFeedbackManager.Instance.ResetTimeScale();
}
CloseSwitch(InputActionMaps.Tycoon);
}
public override void EnableInput()
@ -238,19 +244,21 @@ namespace BlueWater.Titles
{
_titleMenuUiPanel.SetActive(false);
titleOptions.Open();
EventSystem.current.SetSelectedGameObject(null);
}
public void HideSettingUi()
{
titleOptions.Close();
_titleMenuUiPanel.SetActive(true);
EventSystem.current.SetSelectedGameObject(_optionsButton.gameObject);
// EventSystem.current.SetSelectedGameObject(_optionsButton.gameObject);
}
public void ShowQuitUi()
{
_titleMenuUiPanel.SetActive(false);
titleQuitUi.Open();
EventSystem.current.SetSelectedGameObject(null);
Utils.StartUniqueCoroutine(this, ref _inkCoroutine, MoveInkBackground(1f));
}
@ -259,7 +267,7 @@ namespace BlueWater.Titles
{
titleQuitUi.Close();
_titleMenuUiPanel.SetActive(true);
EventSystem.current.SetSelectedGameObject(_quitGameButton.gameObject);
// EventSystem.current.SetSelectedGameObject(_quitGameButton.gameObject);
Utils.StartUniqueCoroutine(this, ref _inkCoroutine, MoveInkBackground(0.4f));
}
@ -267,14 +275,32 @@ namespace BlueWater.Titles
public void ShowTutorialUi()
{
_titleMenuUiPanel.SetActive(false);
_tycoonTutorial.ShowUi();
_tycoonTutorial.ShowUi(true);
EventSystem.current.SetSelectedGameObject(null);
Utils.StartUniqueCoroutine(this, ref _inkCoroutine, MoveInkBackground(1f));
}
public void HideTutorialUi()
public void HideTutorialUi(bool isMenu)
{
if (!isMenu)
{
_panel.SetActive(false);
}
_titleMenuUiPanel.SetActive(true);
_tycoonTutorial.HideUi();
EventSystem.current.SetSelectedGameObject(_tutorialButton.gameObject);
// EventSystem.current.SetSelectedGameObject(_tutorialButton.gameObject);
Utils.StartUniqueCoroutine(this, ref _inkCoroutine, MoveInkBackground(0.4f));
}
public void ShowTutorialUiByName(string tutorialName)
{
_titleMenuUiPanel.SetActive(false);
_tycoonTutorial.ShowUiByName(tutorialName);
_panel.SetActive(true);
Utils.StartUniqueCoroutine(this, ref _inkCoroutine, MoveInkBackground(1f));
}
private IEnumerator MoveInkBackground(float pos)

View File

@ -18,7 +18,7 @@ using UnityEngine.UI;
namespace BlueWater.Uis
{
public class ManualBook : PopupUi
public class ManualBook : PausePopupUi
{
[SerializeField]
private GameObject _panel;
@ -55,7 +55,7 @@ namespace BlueWater.Uis
[Title("참조")]
[SerializeField]
private UiEventsController uiEventsController;
private UiEventsController _uiEventsController;
[Title("실시간 데이터")]
[SerializeField]
@ -99,8 +99,7 @@ namespace BlueWater.Uis
_openManualBookAction.performed += OnOpen;
uiEventsController.SetSelectObject(_cocktailRecipeButtons[0].gameObject);
EventSystem.current.SetSelectedGameObject(uiEventsController.SelectObject);
_uiEventsController.SetSelectObject(_cocktailRecipeButtons[0].gameObject);
}
private void OnDestroy()
@ -145,13 +144,10 @@ namespace BlueWater.Uis
{
if (!PopupUiController.IsPopupListEmpty()) return;
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
PopupUiController.RegisterPopup(this);
OpenSwitch(InputActionMaps.TycoonUi);
_panel.SetActive(true);
IsOpened = true;
AudioManager.Instance.PlaySfx(_openManualSfxName, ignoreTimeScale: true);
EventSystem.current.SetSelectedGameObject(uiEventsController.SelectObject);
EventSystem.current.SetSelectedGameObject(_uiEventsController.SelectObject);
}
public void OnClose(InputAction.CallbackContext context)
@ -163,22 +159,19 @@ namespace BlueWater.Uis
{
AudioManager.Instance.PlaySfx(_closeManualSfxName, ignoreTimeScale: true);
_panel.SetActive(false);
PopupUiController.UnregisterPopup(this);
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
IsOpened = false;
VisualFeedbackManager.Instance.ResetTimeScale();
CloseSwitch(InputActionMaps.Tycoon);
}
public override void EnableInput()
{
_pressQAction.performed += OnClose;
_cancelAction.performed += OnClose;
uiEventsController.EnableAutoNavigate();
_uiEventsController.EnableAutoNavigate();
}
public override void DisableInput()
{
uiEventsController.DisableAutoNavigate();
_uiEventsController.DisableAutoNavigate();
_pressQAction.performed -= OnClose;
_cancelAction.performed -= OnClose;
}
@ -229,7 +222,7 @@ namespace BlueWater.Uis
public void SelectItem(CocktailRecipeButton cocktailRecipeButton)
{
_selectedCocktailRecipeButton = cocktailRecipeButton;
uiEventsController.SetSelectObject(_selectedCocktailRecipeButton.gameObject);
_uiEventsController.SetSelectObject(_selectedCocktailRecipeButton.gameObject);
_selectedCocktailName.text = Utils.GetLocalizedString(_selectedCocktailRecipeButton.CocktailData.Idx);
_selectedCocktailImage.sprite = _selectedCocktailRecipeButton.CocktailData.Sprite;

View File

@ -0,0 +1,72 @@
using System;
using System.Collections.Generic;
using UnityEngine;
namespace BlueWater
{
[Serializable]
public class TutorialLink
{
[field: SerializeField]
public string TutorialName { get; private set; }
[field: SerializeField]
public TutorialPageToggle TutorialPageToggle { get; private set; }
[field: SerializeField]
public List<TycoonTutorialPopupUi> TycoonTutorialPopupUis { get; private set; }
[field: SerializeField]
public int CurrentPageIndex { get; private set; }
public TutorialLink(string tutorialName, TutorialPageToggle tutorialPageToggle, List<TycoonTutorialPopupUi> tycoonTutorialPopupUis)
{
TutorialName = tutorialName;
TutorialPageToggle = tutorialPageToggle;
TycoonTutorialPopupUis = tycoonTutorialPopupUis;
}
public void OnToggle(bool isOn)
{
if (!TutorialPageToggle) return;
TutorialPageToggle.OnToggle(isOn);
if (isOn)
{
OpenPage(0);
}
else
{
CloseAllPage();
}
}
public void OpenPage(int pageIndex)
{
CurrentPageIndex = Mathf.Clamp(pageIndex, 0, TycoonTutorialPopupUis.Count - 1);
TycoonTutorialPopupUis[CurrentPageIndex].Open();
}
public void ClosePage(int pageIndex)
{
TycoonTutorialPopupUis[CurrentPageIndex].Close();
}
public void CloseAllPage()
{
foreach (TycoonTutorialPopupUi tycoonTutorialPopupUi in TycoonTutorialPopupUis)
{
if (!tycoonTutorialPopupUi.IsOpened) continue;
tycoonTutorialPopupUi.Close();
}
}
public void MovePage(bool moveNext)
{
ClosePage(CurrentPageIndex);
OpenPage(CurrentPageIndex + (moveNext ? 1 : -1));
}
}
}

View File

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

View File

@ -8,7 +8,7 @@ namespace BlueWater
First = 0,
Middle = 1,
Last = 2,
Sole = 3
Solo = 3
}
[Serializable]

View File

@ -14,6 +14,9 @@ namespace BlueWater
{
public class TutorialPageToggle : MonoBehaviour
{
[field: SerializeField]
public RectTransform Rect { get; private set; }
[SerializeField]
private Toggle _toggle;
@ -43,13 +46,18 @@ namespace BlueWater
private Coroutine _changedLocaleInstance;
private Sequence _selectSequence;
private Sequence _deselectSequence;
public Action<bool> OnToggleEvent;
private void Awake()
{
LocalizationSettings.SelectedLocaleChanged += OnChangedLocale;
}
private void OnEnable()
{
_buttonText.text = Utils.GetLocalizedString(_tutorialInfo.TitleTextIdx);
}
private void OnDestroy()
{
@ -57,8 +65,6 @@ namespace BlueWater
_selectSequence.Kill();
_deselectSequence.Kill();
OnToggleEvent = null;
}
private void OnChangedLocale(Locale locale)
@ -102,17 +108,22 @@ namespace BlueWater
.SetUpdate(true)
.SetAutoKill(false)
.Pause();
_toggle.interactable = true;
_toggle.isOn = false;
_toggleImage.sprite = _deselectToggleSprite;
Vector3 newPosition = _buttonText.transform.localPosition;
newPosition.y = _buttonTextPositionY.x;
_buttonText.transform.localPosition = newPosition;
Vector3 newScale = _toggleImage.transform.localScale;
newScale.y = _buttonImageScale.x;
_toggleImage.transform.localScale = newScale;
}
public void OnToggle(bool isOn)
{
if (_toggle.isOn)
{
_toggle.interactable = false;
return;
}
_toggle.interactable = true;
_toggle.isOn = isOn;
_toggle.interactable = !_toggle.isOn;
if (isOn)
{
@ -126,6 +137,7 @@ namespace BlueWater
_selectSequence?.Pause();
_deselectSequence.Restart();
}
OnToggleEvent?.Invoke(isOn);
}
}

View File

@ -10,7 +10,7 @@ using Random = UnityEngine.Random;
namespace BlueWater.Uis
{
public class TycoonRareRewardBoxUi : PopupUi
public class TycoonRareRewardBoxUi : PausePopupUi
{
[SerializeField]
private GameObject _panel;
@ -23,15 +23,26 @@ namespace BlueWater.Uis
private Vector3 _cardLocalScale_3 = new(0.8f, 0.8f, 1f);
private Vector3 _cardLocalScale_4 = new(0.7f, 0.7f, 1f);
private Vector3 _cardLocalScale_5 = new(0.65f, 0.65f, 1f);
[SerializeField]
private string _openSfxName = "OpenRareRewardBox";
[SerializeField]
private Button allOpenCardButton;
[SerializeField]
private Button closeButton;
[Title("사운드")]
[SerializeField]
private string _openSfxName = "OpenRareRewardBox";
[SerializeField]
private string _cardOpenSfxName = "RareCardOpen";
[SerializeField]
private string _cardOpenAllSfxName = "SelectCard";
[Title("참조")]
[SerializeField]
private UiEventsController _uiEventsController;
private List<TycoonCard> _tycoonCards = new(5);
private int viewCardCount = 0;
@ -61,36 +72,30 @@ namespace BlueWater.Uis
public override void Open()
{
OpenSwitch(InputActionMaps.TycoonUi);
AudioManager.Instance.PlaySfx(_openSfxName, ignoreTimeScale: true);
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
PopupUiController.RegisterPopup(this);
_panel.SetActive(true);
IsOpened = true;
allOpenCardButton.gameObject.SetActive(true);
closeButton.gameObject.SetActive(false);
_panel.SetActive(true);
}
public override void Close()
{
AudioManager.Instance.PlaySfx(_cardOpenAllSfxName, ignoreTimeScale: true);
CloseSwitch(InputActionMaps.Tycoon);
_panel.SetActive(false);
PopupUiController.UnregisterPopup(this);
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
IsOpened = false;
VisualFeedbackManager.Instance.ResetTimeScale();
}
public override void EnableInput()
{
_interactionEAction.performed += OnInteractionE;
this.GetComponent<UiEventsController>().EnableAutoNavigate();
_uiEventsController.EnableAutoNavigate();
}
public override void DisableInput()
{
_interactionEAction.performed -= OnInteractionE;
this.GetComponent<UiEventsController>().DisableAutoNavigate();
_uiEventsController.DisableAutoNavigate();
}
@ -149,11 +154,12 @@ namespace BlueWater.Uis
_tycoonCardController.SelectCard(element);
}
GetComponent<UiEventsController>().SetSelectObject(_tycoonCards[(int)(_tycoonCards.Count/2)].CardArea.gameObject);
_uiEventsController.SetSelectObject(_tycoonCards[(int)(_tycoonCards.Count/2)].CardArea.gameObject);
}
private void OpenCard(TycoonCard tycoonCard)
{
AudioManager.Instance.PlaySfx(_cardOpenSfxName, ignoreTimeScale: true);
tycoonCard.Rotation_Start();
tycoonCard.SetSelectAction(null);
viewCardCount--;
@ -168,6 +174,7 @@ namespace BlueWater.Uis
[Button("카드 모두 열기")]
public void AllOpenCard()
{
AudioManager.Instance.PlaySfx(_cardOpenSfxName, ignoreTimeScale: true);
viewCardCount = 0;
//남은 카드가 열리는 연출만 추가하자
foreach (var element in _tycoonCards)

View File

@ -2,17 +2,19 @@ using System;
using System.Collections;
using System.Collections.Generic;
using BlueWater.Audios;
using BlueWater.Npcs.Customers;
using BlueWater.Tycoons;
using BlueWater.Utility;
using UnityEngine;
using Sirenix.OdinInspector;
using TMPro;
using UnityEngine.InputSystem;
using UnityEngine.Serialization;
using UnityEngine.UI;
namespace BlueWater.Uis
{
public class TycoonResultUi : PopupUi
public class TycoonResultUi : PausePopupUi
{
[Title("결과 카드")]
[SerializeField]
@ -63,6 +65,13 @@ namespace BlueWater.Uis
[SerializeField]
private GameObject _customerContents;
[SerializeField]
private GameObject _bigCatPanel;
[SerializeField]
private TMP_Text _bigCatText;
private int _bigCatCount;
[SerializeField]
private GameObject _casperPanel;
@ -71,6 +80,20 @@ namespace BlueWater.Uis
private TMP_Text _casperText;
private int _casperCount;
[SerializeField]
private GameObject _casperBlackPanel;
[SerializeField]
private TMP_Text _casperBlackText;
private int _casperBlackCount;
[SerializeField]
private GameObject _catPanel;
[SerializeField]
private TMP_Text _catText;
private int _catCount;
[SerializeField]
private GameObject _pumpkinPanel;
@ -78,6 +101,20 @@ namespace BlueWater.Uis
private TMP_Text _pumpkinText;
private int _pumpkinCount;
[SerializeField]
private GameObject _reaperPanel;
[SerializeField]
private TMP_Text _reaperText;
private int _reaperCount;
[SerializeField]
private GameObject _witchPanel;
[SerializeField]
private TMP_Text _witchText;
private int _witchCount;
[Title("서비스")]
[SerializeField]
private GameObject _serviceTitlePanel;
@ -196,6 +233,7 @@ namespace BlueWater.Uis
private InputAction _pressAnyKeyAction;
private float _playTime;
private bool _isSetData;
private void Awake()
{
@ -219,8 +257,13 @@ namespace BlueWater.Uis
_mainMenuButton.onClick.AddListener(() => SceneController.Instance.LoadScene(SceneName.TycoonTile));
_restartButton.onClick.AddListener(SceneController.Instance.RestartCurrentScene);
_bigCatCount = 0;
_casperCount = 0;
_casperBlackCount = 0;
_catCount = 0;
_pumpkinCount = 0;
_reaperCount = 0;
_witchCount = 0;
_goodServingCount = 0;
_failedServingCount = 0;
_missServingCount = 0;
@ -255,11 +298,9 @@ namespace BlueWater.Uis
[Button("결과 연출 테스트")]
public override void Open()
{
OpenSwitch(InputActionMaps.TycoonUi);
AudioManager.Instance.StopSfx("TycoonGameOver");
AudioManager.Instance.PlayBgm(_bgmName);
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
PopupUiController.RegisterPopup(this);
IsOpened = true;
Utils.StartUniqueCoroutine(this, ref _showResultInstance, ShowResultCoroutine());
}
@ -309,8 +350,13 @@ namespace BlueWater.Uis
_textPanel.SetActive(true);
_customerPanel.SetActive(true);
_customerContents.SetActive(true);
_bigCatPanel.SetActive(true);
_casperPanel.SetActive(true);
_casperBlackPanel.SetActive(true);
_catPanel.SetActive(true);
_pumpkinPanel.SetActive(true);
_reaperPanel.SetActive(true);
_witchPanel.SetActive(true);
yield return panelWaitingTime;
_serviceTitlePanel.SetActive(true);
@ -373,8 +419,13 @@ namespace BlueWater.Uis
_textPanel.SetActive(isActive);
_customerPanel.SetActive(isActive);
_customerContents.SetActive(isActive);
_bigCatPanel.SetActive(isActive);
_casperPanel.SetActive(isActive);
_casperBlackPanel.SetActive(isActive);
_catPanel.SetActive(isActive);
_pumpkinPanel.SetActive(isActive);
_reaperPanel.SetActive(isActive);
_witchPanel.SetActive(isActive);
_serviceTitlePanel.SetActive(isActive);
_serviceContents.SetActive(isActive);
_goodServingPanel.SetActive(isActive);
@ -410,8 +461,13 @@ namespace BlueWater.Uis
_roundText.text = $"{Utils.GetLocalizedString("Round")} : {TycoonManager.Instance.GetCurrentLevelData().Idx}";
_playTimeText.text = $"{Utils.GetLocalizedString("PlayTime")} : {Mathf.FloorToInt(_playTime / 60f):D2} : {Mathf.FloorToInt(_playTime % 60f):D2}";
_bigCatText.text = _bigCatCount.ToString();
_casperText.text = _casperCount.ToString();
_casperBlackText.text = _casperBlackCount.ToString();
_catText.text = _catCount.ToString();
_pumpkinText.text = _pumpkinCount.ToString();
_reaperText.text = _reaperCount.ToString();
_witchText.text = _witchCount.ToString();
_goodServingText.text = _goodServingCount.ToString();
_failedServingText.text = _failedServingCount.ToString();
_missServingText.text = _missServingCount.ToString();
@ -426,7 +482,8 @@ namespace BlueWater.Uis
int percent = Mathf.RoundToInt(endGoldMultiplier * 100);
char sign = percent >= 0 ? '+' : '-';
_minusPercentText.color = percent >= 0 ? Color.blue : Color.red;
_minusPercentText.text = $"{sign} {percent}%";
_minusPercentText.text = $"{sign} {Mathf.Abs(percent)}%";
_isSetData = true;
}
[Button("결과 즉시 테스트")]
@ -437,22 +494,40 @@ namespace BlueWater.Uis
StopCoroutine(_showResultInstance);
_showResultInstance = null;
}
SetResultData();
if (!_isSetData)
{
SetResultData();
}
SetActiveUi(true);
}
private void AddCustomerCount(int skinIndex)
private void AddCustomerCount(CustomerSkin skinIndex)
{
switch (skinIndex)
{
case 0:
case CustomerSkin.BigCat:
_bigCatCount++;
break;
case CustomerSkin.Casper:
_casperCount++;
break;
case 1:
case CustomerSkin.CasperBlack:
_casperBlackCount++;
break;
case CustomerSkin.Cat:
_catCount++;
break;
case CustomerSkin.PumkinHead:
_pumpkinCount++;
break;
default:;
case CustomerSkin.Reaper:
_reaperCount++;
break;
case CustomerSkin.Witch:
_witchCount++;
break;
default:
throw new Exception("손님 스킨 인덱스 오류");
}
}

View File

@ -1,6 +1,5 @@
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using BlueWater.Audios;
using BlueWater.Tycoons;
using Sirenix.OdinInspector;
@ -8,11 +7,10 @@ using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.InputSystem;
using UnityEngine.UI;
using Random = UnityEngine.Random;
namespace BlueWater.Uis
{
public class TycoonSelectCard : PopupUi
public class TycoonSelectCard : PausePopupUi
{
[SerializeField]
private GameObject _panel;
@ -22,6 +20,10 @@ namespace BlueWater.Uis
[SerializeField]
private string _openSfxName = "OpenNormalRewardBox";
[Title("참조")]
[SerializeField]
private UiEventsController _uiEventsController;
private List<TycoonCard> _tycoonCards = new(3);
@ -55,34 +57,27 @@ namespace BlueWater.Uis
public override void Open()
{
OpenSwitch(InputActionMaps.TycoonUi);
AudioManager.Instance.PlaySfx(_openSfxName, ignoreTimeScale: true);
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
PopupUiController.RegisterPopup(this);
_panel.SetActive(true);
IsOpened = true;
}
public override void Close()
{
CloseSwitch(InputActionMaps.Tycoon);
_panel.SetActive(false);
PopupUiController.UnregisterPopup(this);
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
IsOpened = false;
VisualFeedbackManager.Instance.ResetTimeScale();
}
public override void EnableInput()
{
_interactionEAction.performed += OnInteractionE;
this.GetComponent<UiEventsController>().EnableAutoNavigate();
_uiEventsController.EnableAutoNavigate();
}
public override void DisableInput()
{
_interactionEAction.performed -= OnInteractionE;
this.GetComponent<UiEventsController>().DisableAutoNavigate();
_uiEventsController.DisableAutoNavigate();
}
public void OnInteractionE(InputAction.CallbackContext context)
@ -139,7 +134,7 @@ namespace BlueWater.Uis
StartCoroutine(FadeInPanel());
}
this.GetComponent<UiEventsController>().SetSelectObject(_tycoonCards[0].CardArea.gameObject);
_uiEventsController.SetSelectObject(_tycoonCards[0].CardArea.gameObject);
}
private IEnumerator FadeInPanel()

View File

@ -1,4 +1,3 @@
using System.Threading.Tasks;
using BlueWater.Audios;
using DG.Tweening;
using Sirenix.OdinInspector;
@ -27,6 +26,9 @@ namespace BlueWater.Uis
[SerializeField]
private Animator _closedUiAnimator;
[SerializeField]
private string _dailyBgm = "TycoonBgm01";
[SerializeField]
private string _gameStartSfxName = "TycoonGameStart";
@ -104,6 +106,16 @@ namespace BlueWater.Uis
_panel.SetActive(false);
PlayerInputKeyManager.Instance.EnableCurrentPlayerInput();
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
if (!string.IsNullOrEmpty(_dailyBgm))
{
AudioManager.Instance.PlayBgm(_dailyBgm);
}
if (!ES3.Load(SaveData.TutorialA, false))
{
Invoke(nameof(InvokeTutorialA), 1f);
}
});
});
});
@ -138,6 +150,12 @@ namespace BlueWater.Uis
});
}
private void InvokeTutorialA()
{
EventManager.InvokeTutorial(TutorialName.TutorialA);
ES3.Save(SaveData.TutorialA, true);
}
#endregion
}
}

View File

@ -14,7 +14,7 @@ using UnityEngine.UI;
namespace BlueWater.Uis
{
public class TycoonStartShopUi : PopupUi
public class TycoonStartShopUi : PausePopupUi
{
[SerializeField]
private GameObject _soldOutPrefab;
@ -58,6 +58,10 @@ namespace BlueWater.Uis
[SerializeField]
private int _endGold;
[Title("참조")]
[SerializeField]
private UiEventsController _uiEventsController;
private List<TycoonCard> _tycoonCards = new(5);
private TycoonManager _tycoonManager;
@ -126,20 +130,14 @@ namespace BlueWater.Uis
public override void Open()
{
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
PopupUiController.RegisterPopup(this);
OpenSwitch(InputActionMaps.TycoonUi);
_panel.SetActive(true);
IsOpened = true;
}
public override async void Close()
{
_panel.SetActive(false);
PopupUiController.UnregisterPopup(this);
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
IsOpened = false;
VisualFeedbackManager.Instance.ResetTimeScale();
CloseSwitch(InputActionMaps.Tycoon);
while (!PlayerInputKeyManager.Instance.IsInitialized)
{
@ -152,13 +150,13 @@ namespace BlueWater.Uis
public override void EnableInput()
{
_interactionEAction.performed += OnInteractionE;
this.GetComponent<UiEventsController>().EnableAutoNavigate();
_uiEventsController.EnableAutoNavigate();
}
public override void DisableInput()
{
_interactionEAction.performed -= OnInteractionE;
this.GetComponent<UiEventsController>().DisableAutoNavigate();
_uiEventsController.DisableAutoNavigate();
}
@ -202,7 +200,7 @@ namespace BlueWater.Uis
element.Rotation_Start();
}
this.GetComponent<UiEventsController>().SetSelectObject(_tycoonCards[0].CardArea.gameObject);
_uiEventsController.SetSelectObject(_tycoonCards[0].CardArea.gameObject);
}
private void SelectedCard(TycoonCard currentTycoonCard)

View File

@ -1,61 +1,94 @@
using System;
using System.Collections.Generic;
using BlueWater;
using BlueWater.Uis;
using Sirenix.OdinInspector;
using UnityEngine;
public class TutorialLink
{
public TutorialPageToggle TutorialPageToggle { get; private set; }
public List<TycoonTutorialPopupUi> TycoonTutorialPopupUis { get; private set; }
public TutorialLink(TutorialPageToggle tutorialPageToggle, List<TycoonTutorialPopupUi> tycoonTutorialPopupUis)
{
TutorialPageToggle = tutorialPageToggle;
TycoonTutorialPopupUis = tycoonTutorialPopupUis;
TutorialPageToggle.OnToggleEvent += OnToggle;
}
public void OnToggle(bool isOn)
{
if (isOn)
{
TycoonTutorialPopupUis[0].Open();
}
}
}
using UnityEngine.InputSystem;
using UnityEngine.UI;
namespace BlueWater
{
public class TycoonTutorial : MonoBehaviour
public static class TutorialName
{
public const string TutorialA = "TutorialA";
public const string TutorialB = "TutorialB";
public const string TutorialC = "TutorialC";
public const string TutorialD = "TutorialD";
public const string TutorialE = "TutorialE";
public const string TutorialF = "TutorialF";
public const string TutorialG = "TutorialG";
public const string TutorialH = "TutorialH";
public const string TutorialI = "TutorialI";
public const string TutorialJ = "TutorialJ";
}
public class TycoonTutorial : PausePopupUi
{
[SerializeField, Required]
private GameObject _tutorialPanel;
[SerializeField, Required]
private GameObject _togglePanel;
[SerializeField, Required]
private ScrollRect _scrollRect;
[SerializeField]
private Transform _buttonContents;
[SerializeField, Required]
private RectTransform _buttonContents;
[SerializeField]
[SerializeField, Required]
private Transform _tutorialPopupUiContents;
[SerializeField]
private GameObject _keyAPanel;
[SerializeField]
private GameObject _keyDPanel;
[SerializeField]
private GameObject _keyEPanel;
[Title("프리팹")]
[SerializeField]
[SerializeField, Required]
private TutorialPageToggle _tutorialPageToggle;
[SerializeField]
[SerializeField, Required]
private TycoonTutorialPopupUi _tutorialPopupUi;
[Title("So")]
[SerializeField, Required]
private TutorialSo _tutorialSo;
private Dictionary<string, TutorialLink> _tutorialLinks;
[Title("실시간 데이터")]
[SerializeField]
private List<TutorialLink> _tutorialLinks;
[SerializeField]
private TutorialLink _currentTutorialLink;
private InputAction _pressQAction;
private InputAction _pressRAction;
private InputAction _pressAAction;
private InputAction _pressDAction;
private InputAction _interactionEAction;
private InputAction _closeAction;
private bool _isInMenu;
private bool _isUpdatingToggle;
public Action<bool> CloseAction;
private void Start()
{
_pressQAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.PressQ);
_pressRAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.PressR);
_pressAAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.PressA);
_pressDAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.PressD);
_interactionEAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.InteractionE);
_closeAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.Cancel);
HideUi();
foreach (Transform element in _buttonContents)
foreach (Transform element in _buttonContents.transform)
{
Destroy(element.gameObject);
}
@ -65,7 +98,7 @@ namespace BlueWater
Destroy(element.gameObject);
}
_tutorialLinks = new Dictionary<string, TutorialLink>(_tutorialSo.GetDataCount());
_tutorialLinks = new List<TutorialLink>(_tutorialSo.GetDataCount());
foreach (TutorialInfo tutorialInfo in _tutorialSo.GetData().Values)
{
TutorialPageToggle tutorialPageToggle = Instantiate(this._tutorialPageToggle, _buttonContents);
@ -75,25 +108,248 @@ namespace BlueWater
for (int i = 0; i < tutorialInfo.TutorialPages.Count; i++)
{
TycoonTutorialPopupUi tycoonTutorialPopupUi = Instantiate(_tutorialPopupUi, _tutorialPopupUiContents);
TutorialPageType tutorialPageType = tutorialInfo.TutorialPages[i].TutorialPageType;
Sprite popupSprite = null;
switch (tutorialPageType)
{
case TutorialPageType.First:
popupSprite = _tutorialSo.FirstPopup;
break;
case TutorialPageType.Middle:
popupSprite = _tutorialSo.MiddlePopup;
break;
case TutorialPageType.Last:
popupSprite = _tutorialSo.LastPopup;
break;
case TutorialPageType.Solo:
popupSprite = _tutorialSo.SoloPopup;
break;
default:
throw new ArgumentOutOfRangeException();
}
tycoonTutorialPopupUi.Initialize(tutorialInfo, i, popupSprite);
tycoonTutorialPopupUis.Add(tycoonTutorialPopupUi);
}
_tutorialLinks.Add(tutorialInfo.TutorialName, new TutorialLink(tutorialPageToggle, tycoonTutorialPopupUis));
TutorialLink tutorialLink = new TutorialLink(tutorialInfo.TutorialName, tutorialPageToggle, tycoonTutorialPopupUis);
tutorialPageToggle.OnToggleEvent += isOn =>
{
if (_isUpdatingToggle) return; // 이벤트 중복 방지
if (isOn)
{
_isUpdatingToggle = true;
CloseKeyPanels();
_currentTutorialLink?.OnToggle(false);
_currentTutorialLink = tutorialLink;
_currentTutorialLink.OnToggle(true);
UpdateKeyPanels();
FocusOnToggle(_currentTutorialLink.TutorialPageToggle);
_isUpdatingToggle = false;
}
};
foreach (var element in tutorialLink.TycoonTutorialPopupUis)
{
element.SetupButtons(tutorialLink, OnMovePreviousPageButton, OnMoveNextPageButton);
}
_tutorialLinks.Add(tutorialLink);
}
_currentTutorialLink = _tutorialLinks[0];
}
public void ShowUi()
private void OnDestroy()
{
if (_tutorialLinks.TryGetValue("TutorialA", out TutorialLink tutorialLink))
_pressQAction = null;
_pressRAction = null;
_pressAAction = null;
_pressDAction = null;
_interactionEAction = null;
_closeAction = null;
}
public override void Open()
{
OpenSwitch(InputActionMaps.TycoonUi);
if (_isInMenu)
{
tutorialLink.TutorialPageToggle.OnToggle(true);
SetCurrentTutorialLink();
_togglePanel.SetActive(true);
UpdateKeyPanels();
_pressQAction.performed += OnMovePreviousToggle;
_pressRAction.performed += OnMovNextToggle;
_closeAction.performed += OnClose;
}
_pressAAction.performed += OnMovePreviousPage;
_pressDAction.performed += OnMoveNextPage;
}
public override void Close()
{
_pressQAction.performed -= OnMovePreviousToggle;
_pressRAction.performed -= OnMovNextToggle;
_pressAAction.performed -= OnMovePreviousPage;
_pressDAction.performed -= OnMoveNextPage;
_interactionEAction.performed -= OnClose;
_closeAction.performed -= OnClose;
_togglePanel.SetActive(false);
_tutorialPanel.SetActive(false);
_currentTutorialLink?.OnToggle(false);
CloseKeyPanels();
CloseAction?.Invoke(_isInMenu);
_isInMenu = false;
CloseSwitch(InputActionMaps.Tycoon);
}
public void SetCurrentTutorialLink(string tutorialName = null)
{
if (tutorialName == null)
{
_currentTutorialLink = _tutorialLinks[0];
}
else
{
_currentTutorialLink = _tutorialLinks.Find(link => link.TutorialName == tutorialName);
}
_currentTutorialLink?.OnToggle(true);
_tutorialPanel.SetActive(true);
}
public void ShowUi(bool isInMenu)
{
_isInMenu = isInMenu;
Open();
}
public void ShowUiByName(string tutorialName = null)
{
SetCurrentTutorialLink(tutorialName);
_togglePanel.SetActive(false);
UpdateKeyPanels();
ShowUi(false);
}
public void HideUi()
{
_tutorialPanel.SetActive(false);
Close();
_isInMenu = false;
}
private void OnMovePreviousToggle(InputAction.CallbackContext context)
{
MoveToggle(-1);
}
private void OnMovNextToggle(InputAction.CallbackContext context)
{
MoveToggle(1);
}
private void MoveToggle(int direction)
{
CloseKeyPanels();
int currentIndex = _tutorialLinks.IndexOf(_currentTutorialLink);
int nextIndex = Mathf.Clamp(currentIndex + direction, 0, _tutorialLinks.Count - 1);
_currentTutorialLink.OnToggle(false);
_currentTutorialLink = _tutorialLinks[nextIndex];
_currentTutorialLink.OnToggle(true);
UpdateKeyPanels();
FocusOnToggle(_currentTutorialLink.TutorialPageToggle);
}
private void FocusOnToggle(TutorialPageToggle selectedToggle)
{
if (!selectedToggle.gameObject.activeInHierarchy) return;
// Viewport와 Content의 너비를 가져오기
float contentWidth = _buttonContents.rect.width; // Content 전체 너비
float viewportWidth = _scrollRect.viewport.rect.width; // Viewport 너비
// 선택된 토글의 x 위치를 Content 기준으로 가져오기
float targetX = selectedToggle.Rect.anchoredPosition.x;
// Normalized Position 계산
// (Content 기준 위치 - 뷰포트 절반) / (Content 너비 - 뷰포트 너비)
float normalizedPosition = Mathf.Clamp01((targetX - (viewportWidth / 2)) / (contentWidth - viewportWidth));
// ScrollRect에 반영
_scrollRect.horizontalNormalizedPosition = normalizedPosition;
}
private void OnMovePreviousPage(InputAction.CallbackContext context)
{
MovePage(false);
}
private void OnMoveNextPage(InputAction.CallbackContext context)
{
MovePage(true);
}
private void MovePage(bool moveNext)
{
if (_currentTutorialLink == null) return;
_currentTutorialLink.MovePage(moveNext);
UpdateKeyPanels();
}
public void OnMovePreviousPageButton(TutorialLink tutorialLink)
{
_currentTutorialLink = tutorialLink;
MovePage(false);
}
public void OnMoveNextPageButton(TutorialLink tutorialLink)
{
_currentTutorialLink = tutorialLink;
MovePage(true);
}
private void CloseKeyPanels()
{
_interactionEAction.performed -= OnClose;
_keyAPanel.SetActive(false);
_keyDPanel.SetActive(false);
_keyEPanel.SetActive(false);
}
private void UpdateKeyPanels()
{
if (_currentTutorialLink == null) return;
int currentPageIndex = _currentTutorialLink.CurrentPageIndex;
int lastPage = _currentTutorialLink.TycoonTutorialPopupUis.Count;
_keyAPanel.SetActive(currentPageIndex > 0);
_keyDPanel.SetActive(currentPageIndex < lastPage - 1);
if (currentPageIndex == lastPage - 1)
{
_keyEPanel.SetActive(true);
_interactionEAction.performed += OnClose;
}
}
private void OnClose(InputAction.CallbackContext context)
{
HideUi();
}
}
}

View File

@ -1,6 +1,8 @@
using System;
using System.Collections;
using BlueWater.Uis;
using BlueWater.Utility;
using Sirenix.OdinInspector;
using TMPro;
using UnityEngine;
using UnityEngine.Localization;
@ -10,30 +12,67 @@ using UnityEngine.UI;
namespace BlueWater
{
public class TycoonTutorialPopupUi : TutorialPopupUi
public class TycoonTutorialPopupUi : PopupUi
{
[SerializeField]
private Image _popupImage;
[SerializeField]
private TMP_Text _titleText;
[SerializeField]
private RectTransform _descriptionTextRect;
[SerializeField]
private TMP_Text _descriptionText;
[SerializeField]
private RectTransform _descriptionTImageRect;
[SerializeField]
private Image _descriptionImage;
[SerializeField]
private TMP_Text _pageText;
[SerializeField]
private Button _previousButton;
[SerializeField]
private Button _nextButton;
[Title("연출")]
[SerializeField]
private Vector3 _descriptionTextAnchorPositionInFirst = new(0f, -37f, 0f);
[SerializeField]
private Vector3 _descriptionTextAnchorPositionExceptFirst = new(0f, -280f, 0f);
[SerializeField]
private Vector3 _descriptionImageAnchorPositionInFirst = new(0f, -210f, 0f);
[SerializeField]
private Vector3 _descriptionImageAnchorPositionExceptFirst = new(0f, -150f, 0f);
private TutorialInfo _tutorialInfo;
private TutorialPage _tutorialPage;
private Coroutine _changedLocaleInstance;
private int _pageIndex;
public Action<TutorialLink> OnPreviousPage;
public Action<TutorialLink> OnNextPage;
private void Start()
private void Awake()
{
LocalizationSettings.SelectedLocaleChanged += OnChangedLocale;
}
private void OnEnable()
{
_titleText.text = Utils.GetLocalizedString(_tutorialInfo.TitleTextIdx);
_descriptionText.text = Utils.GetLocalizedString(_tutorialPage.DescriptionIdx);
}
private void OnDestroy()
{
LocalizationSettings.SelectedLocaleChanged -= OnChangedLocale;
@ -58,8 +97,20 @@ namespace BlueWater
_descriptionText.text = Utils.GetLocalizedString(_tutorialPage.DescriptionIdx);
}
}
public override void Open()
{
base.Open();
gameObject.SetActive(true);
}
public void Initialize(TutorialInfo tutorialInfo, int pageindex)
public override void Close()
{
gameObject.SetActive(false);
base.Close();
}
public void Initialize(TutorialInfo tutorialInfo, int pageindex, Sprite popupSprite)
{
gameObject.SetActive(false);
@ -69,18 +120,50 @@ namespace BlueWater
gameObject.name = $"{_tutorialInfo.TutorialName}{_pageIndex + 1}";
if (_tutorialPage.TutorialPageType is TutorialPageType.First or TutorialPageType.Sole)
_popupImage.sprite = popupSprite;
if (_tutorialPage.TutorialPageType is TutorialPageType.First or TutorialPageType.Solo)
{
_titleText.text = Utils.GetLocalizedString(_tutorialInfo.TitleTextIdx);
_titleText.enabled = true;
_descriptionTextRect.anchoredPosition = _descriptionTextAnchorPositionInFirst;
_descriptionTImageRect.anchoredPosition = _descriptionImageAnchorPositionInFirst;
}
else
{
_titleText.enabled = false;
_descriptionTextRect.anchoredPosition = _descriptionTextAnchorPositionExceptFirst;
_descriptionTImageRect.anchoredPosition = _descriptionImageAnchorPositionExceptFirst;
}
_descriptionText.text = Utils.GetLocalizedString(_tutorialPage.DescriptionIdx);
_descriptionImage.sprite = _tutorialPage.Sprite;
_pageText.text = $"{_tutorialPage.PageIndex}/{_tutorialInfo.GetPages()}";
}
public void SetupButtons(TutorialLink tutorialLink, Action<TutorialLink> onMovePreviousPage, Action<TutorialLink> onMoveNextPage)
{
_previousButton.onClick.RemoveAllListeners();
_nextButton.onClick.RemoveAllListeners();
switch (_tutorialPage.TutorialPageType)
{
case TutorialPageType.First:
_nextButton.onClick.AddListener(() => onMoveNextPage?.Invoke(tutorialLink));
break;
case TutorialPageType.Middle:
_previousButton.onClick.AddListener(() => onMovePreviousPage?.Invoke(tutorialLink));
_nextButton.onClick.AddListener(() => onMoveNextPage?.Invoke(tutorialLink));
break;
case TutorialPageType.Last:
_previousButton.onClick.AddListener(() => onMovePreviousPage?.Invoke(tutorialLink));
break;
case TutorialPageType.Solo:
break;
}
}
}
}

View File

@ -1,5 +1,6 @@
using System.Collections;
using BlueWater.Items;
using BlueWater.Tycoons;
using UnityEngine;
using UnityEngine.UI;
using Spine.Unity;
@ -7,7 +8,7 @@ using UnityEngine.InputSystem;
namespace BlueWater.Uis
{
public class UpgradePopupUi : PopupUi
public class UpgradePopupUi : PausePopupUi
{
[SerializeField]
private GameObject _panel;
@ -49,20 +50,14 @@ namespace BlueWater.Uis
public override void Open()
{
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
PopupUiController.RegisterPopup(this);
OpenSwitch(InputActionMaps.TycoonUi);
_panel.SetActive(true);
IsOpened = true;
}
public override void Close()
{
_panel.SetActive(false);
PopupUiController.UnregisterPopup(this);
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
IsOpened = false;
VisualFeedbackManager.Instance.ResetTimeScale();
CloseSwitch(InputActionMaps.Tycoon);
}
public override void DisableInput()
@ -151,7 +146,45 @@ namespace BlueWater.Uis
_paperAnimation.AnimationState.SetAnimation(0, "Back", false).Complete += (trackEntry) =>
{
Close();
int currentLevel = int.Parse(TycoonManager.Instance.GetCurrentLevelData().Idx);
if (currentLevel == 5)
{
if (!ES3.Load(SaveData.TutorialG, false))
{
EventManager.InvokeTutorial(TutorialName.TutorialG);
ES3.Save(SaveData.TutorialG, true);
}
if (!ES3.Load(SaveData.TutorialH, false))
{
Invoke(nameof(InvokeTutorialH), 0.1f);
}
if (!ES3.Load(SaveData.TutorialI, false))
{
Invoke(nameof(InvokeTutorialI), 0.2f);
}
}
};
}
private void InvokeTutorialH()
{
if (!ES3.Load(SaveData.TutorialH, false))
{
EventManager.InvokeTutorial(TutorialName.TutorialH);
ES3.Save(SaveData.TutorialH, true);
}
}
private void InvokeTutorialI()
{
if (!ES3.Load(SaveData.TutorialI, false))
{
EventManager.InvokeTutorial(TutorialName.TutorialI);
ES3.Save(SaveData.TutorialI, true);
}
}
}
}

View File

@ -5,7 +5,7 @@ using UnityEngine.InputSystem.UI;
namespace BlueWater
{
public class UiEventsController: MonoBehaviour
public class UiEventsController : MonoBehaviour
{
[field: SerializeField]
public GameObject SelectObject { get; private set; }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 355 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 356 KiB

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: fcbbccc0af3ecc64ea65be04537ee8d7
guid: ea1eb29c2fa2dfb468521cc72c556c6a
TextureImporter:
internalIDToNameTable: []
externalObjects: {}

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: e52358c77c5bc9f45a388ab468618ba1
guid: 494e9886cf305154c97d449a8ad2361e
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
@ -48,7 +48,7 @@ TextureImporter:
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 256
spritePixelsToUnits: 512
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 7355634207a3f454e9f7b49224d4327a
guid: 08391b26217ebb344a7bf2d72847e9ee
TextureImporter:
internalIDToNameTable: []
externalObjects: {}

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

View File

@ -0,0 +1,143 @@
fileFormatVersion: 2
guid: d63a8017daee99546a808b887393dbca
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 7
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 1024
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WindowsStoreApps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: f62b43001c46a87439e93f884ab5e191
guid: 9e6d665713d2c874abeba5ac3c5da830
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
@ -48,7 +48,7 @@ TextureImporter:
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 256
spritePixelsToUnits: 512
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: caf21c5f0e2ad5644ae37eff779381e4
guid: 23b5a795c216c9745bce7fea1aa0c59a
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
@ -48,7 +48,7 @@ TextureImporter:
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 256
spritePixelsToUnits: 512
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@ -0,0 +1,143 @@
fileFormatVersion: 2
guid: 257f146cb79ef9544a80bff5e9dec562
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 512
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WindowsStoreApps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

View File

@ -0,0 +1,143 @@
fileFormatVersion: 2
guid: 667821a4c87008e46b8cb2c28f0ffce6
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 7
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 1024
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WindowsStoreApps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

View File

@ -0,0 +1,143 @@
fileFormatVersion: 2
guid: c76284932c3abd144a8034f18b3e6c4b
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 7
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 1024
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WindowsStoreApps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

View File

@ -0,0 +1,143 @@
fileFormatVersion: 2
guid: db1263fa7c3044d478d0b88d23c9a23b
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 7
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 1024
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WindowsStoreApps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View File

@ -0,0 +1,143 @@
fileFormatVersion: 2
guid: 0858cb2d56f738e4f876e153f4ef4b06
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 7
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 1024
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WindowsStoreApps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

View File

@ -1,143 +0,0 @@
fileFormatVersion: 2
guid: 920ba660d9900ce459ae2bb7eb621887
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 256
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WindowsStoreApps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

View File

@ -1,143 +0,0 @@
fileFormatVersion: 2
guid: 72906c5f31b91964b9bf78b45ab5774c
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 256
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WindowsStoreApps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

View File

@ -1,143 +0,0 @@
fileFormatVersion: 2
guid: 8def3f8daad983145b8add75c21c5712
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 256
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
buildTarget: WindowsStoreApps
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
customData:
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

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