Merge branch 'develop' of http://gitea.capers.co.kr:3000/capers/CapersRepo into lmg
# Conflicts: # Assets/StreamingAssets/google-services-desktop.json.meta
76831
Assets/01.Scenes/99.T47.unity
Normal file
7
Assets/01.Scenes/99.T47.unity.meta
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: eb9a8ee373c285045ab43bce1e6f7350
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
79722
Assets/01.Scenes/99.T48.unity
Normal file
7
Assets/01.Scenes/99.T48.unity.meta
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8a25b5aa40c3d1541a4149de5db259b6
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -24,6 +24,12 @@ namespace BlueWater.BehaviorTrees.Actions
|
|||||||
|
|
||||||
public override void OnStart()
|
public override void OnStart()
|
||||||
{
|
{
|
||||||
|
if (!_customer.CanVomit)
|
||||||
|
{
|
||||||
|
_canVomit = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
_customer.MoveMoneyCounter();
|
_customer.MoveMoneyCounter();
|
||||||
var random = Random.Range(0f, 100f);
|
var random = Random.Range(0f, 100f);
|
||||||
if (random <= TycoonManager.Instance.TycoonStageController.StageDataSo.VomitingPercent)
|
if (random <= TycoonManager.Instance.TycoonStageController.StageDataSo.VomitingPercent)
|
||||||
|
@ -21,7 +21,7 @@ namespace BlueWater.Npcs.Customers
|
|||||||
{
|
{
|
||||||
public const string Idle = "Idle";
|
public const string Idle = "Idle";
|
||||||
public const string Walk = "Run";
|
public const string Walk = "Run";
|
||||||
public const string Happy = "Happy";
|
public const string Happy = "HappyIdle";
|
||||||
public const string HappyRun = "HappyRun";
|
public const string HappyRun = "HappyRun";
|
||||||
public const string Upset = "Upset";
|
public const string Upset = "Upset";
|
||||||
public const string UpsetRun = "UpsetRun";
|
public const string UpsetRun = "UpsetRun";
|
||||||
@ -31,6 +31,30 @@ namespace BlueWater.Npcs.Customers
|
|||||||
public const string VomitingRun = "VomitingRun";
|
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
|
public enum CustomerInteractionType
|
||||||
{
|
{
|
||||||
None = 0,
|
None = 0,
|
||||||
@ -39,8 +63,13 @@ namespace BlueWater.Npcs.Customers
|
|||||||
|
|
||||||
public enum CustomerSkin
|
public enum CustomerSkin
|
||||||
{
|
{
|
||||||
Casper = 0,
|
BigCat = 0,
|
||||||
PumkinHead = 1
|
Casper = 1,
|
||||||
|
CasperBlack = 2,
|
||||||
|
Cat = 3,
|
||||||
|
PumkinHead = 4,
|
||||||
|
Reaper = 5,
|
||||||
|
Witch = 6
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Customer : MonoBehaviour, IPlayerInteraction, ICrewInteraction
|
public class Customer : MonoBehaviour, IPlayerInteraction, ICrewInteraction
|
||||||
@ -99,7 +128,6 @@ namespace BlueWater.Npcs.Customers
|
|||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
public string InteractionMessage { get; set; }
|
public string InteractionMessage { get; set; }
|
||||||
|
|
||||||
[field: Title("실시간 데이터")]
|
|
||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
public LevelData CurrentLevelData { get; private set; }
|
public LevelData CurrentLevelData { get; private set; }
|
||||||
|
|
||||||
@ -127,6 +155,7 @@ namespace BlueWater.Npcs.Customers
|
|||||||
private CustomerInteractionType _customerInteractionType;
|
private CustomerInteractionType _customerInteractionType;
|
||||||
|
|
||||||
public bool IsMoving { get; private set; }
|
public bool IsMoving { get; private set; }
|
||||||
|
public bool CanVomit { get; private set; }
|
||||||
public bool IsVomited { get; private set; }
|
public bool IsVomited { get; private set; }
|
||||||
|
|
||||||
[SerializeField]
|
[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; }
|
public int HurryTime { get; private set; }
|
||||||
|
|
||||||
private IAstarAI _astarAi;
|
private IAstarAI _astarAi;
|
||||||
@ -197,10 +235,20 @@ namespace BlueWater.Npcs.Customers
|
|||||||
{
|
{
|
||||||
if (element.ToString().Equals(currentSkinName))
|
if (element.ToString().Equals(currentSkinName))
|
||||||
{
|
{
|
||||||
CustomerSkin = (int)element;
|
CustomerSkin = element;
|
||||||
return;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (CustomerSkin is CustomerSkin.BigCat or CustomerSkin.Witch)
|
||||||
|
{
|
||||||
|
CanVomit = false;
|
||||||
|
transform.localScale = _bigSize;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
CanVomit = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Update()
|
private void Update()
|
||||||
@ -407,14 +455,14 @@ namespace BlueWater.Npcs.Customers
|
|||||||
|
|
||||||
public virtual void ShowInteractionUi()
|
public virtual void ShowInteractionUi()
|
||||||
{
|
{
|
||||||
SpineController.EnableCustomMaterial();
|
//SpineController.EnableCustomMaterial();
|
||||||
EventManager.InvokeShowInteractionUi(InteractionMessage);
|
EventManager.InvokeShowInteractionUi(InteractionMessage);
|
||||||
EventManager.InvokeHoldInteracting(0f);
|
EventManager.InvokeHoldInteracting(0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void HideInteractionUi()
|
public virtual void HideInteractionUi()
|
||||||
{
|
{
|
||||||
SpineController.DisableCustomMaterial();
|
//SpineController.DisableCustomMaterial();
|
||||||
EventManager.InvokeHideInteractionUi();
|
EventManager.InvokeHideInteractionUi();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -485,6 +533,12 @@ namespace BlueWater.Npcs.Customers
|
|||||||
var gold = (int)(CurrentLevelData.Gold * TycoonManager.Instance.TycoonStatus.GoldMultiplier);
|
var gold = (int)(CurrentLevelData.Gold * TycoonManager.Instance.TycoonStatus.GoldMultiplier);
|
||||||
|
|
||||||
_moneyCounter.AddCurrentGold(gold);
|
_moneyCounter.AddCurrentGold(gold);
|
||||||
|
|
||||||
|
if (!ES3.Load(SaveData.TutorialC, false))
|
||||||
|
{
|
||||||
|
EventManager.InvokeTutorial(TutorialName.TutorialC);
|
||||||
|
ES3.Save(SaveData.TutorialC, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Vomit()
|
public void Vomit()
|
||||||
@ -520,6 +574,18 @@ namespace BlueWater.Npcs.Customers
|
|||||||
RegisterPlayerInteraction();
|
RegisterPlayerInteraction();
|
||||||
|
|
||||||
EventManager.InvokeOrderedCocktail(this);
|
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)
|
public void MovePosition(Vector3 targetPosition)
|
||||||
|
@ -5,9 +5,20 @@ namespace BlueWater.Npcs.Customers
|
|||||||
public class HappyState : IStateMachine<Customer>
|
public class HappyState : IStateMachine<Customer>
|
||||||
{
|
{
|
||||||
public void EnterState(Customer character)
|
public void EnterState(Customer character)
|
||||||
|
{
|
||||||
|
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);
|
character.SpineController.PlayAnimation(CustomerSpineAnimation.Happy, true);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void UpdateState(Customer character)
|
public void UpdateState(Customer character)
|
||||||
{
|
{
|
||||||
|
@ -7,24 +7,82 @@ namespace BlueWater.Npcs.Customers
|
|||||||
public void EnterState(Customer character)
|
public void EnterState(Customer character)
|
||||||
{
|
{
|
||||||
if (character.IsVomited)
|
if (character.IsVomited)
|
||||||
|
{
|
||||||
|
if (character.CustomerSkin == CustomerSkin.Cat)
|
||||||
|
{
|
||||||
|
character.SpineController.PlayAnimation(CatSpineAnimation.VomitingIdle, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.VomitingIdle, true);
|
character.SpineController.PlayAnimation(CustomerSpineAnimation.VomitingIdle, true);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else if (character.IsReceivedItem)
|
else if (character.IsReceivedItem)
|
||||||
{
|
{
|
||||||
character.SpineController.PlayAnimation(character.IsOrderedCorrected ?
|
if (character.IsOrderedCorrected)
|
||||||
CustomerSpineAnimation.Happy : CustomerSpineAnimation.Upset, 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
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)
|
else if (!character.IsReceivedItem)
|
||||||
|
{
|
||||||
|
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.SpineController.PlayAnimation(CustomerSpineAnimation.Idle, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void UpdateState(Customer character)
|
public void UpdateState(Customer character)
|
||||||
{
|
{
|
||||||
if (character.IsMoving)
|
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);
|
character.StateMachineController.TransitionToState(character.WalkingState, character);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,9 +5,20 @@ namespace BlueWater.Npcs.Customers
|
|||||||
public class UpsetState : IStateMachine<Customer>
|
public class UpsetState : IStateMachine<Customer>
|
||||||
{
|
{
|
||||||
public void EnterState(Customer character)
|
public void EnterState(Customer character)
|
||||||
|
{
|
||||||
|
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);
|
character.SpineController.PlayAnimation(CustomerSpineAnimation.Upset, true);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void UpdateState(Customer character)
|
public void UpdateState(Customer character)
|
||||||
{
|
{
|
||||||
|
@ -9,16 +9,30 @@ namespace BlueWater.Npcs.Customers
|
|||||||
private bool _isVomiting;
|
private bool _isVomiting;
|
||||||
|
|
||||||
public void EnterState(Customer character)
|
public void EnterState(Customer character)
|
||||||
|
{
|
||||||
|
if (character.CustomerSkin == CustomerSkin.Cat)
|
||||||
|
{
|
||||||
|
character.SpineController.PlayAnimation(CatSpineAnimation.VomitingForm, false);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.VomitingForm, false);
|
character.SpineController.PlayAnimation(CustomerSpineAnimation.VomitingForm, false);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void UpdateState(Customer character)
|
public void UpdateState(Customer character)
|
||||||
{
|
{
|
||||||
if (!_isVomiting && character.SpineController.IsAnimationComplete())
|
if (!_isVomiting && character.SpineController.IsAnimationComplete())
|
||||||
{
|
{
|
||||||
AudioManager.Instance.PlaySfx(_vomitSfxName);
|
AudioManager.Instance.PlaySfx(_vomitSfxName);
|
||||||
|
if (character.CustomerSkin == CustomerSkin.Cat)
|
||||||
|
{
|
||||||
|
character.SpineController.PlayAnimation(CatSpineAnimation.Vomiting, false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.Vomiting, false);
|
character.SpineController.PlayAnimation(CustomerSpineAnimation.Vomiting, false);
|
||||||
|
}
|
||||||
_isVomiting = true;
|
_isVomiting = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,19 +7,65 @@ namespace BlueWater.Npcs.Customers
|
|||||||
public void EnterState(Customer character)
|
public void EnterState(Customer character)
|
||||||
{
|
{
|
||||||
if (character.IsVomited)
|
if (character.IsVomited)
|
||||||
|
{
|
||||||
|
if (character.CustomerSkin == CustomerSkin.Cat)
|
||||||
|
{
|
||||||
|
character.SpineController.PlayAnimation(CatSpineAnimation.VomitingRun, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.VomitingRun, true);
|
character.SpineController.PlayAnimation(CustomerSpineAnimation.VomitingRun, true);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else if (character.IsReceivedItem)
|
else if (character.IsReceivedItem)
|
||||||
{
|
{
|
||||||
character.SpineController.PlayAnimation(character.IsOrderedCorrected ?
|
if (character.IsOrderedCorrected)
|
||||||
CustomerSpineAnimation.HappyRun : CustomerSpineAnimation.UpsetRun, true);
|
{
|
||||||
|
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)
|
else if (!character.IsReceivedItem)
|
||||||
|
{
|
||||||
|
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);
|
character.SpineController.PlayAnimation(CustomerSpineAnimation.Walk, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void UpdateState(Customer character)
|
public void UpdateState(Customer character)
|
||||||
{
|
{
|
||||||
|
@ -78,9 +78,11 @@ namespace BlueWater.Players.Tycoons
|
|||||||
|
|
||||||
public void OnDevelopKey01(InputAction.CallbackContext context)
|
public void OnDevelopKey01(InputAction.CallbackContext context)
|
||||||
{
|
{
|
||||||
|
#if UNITY_EDITOR
|
||||||
EventManager.InvokeCreateServerCrew();
|
EventManager.InvokeCreateServerCrew();
|
||||||
EventManager.InvokeCreateCleanerCrew();
|
EventManager.InvokeCreateCleanerCrew();
|
||||||
EventManager.InvokeCreateBartenderCrew();
|
EventManager.InvokeCreateBartenderCrew();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -38,14 +38,14 @@ namespace BlueWater.Players.Tycoons
|
|||||||
|
|
||||||
_isMoving = value;
|
_isMoving = value;
|
||||||
|
|
||||||
if (_isMoving)
|
// if (_isMoving)
|
||||||
{
|
// {
|
||||||
AudioManager.Instance.PlaySfx(_walkingSfxName, true);
|
// AudioManager.Instance.PlaySfx(_walkingSfxName, true);
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
AudioManager.Instance.StopSfx(_walkingSfxName);
|
// AudioManager.Instance.StopSfx(_walkingSfxName);
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -67,6 +67,9 @@ namespace BlueWater.Players.Tycoons
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private string _walkingSfxName = "TycoonPlayerWalking";
|
private string _walkingSfxName = "TycoonPlayerWalking";
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string _dashSfxName = "TycoonPlayerDashing";
|
||||||
|
|
||||||
public bool IsDashEnabled { get; private set; } = true;
|
public bool IsDashEnabled { get; private set; } = true;
|
||||||
public bool IsDashing { get; private set; }
|
public bool IsDashing { get; private set; }
|
||||||
|
|
||||||
@ -242,6 +245,7 @@ namespace BlueWater.Players.Tycoons
|
|||||||
{
|
{
|
||||||
_dashParticle.Play();
|
_dashParticle.Play();
|
||||||
}
|
}
|
||||||
|
AudioManager.Instance.PlaySfx(_dashSfxName);
|
||||||
|
|
||||||
var dashDirection = _inputDirection;
|
var dashDirection = _inputDirection;
|
||||||
if (dashDirection == Vector3.zero)
|
if (dashDirection == Vector3.zero)
|
||||||
|
@ -232,8 +232,8 @@ namespace BlueWater
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 손님이 퇴장하기 전에 스킨을 확인하는 이벤트
|
// 손님이 퇴장하기 전에 스킨을 확인하는 이벤트
|
||||||
public static Action<int> OnCheckedSkin;
|
public static Action<CustomerSkin> OnCheckedSkin;
|
||||||
public static void InvokeCheckedSkin(int skinIndex)
|
public static void InvokeCheckedSkin(CustomerSkin skinIndex)
|
||||||
{
|
{
|
||||||
OnCheckedSkin?.Invoke(skinIndex);
|
OnCheckedSkin?.Invoke(skinIndex);
|
||||||
}
|
}
|
||||||
@ -321,6 +321,13 @@ namespace BlueWater
|
|||||||
OnCreateMold?.Invoke();
|
OnCreateMold?.Invoke();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 펌프 활성화 이벤트
|
||||||
|
public static Action OnActivatePump;
|
||||||
|
public static void InvokeActivatePump()
|
||||||
|
{
|
||||||
|
OnActivatePump?.Invoke();
|
||||||
|
}
|
||||||
|
|
||||||
// 계산대 골드 자동 회수 이벤트
|
// 계산대 골드 자동 회수 이벤트
|
||||||
public static Action<int> OnGainAutoMoneyCounter;
|
public static Action<int> OnGainAutoMoneyCounter;
|
||||||
public static void InvokeGainAutoMoneyCounter(int gainWaitTime)
|
public static void InvokeGainAutoMoneyCounter(int gainWaitTime)
|
||||||
@ -356,6 +363,13 @@ namespace BlueWater
|
|||||||
OnOpenedRareRewardBox?.Invoke();
|
OnOpenedRareRewardBox?.Invoke();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 튜토리얼
|
||||||
|
public static Action<string> OnTutorial;
|
||||||
|
public static void InvokeTutorial(string tutorialName)
|
||||||
|
{
|
||||||
|
OnTutorial?.Invoke(tutorialName);
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -751,6 +751,33 @@
|
|||||||
"interactions": "",
|
"interactions": "",
|
||||||
"initialStateCheck": false
|
"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",
|
"name": "PressAnyKey",
|
||||||
"type": "Button",
|
"type": "Button",
|
||||||
@ -843,10 +870,43 @@
|
|||||||
"path": "<Keyboard>/e",
|
"path": "<Keyboard>/e",
|
||||||
"interactions": "",
|
"interactions": "",
|
||||||
"processors": "",
|
"processors": "",
|
||||||
"groups": "",
|
"groups": ";Keyboard&Mouse",
|
||||||
"action": "InteractionE",
|
"action": "InteractionE",
|
||||||
"isComposite": false,
|
"isComposite": false,
|
||||||
"isPartOfComposite": 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
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -38,6 +38,9 @@ namespace BlueWater
|
|||||||
public const string Move = "Move";
|
public const string Move = "Move";
|
||||||
public const string Cancel = "Cancel";
|
public const string Cancel = "Cancel";
|
||||||
public const string PressQ = "PressQ";
|
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 PressAnyKey = "PressAnyKey";
|
||||||
public const string InteractionE = "InteractionE";
|
public const string InteractionE = "InteractionE";
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,11 @@ using UnityEngine;
|
|||||||
|
|
||||||
namespace BlueWater.Tycoons
|
namespace BlueWater.Tycoons
|
||||||
{
|
{
|
||||||
|
public static class StatueBarrelSpineAnimation
|
||||||
|
{
|
||||||
|
public const string Idle = "Idle";
|
||||||
|
}
|
||||||
|
|
||||||
public static class LiquidBarrelSpineAnimation
|
public static class LiquidBarrelSpineAnimation
|
||||||
{
|
{
|
||||||
public const string IdleLevel0 = "Empty";
|
public const string IdleLevel0 = "Empty";
|
||||||
@ -68,7 +73,11 @@ namespace BlueWater.Tycoons
|
|||||||
|
|
||||||
_liquidImage.sprite = IsActivated ? LiquidData.Sprite : DataManager.Instance.SpriteDataSo.BarrelLock;
|
_liquidImage.sprite = IsActivated ? LiquidData.Sprite : DataManager.Instance.SpriteDataSo.BarrelLock;
|
||||||
|
|
||||||
if (!IsStatue)
|
if (IsStatue)
|
||||||
|
{
|
||||||
|
SpineController.PlayAnimation(StatueBarrelSpineAnimation.Idle, false);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.IdleLevel0, false);
|
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.IdleLevel0, false);
|
||||||
}
|
}
|
||||||
@ -167,31 +176,17 @@ namespace BlueWater.Tycoons
|
|||||||
InteractionMessage = $"{Utils.GetLocalizedString(LiquidData.Idx)} {Utils.GetLocalizedString("Pour")}";
|
InteractionMessage = $"{Utils.GetLocalizedString(LiquidData.Idx)} {Utils.GetLocalizedString("Pour")}";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsStatue)
|
|
||||||
{
|
|
||||||
base.ShowInteractionUi();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
SpineController.EnableCustomMaterial();
|
SpineController.EnableCustomMaterial();
|
||||||
EventManager.InvokeShowInteractionUi(InteractionMessage);
|
EventManager.InvokeShowInteractionUi(InteractionMessage);
|
||||||
IsShowing = true;
|
IsShowing = true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public override void HideInteractionUi()
|
public override void HideInteractionUi()
|
||||||
{
|
|
||||||
if (IsStatue)
|
|
||||||
{
|
|
||||||
base.HideInteractionUi();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
SpineController.DisableCustomMaterial();
|
SpineController.DisableCustomMaterial();
|
||||||
EventManager.InvokeHideInteractionUi();
|
EventManager.InvokeHideInteractionUi();
|
||||||
IsShowing = false;
|
IsShowing = false;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public override void Activate()
|
public override void Activate()
|
||||||
{
|
{
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using BlueWater.Audios;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace BlueWater.Tycoons
|
namespace BlueWater.Tycoons
|
||||||
@ -12,6 +13,9 @@ namespace BlueWater.Tycoons
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Sprite _heartSprite;
|
private Sprite _heartSprite;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string _cleaningSfxName = "CleaningFloor";
|
||||||
|
|
||||||
private bool _isPlayerInteracting;
|
private bool _isPlayerInteracting;
|
||||||
|
|
||||||
private void Update()
|
private void Update()
|
||||||
@ -51,12 +55,14 @@ namespace BlueWater.Tycoons
|
|||||||
{
|
{
|
||||||
GameManager.Instance.CurrentTycoonPlayer.IsCleaningFloor = true;
|
GameManager.Instance.CurrentTycoonPlayer.IsCleaningFloor = true;
|
||||||
_isPlayerInteracting = true;
|
_isPlayerInteracting = true;
|
||||||
|
AudioManager.Instance.PlaySfx(_cleaningSfxName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void CancelInteraction()
|
public override void CancelInteraction()
|
||||||
{
|
{
|
||||||
GameManager.Instance.CurrentTycoonPlayer.IsCleaningFloor = false;
|
GameManager.Instance.CurrentTycoonPlayer.IsCleaningFloor = false;
|
||||||
_isPlayerInteracting = false;
|
_isPlayerInteracting = false;
|
||||||
|
AudioManager.Instance.StopSfx(_cleaningSfxName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool CanInteraction()
|
public override bool CanInteraction()
|
||||||
|
@ -9,6 +9,7 @@ namespace BlueWater.Tycoons
|
|||||||
public static class PumpSpineAnimation
|
public static class PumpSpineAnimation
|
||||||
{
|
{
|
||||||
public const string Idle = "Idle";
|
public const string Idle = "Idle";
|
||||||
|
public const string Stop = "IdleStop";
|
||||||
public const string Run = "Run";
|
public const string Run = "Run";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,11 +38,14 @@ namespace BlueWater.Tycoons
|
|||||||
private string _playPumpSfxName = "PlayPump";
|
private string _playPumpSfxName = "PlayPump";
|
||||||
|
|
||||||
private bool _isPlayerInteracting;
|
private bool _isPlayerInteracting;
|
||||||
|
private bool _isActivated;
|
||||||
|
|
||||||
protected override void Awake()
|
protected override void Awake()
|
||||||
{
|
{
|
||||||
base.Awake();
|
base.Awake();
|
||||||
|
|
||||||
|
EventManager.OnActivatePump += Activate;
|
||||||
|
|
||||||
_spineController = GetComponent<SpineController>();
|
_spineController = GetComponent<SpineController>();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,7 +53,7 @@ namespace BlueWater.Tycoons
|
|||||||
{
|
{
|
||||||
base.Start();
|
base.Start();
|
||||||
|
|
||||||
_spineController.PlayAnimation(PumpSpineAnimation.Idle, true);
|
_spineController.PlayAnimation(PumpSpineAnimation.Stop, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Update()
|
private void Update()
|
||||||
@ -83,6 +87,11 @@ namespace BlueWater.Tycoons
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnDestroy()
|
||||||
|
{
|
||||||
|
EventManager.OnActivatePump -= Activate;
|
||||||
|
}
|
||||||
|
|
||||||
public override void Interaction()
|
public override void Interaction()
|
||||||
{
|
{
|
||||||
AudioManager.Instance.PlaySfx(_attackSfxName, true);
|
AudioManager.Instance.PlaySfx(_attackSfxName, true);
|
||||||
@ -103,7 +112,7 @@ namespace BlueWater.Tycoons
|
|||||||
|
|
||||||
public override bool CanInteraction()
|
public override bool CanInteraction()
|
||||||
{
|
{
|
||||||
return !GameManager.Instance.CurrentTycoonPlayer.TycoonPickupHandler.IsPickedUpAnything();
|
return _isActivated && !GameManager.Instance.CurrentTycoonPlayer.TycoonPickupHandler.IsPickedUpAnything();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ShowInteractionUi()
|
public override void ShowInteractionUi()
|
||||||
@ -119,5 +128,11 @@ namespace BlueWater.Tycoons
|
|||||||
EventManager.InvokeHideInteractionUi();
|
EventManager.InvokeHideInteractionUi();
|
||||||
IsShowing = false;
|
IsShowing = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Activate()
|
||||||
|
{
|
||||||
|
_isActivated = true;
|
||||||
|
_spineController.PlayAnimation(PumpSpineAnimation.Idle, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -76,19 +76,6 @@ namespace BlueWater.Tycoons
|
|||||||
private IEnumerator OpenRewardBoxCoroutine()
|
private IEnumerator OpenRewardBoxCoroutine()
|
||||||
{
|
{
|
||||||
_isInteracting = true;
|
_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);
|
EventManager.InvokeAddedGold(-_requiredGold, false);
|
||||||
|
|
||||||
@ -104,6 +91,20 @@ namespace BlueWater.Tycoons
|
|||||||
throw new ArgumentOutOfRangeException();
|
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);
|
Destroy(gameObject);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ using BlueWater.Audios;
|
|||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
using BlueWater.Items;
|
using BlueWater.Items;
|
||||||
using BlueWater.Players;
|
using BlueWater.Players;
|
||||||
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace BlueWater.Tycoons
|
namespace BlueWater.Tycoons
|
||||||
@ -34,9 +35,13 @@ namespace BlueWater.Tycoons
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private bool _isChanged;
|
private bool _isChanged;
|
||||||
|
|
||||||
|
[Title("사운드")]
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private string _discardSfxName = "DiscardCocktail";
|
private string _discardSfxName = "DiscardCocktail";
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string _changeRandomBoxSfxName = "ChangeRandomBox";
|
||||||
|
|
||||||
private bool _isPlayerInteracting;
|
private bool _isPlayerInteracting;
|
||||||
private bool _canInteraction = true;
|
private bool _canInteraction = true;
|
||||||
|
|
||||||
@ -121,6 +126,7 @@ namespace BlueWater.Tycoons
|
|||||||
{
|
{
|
||||||
if (!_canRandomChange) return;
|
if (!_canRandomChange) return;
|
||||||
|
|
||||||
|
AudioManager.Instance.PlaySfx(_changeRandomBoxSfxName);
|
||||||
_spineController.PlayAnimation(TrashCanSpineAnimation.ChangeRandomBox, false);
|
_spineController.PlayAnimation(TrashCanSpineAnimation.ChangeRandomBox, false);
|
||||||
_spineController.AddAnimation(TrashCanSpineAnimation.RandomBoxIdle, true);
|
_spineController.AddAnimation(TrashCanSpineAnimation.RandomBoxIdle, true);
|
||||||
_isChanged = true;
|
_isChanged = true;
|
||||||
|
@ -12,5 +12,15 @@ namespace BlueWater
|
|||||||
public const string CompleteFirstGame = "CompleteFirstGame";
|
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";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -36,4 +36,4 @@ MonoBehaviour:
|
|||||||
- <BgmName>k__BackingField: TycoonBgm02
|
- <BgmName>k__BackingField: TycoonBgm02
|
||||||
<Clip>k__BackingField: {fileID: 8300000, guid: 26776146cb587a74aa860cdac5318a39, type: 3}
|
<Clip>k__BackingField: {fileID: 8300000, guid: 26776146cb587a74aa860cdac5318a39, type: 3}
|
||||||
- <BgmName>k__BackingField: TycoonResult
|
- <BgmName>k__BackingField: TycoonResult
|
||||||
<Clip>k__BackingField: {fileID: 8300000, guid: 727c8fcf7bfe53744968a986ff7b43aa, type: 3}
|
<Clip>k__BackingField: {fileID: 8300000, guid: e149ff3b8678af448a8e1f04cf55649c, type: 3}
|
||||||
|
@ -82,7 +82,7 @@ MonoBehaviour:
|
|||||||
- <SfxName>k__BackingField: CleaningTable
|
- <SfxName>k__BackingField: CleaningTable
|
||||||
<Clip>k__BackingField: {fileID: 8300000, guid: 717f06a127178564ab5ea8cdf9da3ef2, type: 3}
|
<Clip>k__BackingField: {fileID: 8300000, guid: 717f06a127178564ab5ea8cdf9da3ef2, type: 3}
|
||||||
- <SfxName>k__BackingField: OpenManualBook
|
- <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
|
- <SfxName>k__BackingField: CloseManualBook
|
||||||
<Clip>k__BackingField: {fileID: 8300000, guid: b1d132518b614a743ac3a571ac75718c, type: 3}
|
<Clip>k__BackingField: {fileID: 8300000, guid: b1d132518b614a743ac3a571ac75718c, type: 3}
|
||||||
- <SfxName>k__BackingField: SucceedServing
|
- <SfxName>k__BackingField: SucceedServing
|
||||||
@ -116,10 +116,20 @@ MonoBehaviour:
|
|||||||
- <SfxName>k__BackingField: TycoonPlayerWalking
|
- <SfxName>k__BackingField: TycoonPlayerWalking
|
||||||
<Clip>k__BackingField: {fileID: 8300000, guid: 4b5f41d537a9a574b9520f50b39fb425, type: 3}
|
<Clip>k__BackingField: {fileID: 8300000, guid: 4b5f41d537a9a574b9520f50b39fb425, type: 3}
|
||||||
- <SfxName>k__BackingField: SelectCard
|
- <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
|
- <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
|
- <SfxName>k__BackingField: TycoonPlayerAttacked
|
||||||
<Clip>k__BackingField: {fileID: 8300000, guid: 416cb3dc1c8801f46a4a3b14d7665d8b, type: 3}
|
<Clip>k__BackingField: {fileID: 8300000, guid: 416cb3dc1c8801f46a4a3b14d7665d8b, type: 3}
|
||||||
- <SfxName>k__BackingField: RewardBoxInteractionFailed
|
- <SfxName>k__BackingField: RewardBoxInteractionFailed
|
||||||
<Clip>k__BackingField: {fileID: 8300000, guid: 5850aa1a011156841bed2ffc74d93bbd, type: 3}
|
<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}
|
||||||
|
@ -30,6 +30,139 @@ MonoBehaviour:
|
|||||||
<PageIndex>k__BackingField: 3
|
<PageIndex>k__BackingField: 3
|
||||||
<DescriptionIdx>k__BackingField: TutorialA03
|
<DescriptionIdx>k__BackingField: TutorialA03
|
||||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 29fd4626221cc4e449047cb509a4b670, type: 3}
|
<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}
|
<FirstPopup>k__BackingField: {fileID: 1581927570, guid: d881395249d9f7d43940877db16f096d, type: 3}
|
||||||
<MiddlePopup>k__BackingField: {fileID: 1740845040, guid: 4eb21a9cf7ed8e44388a74756a151b20, type: 3}
|
<MiddlePopup>k__BackingField: {fileID: 1740845040, guid: 4eb21a9cf7ed8e44388a74756a151b20, type: 3}
|
||||||
<LastPopup>k__BackingField: {fileID: -1576049482, guid: d21603cd31610504c847fd606881daba, type: 3}
|
<LastPopup>k__BackingField: {fileID: -1576049482, guid: d21603cd31610504c847fd606881daba, type: 3}
|
||||||
|
@ -71,6 +71,12 @@ namespace BlueWater.Tycoons
|
|||||||
newCrew.Initialize();
|
newCrew.Initialize();
|
||||||
EventManager.InvokeUpdateCrewUi(BartenderCrews.Count, ServerCrews.Count, CleanerCrews.Count);
|
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;
|
return newCrew;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,6 +88,12 @@ namespace BlueWater.Tycoons
|
|||||||
newCrew.Initialize();
|
newCrew.Initialize();
|
||||||
EventManager.InvokeUpdateCrewUi(BartenderCrews.Count, ServerCrews.Count, CleanerCrews.Count);
|
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;
|
return newCrew;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,6 +110,12 @@ namespace BlueWater.Tycoons
|
|||||||
newCrew.Initialize();
|
newCrew.Initialize();
|
||||||
EventManager.InvokeUpdateCrewUi(BartenderCrews.Count, ServerCrews.Count, CleanerCrews.Count);
|
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;
|
return newCrew;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,8 +8,9 @@ namespace BlueWater
|
|||||||
{
|
{
|
||||||
public enum RewardBoxType
|
public enum RewardBoxType
|
||||||
{
|
{
|
||||||
Normal = 0,
|
None = 0,
|
||||||
Rare = 1
|
Normal = 1,
|
||||||
|
Rare = 2
|
||||||
}
|
}
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
|
@ -368,10 +368,14 @@ namespace BlueWater
|
|||||||
_reachedCollider.transform.position = _originalReachedPosition;
|
_reachedCollider.transform.position = _originalReachedPosition;
|
||||||
EventManager.InvokeCocktailStarted();
|
EventManager.InvokeCocktailStarted();
|
||||||
}
|
}
|
||||||
|
else if (_instanceLiquidCount >= _maxLiquidCount)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
_elapsedTime = 0f;
|
_elapsedTime = 0f;
|
||||||
_isPouring = true;
|
_isPouring = true;
|
||||||
AudioManager.Instance.PlaySfx(_pouringSfxName, loop: true);
|
AudioManager.Instance.PlaySfx(_pouringSfxName);
|
||||||
|
|
||||||
// To Center 이동 코루틴이 활성화 중이지 않을 때
|
// To Center 이동 코루틴이 활성화 중이지 않을 때
|
||||||
if (_movePanelToCenterInstance == null)
|
if (_movePanelToCenterInstance == null)
|
||||||
@ -582,7 +586,7 @@ namespace BlueWater
|
|||||||
float offsetY = Mathf.Lerp(_offsetY.x, _offsetY.y, t);
|
float offsetY = Mathf.Lerp(_offsetY.x, _offsetY.y, t);
|
||||||
var playerViewportPoint = mainCamera.WorldToViewportPoint(playerPosition);
|
var playerViewportPoint = mainCamera.WorldToViewportPoint(playerPosition);
|
||||||
var panelWorldPosition = _overlayCamera.ViewportToWorldPoint(new Vector3(playerViewportPoint.x,
|
var panelWorldPosition = _overlayCamera.ViewportToWorldPoint(new Vector3(playerViewportPoint.x,
|
||||||
playerViewportPoint.y, _overlayCamera.nearClipPlane));
|
playerViewportPoint.y, playerViewportPoint.z));
|
||||||
panelWorldPosition.y += offsetY;
|
panelWorldPosition.y += offsetY;
|
||||||
|
|
||||||
var lerpTime = elapsedTime / _moveToPlayerDuration;
|
var lerpTime = elapsedTime / _moveToPlayerDuration;
|
||||||
@ -606,7 +610,7 @@ namespace BlueWater
|
|||||||
float offsetY = Mathf.Lerp(_offsetY.x, _offsetY.y, t);
|
float offsetY = Mathf.Lerp(_offsetY.x, _offsetY.y, t);
|
||||||
var playerViewportPoint = mainCamera.WorldToViewportPoint(playerPosition);
|
var playerViewportPoint = mainCamera.WorldToViewportPoint(playerPosition);
|
||||||
var panelWorldPosition = _overlayCamera.ViewportToWorldPoint(new Vector3(playerViewportPoint.x,
|
var panelWorldPosition = _overlayCamera.ViewportToWorldPoint(new Vector3(playerViewportPoint.x,
|
||||||
playerViewportPoint.y, _overlayCamera.nearClipPlane));
|
playerViewportPoint.y, playerViewportPoint.z));
|
||||||
panelWorldPosition.y += offsetY;
|
panelWorldPosition.y += offsetY;
|
||||||
|
|
||||||
_liquidPanel.transform.position = panelWorldPosition;
|
_liquidPanel.transform.position = panelWorldPosition;
|
||||||
|
@ -29,6 +29,9 @@ namespace BlueWater.Tycoons
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private string _selectCardSfxName = "SelectCard";
|
private string _selectCardSfxName = "SelectCard";
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string _purifySfxName = "Purify";
|
||||||
|
|
||||||
private TycoonManager _tycoonManager;
|
private TycoonManager _tycoonManager;
|
||||||
private TycoonStatus _tycoonStatus;
|
private TycoonStatus _tycoonStatus;
|
||||||
|
|
||||||
@ -135,6 +138,7 @@ namespace BlueWater.Tycoons
|
|||||||
break;
|
break;
|
||||||
case "AllCustomerPurification":
|
case "AllCustomerPurification":
|
||||||
EventManager.InvokePurifiedCustomerAll();
|
EventManager.InvokePurifiedCustomerAll();
|
||||||
|
AudioManager.Instance.PlaySfx(_purifySfxName);
|
||||||
break;
|
break;
|
||||||
case "GaugeTimeUp":
|
case "GaugeTimeUp":
|
||||||
_tycoonStatus.CustomerHurryTimeIncrease += 3;
|
_tycoonStatus.CustomerHurryTimeIncrease += 3;
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using BlueWater.Audios;
|
||||||
using BlueWater.Items;
|
using BlueWater.Items;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -33,6 +34,9 @@ namespace BlueWater.Tycoons
|
|||||||
|
|
||||||
private List<Barrel> _barrels;
|
private List<Barrel> _barrels;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string _createMoldySfxName = "CreateMoldy";
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
_barrels = new List<Barrel>
|
_barrels = new List<Barrel>
|
||||||
@ -125,6 +129,8 @@ namespace BlueWater.Tycoons
|
|||||||
|
|
||||||
int randomIndex = Random.Range(0, moldableElements.Count);
|
int randomIndex = Random.Range(0, moldableElements.Count);
|
||||||
moldableElements[randomIndex].Mold();
|
moldableElements[randomIndex].Mold();
|
||||||
|
|
||||||
|
AudioManager.Instance.PlaySfx(_createMoldySfxName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
using System;
|
|
||||||
using BlueWater.Audios;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
|
|
||||||
@ -29,9 +27,6 @@ namespace BlueWater.Tycoons
|
|||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
public TycoonCardController TycoonCardController { get; private set; }
|
public TycoonCardController TycoonCardController { get; private set; }
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
private string _dailyBgm;
|
|
||||||
|
|
||||||
[field: Title("타이쿤 플레이어 스탯")]
|
[field: Title("타이쿤 플레이어 스탯")]
|
||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
public TycoonStatus TycoonStatus { get; private set; }
|
public TycoonStatus TycoonStatus { get; private set; }
|
||||||
@ -47,11 +42,6 @@ namespace BlueWater.Tycoons
|
|||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(_dailyBgm))
|
|
||||||
{
|
|
||||||
AudioManager.Instance.PlayBgm(_dailyBgm);
|
|
||||||
}
|
|
||||||
|
|
||||||
TycoonStatus = new TycoonStatus();
|
TycoonStatus = new TycoonStatus();
|
||||||
TycoonStatus.Initialize();
|
TycoonStatus.Initialize();
|
||||||
}
|
}
|
||||||
|
@ -156,7 +156,7 @@ namespace BlueWater.Tycoons
|
|||||||
[Button("노말 상자 생성")]
|
[Button("노말 상자 생성")]
|
||||||
public void CreateChest(LevelData levelData)
|
public void CreateChest(LevelData levelData)
|
||||||
{
|
{
|
||||||
if (levelData.Idx == "1") return;
|
if (levelData.Idx == "1" || levelData.RewardBoxType == RewardBoxType.None) return;
|
||||||
|
|
||||||
var spawnPosition = Utils.RandomPositionOnGraph(1);
|
var spawnPosition = Utils.RandomPositionOnGraph(1);
|
||||||
|
|
||||||
|
@ -352,6 +352,7 @@ namespace BlueWater.Tycoons
|
|||||||
case "Upgrade1":
|
case "Upgrade1":
|
||||||
tycoonManager.CustomerTableController.ShowCustomerTable(1);
|
tycoonManager.CustomerTableController.ShowCustomerTable(1);
|
||||||
tycoonManager.TycoonIngredientController.LiquidBarrelB.Activate();
|
tycoonManager.TycoonIngredientController.LiquidBarrelB.Activate();
|
||||||
|
EventManager.InvokeActivatePump();
|
||||||
break;
|
break;
|
||||||
case "Upgrade2":
|
case "Upgrade2":
|
||||||
tycoonManager.CustomerTableController.ShowCustomerTable(2);
|
tycoonManager.CustomerTableController.ShowCustomerTable(2);
|
||||||
|
8
Assets/02.Scripts/Ui/Popup.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4b8f7337f907cdc4e893f2d0a5bc9b80
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
47
Assets/02.Scripts/Ui/Popup/PausePopupUi.cs
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
2
Assets/02.Scripts/Ui/Popup/PausePopupUi.cs.meta
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a32c3115487d6204a82e2a52229e19e7
|
@ -5,19 +5,16 @@ namespace BlueWater.Uis
|
|||||||
public class PopupUi : MonoBehaviour
|
public class PopupUi : MonoBehaviour
|
||||||
{
|
{
|
||||||
public bool IsOpened { get; protected set; }
|
public bool IsOpened { get; protected set; }
|
||||||
|
public bool IsPaused { get; protected set; }
|
||||||
|
|
||||||
public virtual void Open()
|
public virtual void Open()
|
||||||
{
|
{
|
||||||
// 화면의 가장 앞으로 가져오기
|
|
||||||
// transform.SetAsLastSibling();
|
|
||||||
gameObject.SetActive(true);
|
|
||||||
PopupUiController.RegisterPopup(this);
|
PopupUiController.RegisterPopup(this);
|
||||||
IsOpened = true;
|
IsOpened = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Close()
|
public virtual void Close()
|
||||||
{
|
{
|
||||||
gameObject.SetActive(false);
|
|
||||||
PopupUiController.UnregisterPopup(this);
|
PopupUiController.UnregisterPopup(this);
|
||||||
IsOpened = false;
|
IsOpened = false;
|
||||||
}
|
}
|
@ -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 목록이 비어 있는지 확인
|
// Popup 목록이 비어 있는지 확인
|
||||||
public static bool IsPopupListEmpty() => PopupUis.Count == 0;
|
public static bool IsPopupListEmpty() => PopupUis.Count == 0;
|
||||||
|
|
@ -6,12 +6,16 @@ namespace BlueWater.Uis
|
|||||||
{
|
{
|
||||||
public override void Open()
|
public override void Open()
|
||||||
{
|
{
|
||||||
|
PopupUiController.RegisterPopup(this);
|
||||||
|
gameObject.SetActive(true);
|
||||||
|
IsOpened = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Close()
|
public override void Close()
|
||||||
{
|
{
|
||||||
|
gameObject.SetActive(false);
|
||||||
|
PopupUiController.UnregisterPopup(this);
|
||||||
|
IsOpened = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void EnableInput()
|
public override void EnableInput()
|
@ -125,16 +125,14 @@ public class TitleOptions : PopupUi
|
|||||||
|
|
||||||
public override void Open()
|
public override void Open()
|
||||||
{
|
{
|
||||||
PopupUiController.RegisterPopup(this);
|
base.Open();
|
||||||
_panel.SetActive(true);
|
_panel.SetActive(true);
|
||||||
IsOpened = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Close()
|
public override void Close()
|
||||||
{
|
{
|
||||||
_panel.SetActive(false);
|
_panel.SetActive(false);
|
||||||
PopupUiController.UnregisterPopup(this);
|
base.Close();
|
||||||
IsOpened = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void EnableInput()
|
public override void EnableInput()
|
||||||
|
@ -3,7 +3,6 @@ using BlueWater.Uis;
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.EventSystems;
|
using UnityEngine.EventSystems;
|
||||||
using UnityEngine.InputSystem;
|
using UnityEngine.InputSystem;
|
||||||
using UnityEngine.Serialization;
|
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
|
||||||
namespace BlueWater
|
namespace BlueWater
|
||||||
@ -19,8 +18,8 @@ namespace BlueWater
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Button _cancelButton;
|
private Button _cancelButton;
|
||||||
|
|
||||||
[FormerlySerializedAs("_uiNavigationController")] [SerializeField]
|
[SerializeField]
|
||||||
private UiEventsController uiEventsController;
|
private UiEventsController _uiEventsController;
|
||||||
|
|
||||||
private InputAction _interactionEAction;
|
private InputAction _interactionEAction;
|
||||||
private InputAction _closeOptionsAction;
|
private InputAction _closeOptionsAction;
|
||||||
@ -49,17 +48,16 @@ namespace BlueWater
|
|||||||
|
|
||||||
public override void Open()
|
public override void Open()
|
||||||
{
|
{
|
||||||
PopupUiController.RegisterPopup(this);
|
base.Open();
|
||||||
_panel.SetActive(true);
|
_panel.SetActive(true);
|
||||||
IsOpened = true;
|
// EventSystem.current.SetSelectedGameObject(_cancelButton.gameObject);
|
||||||
EventSystem.current.SetSelectedGameObject(_cancelButton.gameObject);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Close()
|
public override void Close()
|
||||||
{
|
{
|
||||||
_panel.SetActive(false);
|
_panel.SetActive(false);
|
||||||
PopupUiController.UnregisterPopup(this);
|
base.Close();
|
||||||
IsOpened = false;
|
EventSystem.current.SetSelectedGameObject(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void EnableInput()
|
public override void EnableInput()
|
||||||
@ -67,7 +65,7 @@ namespace BlueWater
|
|||||||
_interactionEAction.performed += OnInteractionE;
|
_interactionEAction.performed += OnInteractionE;
|
||||||
_closeOptionsAction.performed += OnCloseOptions;
|
_closeOptionsAction.performed += OnCloseOptions;
|
||||||
|
|
||||||
uiEventsController.EnableAutoNavigate(_cancelButton.gameObject);
|
_uiEventsController.EnableAutoNavigate(_cancelButton.gameObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void DisableInput()
|
public override void DisableInput()
|
||||||
@ -75,7 +73,7 @@ namespace BlueWater
|
|||||||
_interactionEAction.performed -= OnInteractionE;
|
_interactionEAction.performed -= OnInteractionE;
|
||||||
_closeOptionsAction.performed -= OnCloseOptions;
|
_closeOptionsAction.performed -= OnCloseOptions;
|
||||||
|
|
||||||
uiEventsController.DisableAutoNavigate();
|
_uiEventsController.DisableAutoNavigate();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnInteractionE(InputAction.CallbackContext context)
|
public void OnInteractionE(InputAction.CallbackContext context)
|
||||||
|
@ -12,7 +12,7 @@ using UnityEngine.UI;
|
|||||||
|
|
||||||
namespace BlueWater.Titles
|
namespace BlueWater.Titles
|
||||||
{
|
{
|
||||||
public class TycoonTitle : PopupUi
|
public class TycoonTitle : PausePopupUi
|
||||||
{
|
{
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private GameObject _panel;
|
private GameObject _panel;
|
||||||
@ -82,6 +82,8 @@ namespace BlueWater.Titles
|
|||||||
_openAction = _playerInputKeyManager.GetAction(InputActionMaps.Tycoon, TycoonActions.Options);
|
_openAction = _playerInputKeyManager.GetAction(InputActionMaps.Tycoon, TycoonActions.Options);
|
||||||
_closeAction = _playerInputKeyManager.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.Cancel);
|
_closeAction = _playerInputKeyManager.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.Cancel);
|
||||||
|
|
||||||
|
EventManager.OnTutorial += ShowTutorialUiByName;
|
||||||
|
|
||||||
if (_isTitleScene)
|
if (_isTitleScene)
|
||||||
{
|
{
|
||||||
_startGameButton.onClick.AddListener(() => SceneController.Instance.LoadScene(SceneName.Tycoon));
|
_startGameButton.onClick.AddListener(() => SceneController.Instance.LoadScene(SceneName.Tycoon));
|
||||||
@ -89,7 +91,7 @@ namespace BlueWater.Titles
|
|||||||
AudioManager.Instance.PlayBgm(_dailyBgm);
|
AudioManager.Instance.PlayBgm(_dailyBgm);
|
||||||
|
|
||||||
Open();
|
Open();
|
||||||
EventSystem.current.SetSelectedGameObject(_startGameButton.gameObject);
|
// EventSystem.current.SetSelectedGameObject(_startGameButton.gameObject);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -100,6 +102,7 @@ namespace BlueWater.Titles
|
|||||||
|
|
||||||
titleOptions.CloseOptions = HideSettingUi;
|
titleOptions.CloseOptions = HideSettingUi;
|
||||||
titleQuitUi.CloseQuit = HideQuitUi;
|
titleQuitUi.CloseQuit = HideQuitUi;
|
||||||
|
_tycoonTutorial.CloseAction = HideTutorialUi;
|
||||||
_versionText.text = GetVersion();
|
_versionText.text = GetVersion();
|
||||||
|
|
||||||
inkMaterialInstance = Instantiate(_ink.material);
|
inkMaterialInstance = Instantiate(_ink.material);
|
||||||
@ -108,6 +111,8 @@ namespace BlueWater.Titles
|
|||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
{
|
{
|
||||||
|
EventManager.OnTutorial -= ShowTutorialUiByName;
|
||||||
|
|
||||||
if (_isTitleScene)
|
if (_isTitleScene)
|
||||||
{
|
{
|
||||||
_startGameButton?.onClick.RemoveListener(() => SceneController.Instance?.LoadScene(SceneName.Tycoon));
|
_startGameButton?.onClick.RemoveListener(() => SceneController.Instance?.LoadScene(SceneName.Tycoon));
|
||||||
@ -138,21 +143,19 @@ namespace BlueWater.Titles
|
|||||||
|
|
||||||
public override void Open()
|
public override void Open()
|
||||||
{
|
{
|
||||||
PopupUiController.RegisterPopup(this);
|
OpenSwitch(InputActionMaps.TycoonUi);
|
||||||
_panel.SetActive(true);
|
_panel.SetActive(true);
|
||||||
|
|
||||||
if (_isTitleScene)
|
// if (_isTitleScene)
|
||||||
{
|
// {
|
||||||
|
//
|
||||||
}
|
// }
|
||||||
else
|
// else
|
||||||
{
|
// {
|
||||||
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
// VisualFeedbackManager.Instance.SetBaseTimeScale(0f);
|
||||||
_playerInputKeyManager.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
// _playerInputKeyManager.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
||||||
EventSystem.current.SetSelectedGameObject(_resumeGameButton.gameObject);
|
// // EventSystem.current.SetSelectedGameObject(_resumeGameButton.gameObject);
|
||||||
}
|
// }
|
||||||
|
|
||||||
IsOpened = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnClose(InputAction.CallbackContext context)
|
public void OnClose(InputAction.CallbackContext context)
|
||||||
@ -162,19 +165,22 @@ namespace BlueWater.Titles
|
|||||||
|
|
||||||
public override void Close()
|
public override void Close()
|
||||||
{
|
{
|
||||||
|
// base.Close();
|
||||||
|
//
|
||||||
|
// if (_isTitleScene)
|
||||||
|
// {
|
||||||
|
//
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// if (PopupUiController.IsPopupListEmpty() || !PopupUiController.IsPausedPopupList())
|
||||||
|
// {
|
||||||
|
// VisualFeedbackManager.Instance.ResetTimeScale();
|
||||||
|
// _playerInputKeyManager.SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
_panel.SetActive(false);
|
_panel.SetActive(false);
|
||||||
PopupUiController.UnregisterPopup(this);
|
CloseSwitch(InputActionMaps.Tycoon);
|
||||||
IsOpened = false;
|
|
||||||
|
|
||||||
if (_isTitleScene)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_playerInputKeyManager.SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
|
||||||
VisualFeedbackManager.Instance.ResetTimeScale();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void EnableInput()
|
public override void EnableInput()
|
||||||
@ -238,19 +244,21 @@ namespace BlueWater.Titles
|
|||||||
{
|
{
|
||||||
_titleMenuUiPanel.SetActive(false);
|
_titleMenuUiPanel.SetActive(false);
|
||||||
titleOptions.Open();
|
titleOptions.Open();
|
||||||
|
EventSystem.current.SetSelectedGameObject(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void HideSettingUi()
|
public void HideSettingUi()
|
||||||
{
|
{
|
||||||
titleOptions.Close();
|
titleOptions.Close();
|
||||||
_titleMenuUiPanel.SetActive(true);
|
_titleMenuUiPanel.SetActive(true);
|
||||||
EventSystem.current.SetSelectedGameObject(_optionsButton.gameObject);
|
// EventSystem.current.SetSelectedGameObject(_optionsButton.gameObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ShowQuitUi()
|
public void ShowQuitUi()
|
||||||
{
|
{
|
||||||
_titleMenuUiPanel.SetActive(false);
|
_titleMenuUiPanel.SetActive(false);
|
||||||
titleQuitUi.Open();
|
titleQuitUi.Open();
|
||||||
|
EventSystem.current.SetSelectedGameObject(null);
|
||||||
|
|
||||||
Utils.StartUniqueCoroutine(this, ref _inkCoroutine, MoveInkBackground(1f));
|
Utils.StartUniqueCoroutine(this, ref _inkCoroutine, MoveInkBackground(1f));
|
||||||
}
|
}
|
||||||
@ -259,7 +267,7 @@ namespace BlueWater.Titles
|
|||||||
{
|
{
|
||||||
titleQuitUi.Close();
|
titleQuitUi.Close();
|
||||||
_titleMenuUiPanel.SetActive(true);
|
_titleMenuUiPanel.SetActive(true);
|
||||||
EventSystem.current.SetSelectedGameObject(_quitGameButton.gameObject);
|
// EventSystem.current.SetSelectedGameObject(_quitGameButton.gameObject);
|
||||||
|
|
||||||
Utils.StartUniqueCoroutine(this, ref _inkCoroutine, MoveInkBackground(0.4f));
|
Utils.StartUniqueCoroutine(this, ref _inkCoroutine, MoveInkBackground(0.4f));
|
||||||
}
|
}
|
||||||
@ -267,14 +275,32 @@ namespace BlueWater.Titles
|
|||||||
public void ShowTutorialUi()
|
public void ShowTutorialUi()
|
||||||
{
|
{
|
||||||
_titleMenuUiPanel.SetActive(false);
|
_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);
|
_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)
|
private IEnumerator MoveInkBackground(float pos)
|
||||||
|
@ -18,7 +18,7 @@ using UnityEngine.UI;
|
|||||||
|
|
||||||
namespace BlueWater.Uis
|
namespace BlueWater.Uis
|
||||||
{
|
{
|
||||||
public class ManualBook : PopupUi
|
public class ManualBook : PausePopupUi
|
||||||
{
|
{
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private GameObject _panel;
|
private GameObject _panel;
|
||||||
@ -55,7 +55,7 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
[Title("참조")]
|
[Title("참조")]
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private UiEventsController uiEventsController;
|
private UiEventsController _uiEventsController;
|
||||||
|
|
||||||
[Title("실시간 데이터")]
|
[Title("실시간 데이터")]
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
@ -99,8 +99,7 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
_openManualBookAction.performed += OnOpen;
|
_openManualBookAction.performed += OnOpen;
|
||||||
|
|
||||||
uiEventsController.SetSelectObject(_cocktailRecipeButtons[0].gameObject);
|
_uiEventsController.SetSelectObject(_cocktailRecipeButtons[0].gameObject);
|
||||||
EventSystem.current.SetSelectedGameObject(uiEventsController.SelectObject);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
@ -145,13 +144,10 @@ namespace BlueWater.Uis
|
|||||||
{
|
{
|
||||||
if (!PopupUiController.IsPopupListEmpty()) return;
|
if (!PopupUiController.IsPopupListEmpty()) return;
|
||||||
|
|
||||||
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
OpenSwitch(InputActionMaps.TycoonUi);
|
||||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
|
||||||
PopupUiController.RegisterPopup(this);
|
|
||||||
_panel.SetActive(true);
|
_panel.SetActive(true);
|
||||||
IsOpened = true;
|
|
||||||
AudioManager.Instance.PlaySfx(_openManualSfxName, ignoreTimeScale: true);
|
AudioManager.Instance.PlaySfx(_openManualSfxName, ignoreTimeScale: true);
|
||||||
EventSystem.current.SetSelectedGameObject(uiEventsController.SelectObject);
|
EventSystem.current.SetSelectedGameObject(_uiEventsController.SelectObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnClose(InputAction.CallbackContext context)
|
public void OnClose(InputAction.CallbackContext context)
|
||||||
@ -163,22 +159,19 @@ namespace BlueWater.Uis
|
|||||||
{
|
{
|
||||||
AudioManager.Instance.PlaySfx(_closeManualSfxName, ignoreTimeScale: true);
|
AudioManager.Instance.PlaySfx(_closeManualSfxName, ignoreTimeScale: true);
|
||||||
_panel.SetActive(false);
|
_panel.SetActive(false);
|
||||||
PopupUiController.UnregisterPopup(this);
|
CloseSwitch(InputActionMaps.Tycoon);
|
||||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
|
||||||
IsOpened = false;
|
|
||||||
VisualFeedbackManager.Instance.ResetTimeScale();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void EnableInput()
|
public override void EnableInput()
|
||||||
{
|
{
|
||||||
_pressQAction.performed += OnClose;
|
_pressQAction.performed += OnClose;
|
||||||
_cancelAction.performed += OnClose;
|
_cancelAction.performed += OnClose;
|
||||||
uiEventsController.EnableAutoNavigate();
|
_uiEventsController.EnableAutoNavigate();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void DisableInput()
|
public override void DisableInput()
|
||||||
{
|
{
|
||||||
uiEventsController.DisableAutoNavigate();
|
_uiEventsController.DisableAutoNavigate();
|
||||||
_pressQAction.performed -= OnClose;
|
_pressQAction.performed -= OnClose;
|
||||||
_cancelAction.performed -= OnClose;
|
_cancelAction.performed -= OnClose;
|
||||||
}
|
}
|
||||||
@ -229,7 +222,7 @@ namespace BlueWater.Uis
|
|||||||
public void SelectItem(CocktailRecipeButton cocktailRecipeButton)
|
public void SelectItem(CocktailRecipeButton cocktailRecipeButton)
|
||||||
{
|
{
|
||||||
_selectedCocktailRecipeButton = cocktailRecipeButton;
|
_selectedCocktailRecipeButton = cocktailRecipeButton;
|
||||||
uiEventsController.SetSelectObject(_selectedCocktailRecipeButton.gameObject);
|
_uiEventsController.SetSelectObject(_selectedCocktailRecipeButton.gameObject);
|
||||||
|
|
||||||
_selectedCocktailName.text = Utils.GetLocalizedString(_selectedCocktailRecipeButton.CocktailData.Idx);
|
_selectedCocktailName.text = Utils.GetLocalizedString(_selectedCocktailRecipeButton.CocktailData.Idx);
|
||||||
_selectedCocktailImage.sprite = _selectedCocktailRecipeButton.CocktailData.Sprite;
|
_selectedCocktailImage.sprite = _selectedCocktailRecipeButton.CocktailData.Sprite;
|
||||||
|
72
Assets/02.Scripts/Ui/Tycoon/TutorialLink.cs
Normal 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));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
2
Assets/02.Scripts/Ui/Tycoon/TutorialLink.cs.meta
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ac25cbaf820aa674eb6a1539b9ac4c01
|
@ -8,7 +8,7 @@ namespace BlueWater
|
|||||||
First = 0,
|
First = 0,
|
||||||
Middle = 1,
|
Middle = 1,
|
||||||
Last = 2,
|
Last = 2,
|
||||||
Sole = 3
|
Solo = 3
|
||||||
}
|
}
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
|
@ -14,6 +14,9 @@ namespace BlueWater
|
|||||||
{
|
{
|
||||||
public class TutorialPageToggle : MonoBehaviour
|
public class TutorialPageToggle : MonoBehaviour
|
||||||
{
|
{
|
||||||
|
[field: SerializeField]
|
||||||
|
public RectTransform Rect { get; private set; }
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Toggle _toggle;
|
private Toggle _toggle;
|
||||||
|
|
||||||
@ -51,14 +54,17 @@ namespace BlueWater
|
|||||||
LocalizationSettings.SelectedLocaleChanged += OnChangedLocale;
|
LocalizationSettings.SelectedLocaleChanged += OnChangedLocale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnEnable()
|
||||||
|
{
|
||||||
|
_buttonText.text = Utils.GetLocalizedString(_tutorialInfo.TitleTextIdx);
|
||||||
|
}
|
||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
{
|
{
|
||||||
LocalizationSettings.SelectedLocaleChanged -= OnChangedLocale;
|
LocalizationSettings.SelectedLocaleChanged -= OnChangedLocale;
|
||||||
|
|
||||||
_selectSequence.Kill();
|
_selectSequence.Kill();
|
||||||
_deselectSequence.Kill();
|
_deselectSequence.Kill();
|
||||||
|
|
||||||
OnToggleEvent = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnChangedLocale(Locale locale)
|
private void OnChangedLocale(Locale locale)
|
||||||
@ -102,17 +108,22 @@ namespace BlueWater
|
|||||||
.SetUpdate(true)
|
.SetUpdate(true)
|
||||||
.SetAutoKill(false)
|
.SetAutoKill(false)
|
||||||
.Pause();
|
.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)
|
public void OnToggle(bool isOn)
|
||||||
{
|
{
|
||||||
if (_toggle.isOn)
|
_toggle.isOn = isOn;
|
||||||
{
|
_toggle.interactable = !_toggle.isOn;
|
||||||
_toggle.interactable = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
_toggle.interactable = true;
|
|
||||||
|
|
||||||
if (isOn)
|
if (isOn)
|
||||||
{
|
{
|
||||||
@ -126,6 +137,7 @@ namespace BlueWater
|
|||||||
_selectSequence?.Pause();
|
_selectSequence?.Pause();
|
||||||
_deselectSequence.Restart();
|
_deselectSequence.Restart();
|
||||||
}
|
}
|
||||||
|
|
||||||
OnToggleEvent?.Invoke(isOn);
|
OnToggleEvent?.Invoke(isOn);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,7 @@ using Random = UnityEngine.Random;
|
|||||||
|
|
||||||
namespace BlueWater.Uis
|
namespace BlueWater.Uis
|
||||||
{
|
{
|
||||||
public class TycoonRareRewardBoxUi : PopupUi
|
public class TycoonRareRewardBoxUi : PausePopupUi
|
||||||
{
|
{
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private GameObject _panel;
|
private GameObject _panel;
|
||||||
@ -24,14 +24,25 @@ namespace BlueWater.Uis
|
|||||||
private Vector3 _cardLocalScale_4 = new(0.7f, 0.7f, 1f);
|
private Vector3 _cardLocalScale_4 = new(0.7f, 0.7f, 1f);
|
||||||
private Vector3 _cardLocalScale_5 = new(0.65f, 0.65f, 1f);
|
private Vector3 _cardLocalScale_5 = new(0.65f, 0.65f, 1f);
|
||||||
|
|
||||||
[SerializeField]
|
|
||||||
private string _openSfxName = "OpenRareRewardBox";
|
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Button allOpenCardButton;
|
private Button allOpenCardButton;
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Button closeButton;
|
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 List<TycoonCard> _tycoonCards = new(5);
|
||||||
private int viewCardCount = 0;
|
private int viewCardCount = 0;
|
||||||
|
|
||||||
@ -61,36 +72,30 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
public override void Open()
|
public override void Open()
|
||||||
{
|
{
|
||||||
|
OpenSwitch(InputActionMaps.TycoonUi);
|
||||||
AudioManager.Instance.PlaySfx(_openSfxName, ignoreTimeScale: true);
|
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);
|
allOpenCardButton.gameObject.SetActive(true);
|
||||||
closeButton.gameObject.SetActive(false);
|
closeButton.gameObject.SetActive(false);
|
||||||
|
_panel.SetActive(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Close()
|
public override void Close()
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.PlaySfx(_cardOpenAllSfxName, ignoreTimeScale: true);
|
||||||
|
CloseSwitch(InputActionMaps.Tycoon);
|
||||||
_panel.SetActive(false);
|
_panel.SetActive(false);
|
||||||
PopupUiController.UnregisterPopup(this);
|
|
||||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
|
||||||
IsOpened = false;
|
|
||||||
VisualFeedbackManager.Instance.ResetTimeScale();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void EnableInput()
|
public override void EnableInput()
|
||||||
{
|
{
|
||||||
_interactionEAction.performed += OnInteractionE;
|
_interactionEAction.performed += OnInteractionE;
|
||||||
this.GetComponent<UiEventsController>().EnableAutoNavigate();
|
_uiEventsController.EnableAutoNavigate();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void DisableInput()
|
public override void DisableInput()
|
||||||
{
|
{
|
||||||
_interactionEAction.performed -= OnInteractionE;
|
_interactionEAction.performed -= OnInteractionE;
|
||||||
this.GetComponent<UiEventsController>().DisableAutoNavigate();
|
_uiEventsController.DisableAutoNavigate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -149,11 +154,12 @@ namespace BlueWater.Uis
|
|||||||
_tycoonCardController.SelectCard(element);
|
_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)
|
private void OpenCard(TycoonCard tycoonCard)
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.PlaySfx(_cardOpenSfxName, ignoreTimeScale: true);
|
||||||
tycoonCard.Rotation_Start();
|
tycoonCard.Rotation_Start();
|
||||||
tycoonCard.SetSelectAction(null);
|
tycoonCard.SetSelectAction(null);
|
||||||
viewCardCount--;
|
viewCardCount--;
|
||||||
@ -168,6 +174,7 @@ namespace BlueWater.Uis
|
|||||||
[Button("카드 모두 열기")]
|
[Button("카드 모두 열기")]
|
||||||
public void AllOpenCard()
|
public void AllOpenCard()
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.PlaySfx(_cardOpenSfxName, ignoreTimeScale: true);
|
||||||
viewCardCount = 0;
|
viewCardCount = 0;
|
||||||
//남은 카드가 열리는 연출만 추가하자
|
//남은 카드가 열리는 연출만 추가하자
|
||||||
foreach (var element in _tycoonCards)
|
foreach (var element in _tycoonCards)
|
||||||
|
@ -2,17 +2,19 @@ using System;
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using BlueWater.Audios;
|
using BlueWater.Audios;
|
||||||
|
using BlueWater.Npcs.Customers;
|
||||||
using BlueWater.Tycoons;
|
using BlueWater.Tycoons;
|
||||||
using BlueWater.Utility;
|
using BlueWater.Utility;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using TMPro;
|
using TMPro;
|
||||||
using UnityEngine.InputSystem;
|
using UnityEngine.InputSystem;
|
||||||
|
using UnityEngine.Serialization;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
|
||||||
namespace BlueWater.Uis
|
namespace BlueWater.Uis
|
||||||
{
|
{
|
||||||
public class TycoonResultUi : PopupUi
|
public class TycoonResultUi : PausePopupUi
|
||||||
{
|
{
|
||||||
[Title("결과 카드")]
|
[Title("결과 카드")]
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
@ -64,6 +66,13 @@ namespace BlueWater.Uis
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private GameObject _customerContents;
|
private GameObject _customerContents;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private GameObject _bigCatPanel;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private TMP_Text _bigCatText;
|
||||||
|
private int _bigCatCount;
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private GameObject _casperPanel;
|
private GameObject _casperPanel;
|
||||||
|
|
||||||
@ -71,6 +80,20 @@ namespace BlueWater.Uis
|
|||||||
private TMP_Text _casperText;
|
private TMP_Text _casperText;
|
||||||
private int _casperCount;
|
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]
|
[SerializeField]
|
||||||
private GameObject _pumpkinPanel;
|
private GameObject _pumpkinPanel;
|
||||||
|
|
||||||
@ -78,6 +101,20 @@ namespace BlueWater.Uis
|
|||||||
private TMP_Text _pumpkinText;
|
private TMP_Text _pumpkinText;
|
||||||
private int _pumpkinCount;
|
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("서비스")]
|
[Title("서비스")]
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private GameObject _serviceTitlePanel;
|
private GameObject _serviceTitlePanel;
|
||||||
@ -196,6 +233,7 @@ namespace BlueWater.Uis
|
|||||||
private InputAction _pressAnyKeyAction;
|
private InputAction _pressAnyKeyAction;
|
||||||
|
|
||||||
private float _playTime;
|
private float _playTime;
|
||||||
|
private bool _isSetData;
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
@ -219,8 +257,13 @@ namespace BlueWater.Uis
|
|||||||
_mainMenuButton.onClick.AddListener(() => SceneController.Instance.LoadScene(SceneName.TycoonTile));
|
_mainMenuButton.onClick.AddListener(() => SceneController.Instance.LoadScene(SceneName.TycoonTile));
|
||||||
_restartButton.onClick.AddListener(SceneController.Instance.RestartCurrentScene);
|
_restartButton.onClick.AddListener(SceneController.Instance.RestartCurrentScene);
|
||||||
|
|
||||||
|
_bigCatCount = 0;
|
||||||
_casperCount = 0;
|
_casperCount = 0;
|
||||||
|
_casperBlackCount = 0;
|
||||||
|
_catCount = 0;
|
||||||
_pumpkinCount = 0;
|
_pumpkinCount = 0;
|
||||||
|
_reaperCount = 0;
|
||||||
|
_witchCount = 0;
|
||||||
_goodServingCount = 0;
|
_goodServingCount = 0;
|
||||||
_failedServingCount = 0;
|
_failedServingCount = 0;
|
||||||
_missServingCount = 0;
|
_missServingCount = 0;
|
||||||
@ -255,11 +298,9 @@ namespace BlueWater.Uis
|
|||||||
[Button("결과 연출 테스트")]
|
[Button("결과 연출 테스트")]
|
||||||
public override void Open()
|
public override void Open()
|
||||||
{
|
{
|
||||||
|
OpenSwitch(InputActionMaps.TycoonUi);
|
||||||
|
AudioManager.Instance.StopSfx("TycoonGameOver");
|
||||||
AudioManager.Instance.PlayBgm(_bgmName);
|
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());
|
Utils.StartUniqueCoroutine(this, ref _showResultInstance, ShowResultCoroutine());
|
||||||
}
|
}
|
||||||
@ -309,8 +350,13 @@ namespace BlueWater.Uis
|
|||||||
_textPanel.SetActive(true);
|
_textPanel.SetActive(true);
|
||||||
_customerPanel.SetActive(true);
|
_customerPanel.SetActive(true);
|
||||||
_customerContents.SetActive(true);
|
_customerContents.SetActive(true);
|
||||||
|
_bigCatPanel.SetActive(true);
|
||||||
_casperPanel.SetActive(true);
|
_casperPanel.SetActive(true);
|
||||||
|
_casperBlackPanel.SetActive(true);
|
||||||
|
_catPanel.SetActive(true);
|
||||||
_pumpkinPanel.SetActive(true);
|
_pumpkinPanel.SetActive(true);
|
||||||
|
_reaperPanel.SetActive(true);
|
||||||
|
_witchPanel.SetActive(true);
|
||||||
yield return panelWaitingTime;
|
yield return panelWaitingTime;
|
||||||
|
|
||||||
_serviceTitlePanel.SetActive(true);
|
_serviceTitlePanel.SetActive(true);
|
||||||
@ -373,8 +419,13 @@ namespace BlueWater.Uis
|
|||||||
_textPanel.SetActive(isActive);
|
_textPanel.SetActive(isActive);
|
||||||
_customerPanel.SetActive(isActive);
|
_customerPanel.SetActive(isActive);
|
||||||
_customerContents.SetActive(isActive);
|
_customerContents.SetActive(isActive);
|
||||||
|
_bigCatPanel.SetActive(isActive);
|
||||||
_casperPanel.SetActive(isActive);
|
_casperPanel.SetActive(isActive);
|
||||||
|
_casperBlackPanel.SetActive(isActive);
|
||||||
|
_catPanel.SetActive(isActive);
|
||||||
_pumpkinPanel.SetActive(isActive);
|
_pumpkinPanel.SetActive(isActive);
|
||||||
|
_reaperPanel.SetActive(isActive);
|
||||||
|
_witchPanel.SetActive(isActive);
|
||||||
_serviceTitlePanel.SetActive(isActive);
|
_serviceTitlePanel.SetActive(isActive);
|
||||||
_serviceContents.SetActive(isActive);
|
_serviceContents.SetActive(isActive);
|
||||||
_goodServingPanel.SetActive(isActive);
|
_goodServingPanel.SetActive(isActive);
|
||||||
@ -410,8 +461,13 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
_roundText.text = $"{Utils.GetLocalizedString("Round")} : {TycoonManager.Instance.GetCurrentLevelData().Idx}";
|
_roundText.text = $"{Utils.GetLocalizedString("Round")} : {TycoonManager.Instance.GetCurrentLevelData().Idx}";
|
||||||
_playTimeText.text = $"{Utils.GetLocalizedString("PlayTime")} : {Mathf.FloorToInt(_playTime / 60f):D2} : {Mathf.FloorToInt(_playTime % 60f):D2}";
|
_playTimeText.text = $"{Utils.GetLocalizedString("PlayTime")} : {Mathf.FloorToInt(_playTime / 60f):D2} : {Mathf.FloorToInt(_playTime % 60f):D2}";
|
||||||
|
_bigCatText.text = _bigCatCount.ToString();
|
||||||
_casperText.text = _casperCount.ToString();
|
_casperText.text = _casperCount.ToString();
|
||||||
|
_casperBlackText.text = _casperBlackCount.ToString();
|
||||||
|
_catText.text = _catCount.ToString();
|
||||||
_pumpkinText.text = _pumpkinCount.ToString();
|
_pumpkinText.text = _pumpkinCount.ToString();
|
||||||
|
_reaperText.text = _reaperCount.ToString();
|
||||||
|
_witchText.text = _witchCount.ToString();
|
||||||
_goodServingText.text = _goodServingCount.ToString();
|
_goodServingText.text = _goodServingCount.ToString();
|
||||||
_failedServingText.text = _failedServingCount.ToString();
|
_failedServingText.text = _failedServingCount.ToString();
|
||||||
_missServingText.text = _missServingCount.ToString();
|
_missServingText.text = _missServingCount.ToString();
|
||||||
@ -426,7 +482,8 @@ namespace BlueWater.Uis
|
|||||||
int percent = Mathf.RoundToInt(endGoldMultiplier * 100);
|
int percent = Mathf.RoundToInt(endGoldMultiplier * 100);
|
||||||
char sign = percent >= 0 ? '+' : '-';
|
char sign = percent >= 0 ? '+' : '-';
|
||||||
_minusPercentText.color = percent >= 0 ? Color.blue : Color.red;
|
_minusPercentText.color = percent >= 0 ? Color.blue : Color.red;
|
||||||
_minusPercentText.text = $"{sign} {percent}%";
|
_minusPercentText.text = $"{sign} {Mathf.Abs(percent)}%";
|
||||||
|
_isSetData = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
[Button("결과 즉시 테스트")]
|
[Button("결과 즉시 테스트")]
|
||||||
@ -438,21 +495,39 @@ namespace BlueWater.Uis
|
|||||||
_showResultInstance = null;
|
_showResultInstance = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!_isSetData)
|
||||||
|
{
|
||||||
SetResultData();
|
SetResultData();
|
||||||
|
}
|
||||||
SetActiveUi(true);
|
SetActiveUi(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddCustomerCount(int skinIndex)
|
private void AddCustomerCount(CustomerSkin skinIndex)
|
||||||
{
|
{
|
||||||
switch (skinIndex)
|
switch (skinIndex)
|
||||||
{
|
{
|
||||||
case 0:
|
case CustomerSkin.BigCat:
|
||||||
|
_bigCatCount++;
|
||||||
|
break;
|
||||||
|
case CustomerSkin.Casper:
|
||||||
_casperCount++;
|
_casperCount++;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case CustomerSkin.CasperBlack:
|
||||||
|
_casperBlackCount++;
|
||||||
|
break;
|
||||||
|
case CustomerSkin.Cat:
|
||||||
|
_catCount++;
|
||||||
|
break;
|
||||||
|
case CustomerSkin.PumkinHead:
|
||||||
_pumpkinCount++;
|
_pumpkinCount++;
|
||||||
break;
|
break;
|
||||||
default:;
|
case CustomerSkin.Reaper:
|
||||||
|
_reaperCount++;
|
||||||
|
break;
|
||||||
|
case CustomerSkin.Witch:
|
||||||
|
_witchCount++;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
throw new Exception("손님 스킨 인덱스 오류");
|
throw new Exception("손님 스킨 인덱스 오류");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
using BlueWater.Audios;
|
using BlueWater.Audios;
|
||||||
using BlueWater.Tycoons;
|
using BlueWater.Tycoons;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
@ -8,11 +7,10 @@ using UnityEngine;
|
|||||||
using UnityEngine.EventSystems;
|
using UnityEngine.EventSystems;
|
||||||
using UnityEngine.InputSystem;
|
using UnityEngine.InputSystem;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
using Random = UnityEngine.Random;
|
|
||||||
|
|
||||||
namespace BlueWater.Uis
|
namespace BlueWater.Uis
|
||||||
{
|
{
|
||||||
public class TycoonSelectCard : PopupUi
|
public class TycoonSelectCard : PausePopupUi
|
||||||
{
|
{
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private GameObject _panel;
|
private GameObject _panel;
|
||||||
@ -23,6 +21,10 @@ namespace BlueWater.Uis
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private string _openSfxName = "OpenNormalRewardBox";
|
private string _openSfxName = "OpenNormalRewardBox";
|
||||||
|
|
||||||
|
[Title("참조")]
|
||||||
|
[SerializeField]
|
||||||
|
private UiEventsController _uiEventsController;
|
||||||
|
|
||||||
private List<TycoonCard> _tycoonCards = new(3);
|
private List<TycoonCard> _tycoonCards = new(3);
|
||||||
|
|
||||||
private LevelData _currentLevelData;
|
private LevelData _currentLevelData;
|
||||||
@ -55,34 +57,27 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
public override void Open()
|
public override void Open()
|
||||||
{
|
{
|
||||||
|
OpenSwitch(InputActionMaps.TycoonUi);
|
||||||
AudioManager.Instance.PlaySfx(_openSfxName, ignoreTimeScale: true);
|
AudioManager.Instance.PlaySfx(_openSfxName, ignoreTimeScale: true);
|
||||||
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
|
||||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
|
||||||
PopupUiController.RegisterPopup(this);
|
|
||||||
_panel.SetActive(true);
|
_panel.SetActive(true);
|
||||||
IsOpened = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Close()
|
public override void Close()
|
||||||
{
|
{
|
||||||
|
CloseSwitch(InputActionMaps.Tycoon);
|
||||||
_panel.SetActive(false);
|
_panel.SetActive(false);
|
||||||
PopupUiController.UnregisterPopup(this);
|
|
||||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
|
||||||
IsOpened = false;
|
|
||||||
VisualFeedbackManager.Instance.ResetTimeScale();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public override void EnableInput()
|
public override void EnableInput()
|
||||||
{
|
{
|
||||||
_interactionEAction.performed += OnInteractionE;
|
_interactionEAction.performed += OnInteractionE;
|
||||||
this.GetComponent<UiEventsController>().EnableAutoNavigate();
|
_uiEventsController.EnableAutoNavigate();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void DisableInput()
|
public override void DisableInput()
|
||||||
{
|
{
|
||||||
_interactionEAction.performed -= OnInteractionE;
|
_interactionEAction.performed -= OnInteractionE;
|
||||||
this.GetComponent<UiEventsController>().DisableAutoNavigate();
|
_uiEventsController.DisableAutoNavigate();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnInteractionE(InputAction.CallbackContext context)
|
public void OnInteractionE(InputAction.CallbackContext context)
|
||||||
@ -139,7 +134,7 @@ namespace BlueWater.Uis
|
|||||||
StartCoroutine(FadeInPanel());
|
StartCoroutine(FadeInPanel());
|
||||||
}
|
}
|
||||||
|
|
||||||
this.GetComponent<UiEventsController>().SetSelectObject(_tycoonCards[0].CardArea.gameObject);
|
_uiEventsController.SetSelectObject(_tycoonCards[0].CardArea.gameObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
private IEnumerator FadeInPanel()
|
private IEnumerator FadeInPanel()
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
using System.Threading.Tasks;
|
|
||||||
using BlueWater.Audios;
|
using BlueWater.Audios;
|
||||||
using DG.Tweening;
|
using DG.Tweening;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
@ -27,6 +26,9 @@ namespace BlueWater.Uis
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Animator _closedUiAnimator;
|
private Animator _closedUiAnimator;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string _dailyBgm = "TycoonBgm01";
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private string _gameStartSfxName = "TycoonGameStart";
|
private string _gameStartSfxName = "TycoonGameStart";
|
||||||
|
|
||||||
@ -104,6 +106,16 @@ namespace BlueWater.Uis
|
|||||||
_panel.SetActive(false);
|
_panel.SetActive(false);
|
||||||
PlayerInputKeyManager.Instance.EnableCurrentPlayerInput();
|
PlayerInputKeyManager.Instance.EnableCurrentPlayerInput();
|
||||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
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
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ using UnityEngine.UI;
|
|||||||
|
|
||||||
namespace BlueWater.Uis
|
namespace BlueWater.Uis
|
||||||
{
|
{
|
||||||
public class TycoonStartShopUi : PopupUi
|
public class TycoonStartShopUi : PausePopupUi
|
||||||
{
|
{
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private GameObject _soldOutPrefab;
|
private GameObject _soldOutPrefab;
|
||||||
@ -58,6 +58,10 @@ namespace BlueWater.Uis
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private int _endGold;
|
private int _endGold;
|
||||||
|
|
||||||
|
[Title("참조")]
|
||||||
|
[SerializeField]
|
||||||
|
private UiEventsController _uiEventsController;
|
||||||
|
|
||||||
private List<TycoonCard> _tycoonCards = new(5);
|
private List<TycoonCard> _tycoonCards = new(5);
|
||||||
|
|
||||||
private TycoonManager _tycoonManager;
|
private TycoonManager _tycoonManager;
|
||||||
@ -126,20 +130,14 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
public override void Open()
|
public override void Open()
|
||||||
{
|
{
|
||||||
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
OpenSwitch(InputActionMaps.TycoonUi);
|
||||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
|
||||||
PopupUiController.RegisterPopup(this);
|
|
||||||
_panel.SetActive(true);
|
_panel.SetActive(true);
|
||||||
IsOpened = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override async void Close()
|
public override async void Close()
|
||||||
{
|
{
|
||||||
_panel.SetActive(false);
|
_panel.SetActive(false);
|
||||||
PopupUiController.UnregisterPopup(this);
|
CloseSwitch(InputActionMaps.Tycoon);
|
||||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
|
||||||
IsOpened = false;
|
|
||||||
VisualFeedbackManager.Instance.ResetTimeScale();
|
|
||||||
|
|
||||||
while (!PlayerInputKeyManager.Instance.IsInitialized)
|
while (!PlayerInputKeyManager.Instance.IsInitialized)
|
||||||
{
|
{
|
||||||
@ -152,13 +150,13 @@ namespace BlueWater.Uis
|
|||||||
public override void EnableInput()
|
public override void EnableInput()
|
||||||
{
|
{
|
||||||
_interactionEAction.performed += OnInteractionE;
|
_interactionEAction.performed += OnInteractionE;
|
||||||
this.GetComponent<UiEventsController>().EnableAutoNavigate();
|
_uiEventsController.EnableAutoNavigate();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void DisableInput()
|
public override void DisableInput()
|
||||||
{
|
{
|
||||||
_interactionEAction.performed -= OnInteractionE;
|
_interactionEAction.performed -= OnInteractionE;
|
||||||
this.GetComponent<UiEventsController>().DisableAutoNavigate();
|
_uiEventsController.DisableAutoNavigate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -202,7 +200,7 @@ namespace BlueWater.Uis
|
|||||||
element.Rotation_Start();
|
element.Rotation_Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
this.GetComponent<UiEventsController>().SetSelectObject(_tycoonCards[0].CardArea.gameObject);
|
_uiEventsController.SetSelectObject(_tycoonCards[0].CardArea.gameObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SelectedCard(TycoonCard currentTycoonCard)
|
private void SelectedCard(TycoonCard currentTycoonCard)
|
||||||
|
@ -1,61 +1,94 @@
|
|||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using BlueWater;
|
using BlueWater.Uis;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using UnityEngine.InputSystem;
|
||||||
public class TutorialLink
|
using UnityEngine.UI;
|
||||||
{
|
|
||||||
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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace BlueWater
|
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]
|
[SerializeField, Required]
|
||||||
private GameObject _tutorialPanel;
|
private GameObject _tutorialPanel;
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField, Required]
|
||||||
private Transform _buttonContents;
|
private GameObject _togglePanel;
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField, Required]
|
||||||
|
private ScrollRect _scrollRect;
|
||||||
|
|
||||||
|
[SerializeField, Required]
|
||||||
|
private RectTransform _buttonContents;
|
||||||
|
|
||||||
|
[SerializeField, Required]
|
||||||
private Transform _tutorialPopupUiContents;
|
private Transform _tutorialPopupUiContents;
|
||||||
|
|
||||||
[Title("프리팹")]
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private TutorialPageToggle _tutorialPageToggle;
|
private GameObject _keyAPanel;
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
|
private GameObject _keyDPanel;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private GameObject _keyEPanel;
|
||||||
|
|
||||||
|
[Title("프리팹")]
|
||||||
|
[SerializeField, Required]
|
||||||
|
private TutorialPageToggle _tutorialPageToggle;
|
||||||
|
|
||||||
|
[SerializeField, Required]
|
||||||
private TycoonTutorialPopupUi _tutorialPopupUi;
|
private TycoonTutorialPopupUi _tutorialPopupUi;
|
||||||
|
|
||||||
[Title("So")]
|
[Title("So")]
|
||||||
[SerializeField, Required]
|
[SerializeField, Required]
|
||||||
private TutorialSo _tutorialSo;
|
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()
|
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();
|
HideUi();
|
||||||
|
|
||||||
foreach (Transform element in _buttonContents)
|
foreach (Transform element in _buttonContents.transform)
|
||||||
{
|
{
|
||||||
Destroy(element.gameObject);
|
Destroy(element.gameObject);
|
||||||
}
|
}
|
||||||
@ -65,7 +98,7 @@ namespace BlueWater
|
|||||||
Destroy(element.gameObject);
|
Destroy(element.gameObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
_tutorialLinks = new Dictionary<string, TutorialLink>(_tutorialSo.GetDataCount());
|
_tutorialLinks = new List<TutorialLink>(_tutorialSo.GetDataCount());
|
||||||
foreach (TutorialInfo tutorialInfo in _tutorialSo.GetData().Values)
|
foreach (TutorialInfo tutorialInfo in _tutorialSo.GetData().Values)
|
||||||
{
|
{
|
||||||
TutorialPageToggle tutorialPageToggle = Instantiate(this._tutorialPageToggle, _buttonContents);
|
TutorialPageToggle tutorialPageToggle = Instantiate(this._tutorialPageToggle, _buttonContents);
|
||||||
@ -75,25 +108,248 @@ namespace BlueWater
|
|||||||
for (int i = 0; i < tutorialInfo.TutorialPages.Count; i++)
|
for (int i = 0; i < tutorialInfo.TutorialPages.Count; i++)
|
||||||
{
|
{
|
||||||
TycoonTutorialPopupUi tycoonTutorialPopupUi = Instantiate(_tutorialPopupUi, _tutorialPopupUiContents);
|
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);
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ShowUi()
|
_tutorialLinks.Add(tutorialLink);
|
||||||
{
|
|
||||||
if (_tutorialLinks.TryGetValue("TutorialA", out TutorialLink tutorialLink))
|
|
||||||
{
|
|
||||||
tutorialLink.TutorialPageToggle.OnToggle(true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_currentTutorialLink = _tutorialLinks[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDestroy()
|
||||||
|
{
|
||||||
|
_pressQAction = null;
|
||||||
|
_pressRAction = null;
|
||||||
|
_pressAAction = null;
|
||||||
|
_pressDAction = null;
|
||||||
|
_interactionEAction = null;
|
||||||
|
_closeAction = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Open()
|
||||||
|
{
|
||||||
|
OpenSwitch(InputActionMaps.TycoonUi);
|
||||||
|
|
||||||
|
if (_isInMenu)
|
||||||
|
{
|
||||||
|
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);
|
_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()
|
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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using BlueWater.Uis;
|
using BlueWater.Uis;
|
||||||
using BlueWater.Utility;
|
using BlueWater.Utility;
|
||||||
|
using Sirenix.OdinInspector;
|
||||||
using TMPro;
|
using TMPro;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Localization;
|
using UnityEngine.Localization;
|
||||||
@ -10,30 +12,67 @@ using UnityEngine.UI;
|
|||||||
|
|
||||||
namespace BlueWater
|
namespace BlueWater
|
||||||
{
|
{
|
||||||
public class TycoonTutorialPopupUi : TutorialPopupUi
|
public class TycoonTutorialPopupUi : PopupUi
|
||||||
{
|
{
|
||||||
|
[SerializeField]
|
||||||
|
private Image _popupImage;
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private TMP_Text _titleText;
|
private TMP_Text _titleText;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private RectTransform _descriptionTextRect;
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private TMP_Text _descriptionText;
|
private TMP_Text _descriptionText;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private RectTransform _descriptionTImageRect;
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Image _descriptionImage;
|
private Image _descriptionImage;
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private TMP_Text _pageText;
|
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 TutorialInfo _tutorialInfo;
|
||||||
private TutorialPage _tutorialPage;
|
private TutorialPage _tutorialPage;
|
||||||
private Coroutine _changedLocaleInstance;
|
private Coroutine _changedLocaleInstance;
|
||||||
private int _pageIndex;
|
private int _pageIndex;
|
||||||
|
|
||||||
private void Start()
|
public Action<TutorialLink> OnPreviousPage;
|
||||||
|
public Action<TutorialLink> OnNextPage;
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
{
|
{
|
||||||
LocalizationSettings.SelectedLocaleChanged += OnChangedLocale;
|
LocalizationSettings.SelectedLocaleChanged += OnChangedLocale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnEnable()
|
||||||
|
{
|
||||||
|
_titleText.text = Utils.GetLocalizedString(_tutorialInfo.TitleTextIdx);
|
||||||
|
_descriptionText.text = Utils.GetLocalizedString(_tutorialPage.DescriptionIdx);
|
||||||
|
}
|
||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
{
|
{
|
||||||
LocalizationSettings.SelectedLocaleChanged -= OnChangedLocale;
|
LocalizationSettings.SelectedLocaleChanged -= OnChangedLocale;
|
||||||
@ -59,7 +98,19 @@ namespace BlueWater
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Initialize(TutorialInfo tutorialInfo, int pageindex)
|
public override void Open()
|
||||||
|
{
|
||||||
|
base.Open();
|
||||||
|
gameObject.SetActive(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Close()
|
||||||
|
{
|
||||||
|
gameObject.SetActive(false);
|
||||||
|
base.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Initialize(TutorialInfo tutorialInfo, int pageindex, Sprite popupSprite)
|
||||||
{
|
{
|
||||||
gameObject.SetActive(false);
|
gameObject.SetActive(false);
|
||||||
|
|
||||||
@ -69,18 +120,50 @@ namespace BlueWater
|
|||||||
|
|
||||||
gameObject.name = $"{_tutorialInfo.TutorialName}{_pageIndex + 1}";
|
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.text = Utils.GetLocalizedString(_tutorialInfo.TitleTextIdx);
|
||||||
_titleText.enabled = true;
|
_titleText.enabled = true;
|
||||||
|
_descriptionTextRect.anchoredPosition = _descriptionTextAnchorPositionInFirst;
|
||||||
|
_descriptionTImageRect.anchoredPosition = _descriptionImageAnchorPositionInFirst;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_titleText.enabled = false;
|
_titleText.enabled = false;
|
||||||
|
_descriptionTextRect.anchoredPosition = _descriptionTextAnchorPositionExceptFirst;
|
||||||
|
_descriptionTImageRect.anchoredPosition = _descriptionImageAnchorPositionExceptFirst;
|
||||||
}
|
}
|
||||||
_descriptionText.text = Utils.GetLocalizedString(_tutorialPage.DescriptionIdx);
|
_descriptionText.text = Utils.GetLocalizedString(_tutorialPage.DescriptionIdx);
|
||||||
_descriptionImage.sprite = _tutorialPage.Sprite;
|
_descriptionImage.sprite = _tutorialPage.Sprite;
|
||||||
|
|
||||||
_pageText.text = $"{_tutorialPage.PageIndex}/{_tutorialInfo.GetPages()}";
|
_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;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using BlueWater.Items;
|
using BlueWater.Items;
|
||||||
|
using BlueWater.Tycoons;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
using Spine.Unity;
|
using Spine.Unity;
|
||||||
@ -7,7 +8,7 @@ using UnityEngine.InputSystem;
|
|||||||
|
|
||||||
namespace BlueWater.Uis
|
namespace BlueWater.Uis
|
||||||
{
|
{
|
||||||
public class UpgradePopupUi : PopupUi
|
public class UpgradePopupUi : PausePopupUi
|
||||||
{
|
{
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private GameObject _panel;
|
private GameObject _panel;
|
||||||
@ -49,20 +50,14 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
public override void Open()
|
public override void Open()
|
||||||
{
|
{
|
||||||
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
OpenSwitch(InputActionMaps.TycoonUi);
|
||||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
|
||||||
PopupUiController.RegisterPopup(this);
|
|
||||||
_panel.SetActive(true);
|
_panel.SetActive(true);
|
||||||
IsOpened = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Close()
|
public override void Close()
|
||||||
{
|
{
|
||||||
_panel.SetActive(false);
|
_panel.SetActive(false);
|
||||||
PopupUiController.UnregisterPopup(this);
|
CloseSwitch(InputActionMaps.Tycoon);
|
||||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
|
||||||
IsOpened = false;
|
|
||||||
VisualFeedbackManager.Instance.ResetTimeScale();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void DisableInput()
|
public override void DisableInput()
|
||||||
@ -151,7 +146,45 @@ namespace BlueWater.Uis
|
|||||||
_paperAnimation.AnimationState.SetAnimation(0, "Back", false).Complete += (trackEntry) =>
|
_paperAnimation.AnimationState.SetAnimation(0, "Back", false).Complete += (trackEntry) =>
|
||||||
{
|
{
|
||||||
Close();
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -5,7 +5,7 @@ using UnityEngine.InputSystem.UI;
|
|||||||
|
|
||||||
namespace BlueWater
|
namespace BlueWater
|
||||||
{
|
{
|
||||||
public class UiEventsController: MonoBehaviour
|
public class UiEventsController : MonoBehaviour
|
||||||
{
|
{
|
||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
public GameObject SelectObject { get; private set; }
|
public GameObject SelectObject { get; private set; }
|
||||||
|
Before Width: | Height: | Size: 355 KiB |
Before Width: | Height: | Size: 40 KiB |
8
Assets/03.Images/Maps/test.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7cfde1ce315dbc240b466188eca00877
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Before Width: | Height: | Size: 18 KiB |
BIN
Assets/03.Images/Maps/test/Barrel01.png
Normal file
After Width: | Height: | Size: 356 KiB |
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: fcbbccc0af3ecc64ea65be04537ee8d7
|
guid: ea1eb29c2fa2dfb468521cc72c556c6a
|
||||||
TextureImporter:
|
TextureImporter:
|
||||||
internalIDToNameTable: []
|
internalIDToNameTable: []
|
||||||
externalObjects: {}
|
externalObjects: {}
|
BIN
Assets/03.Images/Maps/test/Lantern.png
Normal file
After Width: | Height: | Size: 166 KiB |
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: e52358c77c5bc9f45a388ab468618ba1
|
guid: 494e9886cf305154c97d449a8ad2361e
|
||||||
TextureImporter:
|
TextureImporter:
|
||||||
internalIDToNameTable: []
|
internalIDToNameTable: []
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
@ -48,7 +48,7 @@ TextureImporter:
|
|||||||
spriteMeshType: 1
|
spriteMeshType: 1
|
||||||
alignment: 0
|
alignment: 0
|
||||||
spritePivot: {x: 0.5, y: 0.5}
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
spritePixelsToUnits: 256
|
spritePixelsToUnits: 512
|
||||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
spriteGenerateFallbackPhysicsShape: 1
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
alphaUsage: 1
|
alphaUsage: 1
|
BIN
Assets/03.Images/Maps/test/WallBar2.png
Normal file
After Width: | Height: | Size: 201 KiB |
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 7355634207a3f454e9f7b49224d4327a
|
guid: 08391b26217ebb344a7bf2d72847e9ee
|
||||||
TextureImporter:
|
TextureImporter:
|
||||||
internalIDToNameTable: []
|
internalIDToNameTable: []
|
||||||
externalObjects: {}
|
externalObjects: {}
|
BIN
Assets/03.Images/Maps/test/Walldoor.png
Normal file
After Width: | Height: | Size: 145 KiB |
143
Assets/03.Images/Maps/test/Walldoor.png.meta
Normal 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:
|
BIN
Assets/03.Images/Maps/test/Web01.png
Normal file
After Width: | Height: | Size: 52 KiB |
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: f62b43001c46a87439e93f884ab5e191
|
guid: 9e6d665713d2c874abeba5ac3c5da830
|
||||||
TextureImporter:
|
TextureImporter:
|
||||||
internalIDToNameTable: []
|
internalIDToNameTable: []
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
@ -48,7 +48,7 @@ TextureImporter:
|
|||||||
spriteMeshType: 1
|
spriteMeshType: 1
|
||||||
alignment: 0
|
alignment: 0
|
||||||
spritePivot: {x: 0.5, y: 0.5}
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
spritePixelsToUnits: 256
|
spritePixelsToUnits: 512
|
||||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
spriteGenerateFallbackPhysicsShape: 1
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
alphaUsage: 1
|
alphaUsage: 1
|
BIN
Assets/03.Images/Maps/test/Web02.png
Normal file
After Width: | Height: | Size: 65 KiB |
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: caf21c5f0e2ad5644ae37eff779381e4
|
guid: 23b5a795c216c9745bce7fea1aa0c59a
|
||||||
TextureImporter:
|
TextureImporter:
|
||||||
internalIDToNameTable: []
|
internalIDToNameTable: []
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
@ -48,7 +48,7 @@ TextureImporter:
|
|||||||
spriteMeshType: 1
|
spriteMeshType: 1
|
||||||
alignment: 0
|
alignment: 0
|
||||||
spritePivot: {x: 0.5, y: 0.5}
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
spritePixelsToUnits: 256
|
spritePixelsToUnits: 512
|
||||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
spriteGenerateFallbackPhysicsShape: 1
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
alphaUsage: 1
|
alphaUsage: 1
|
BIN
Assets/03.Images/Maps/test/Web03.png
Normal file
After Width: | Height: | Size: 30 KiB |
143
Assets/03.Images/Maps/test/Web03.png.meta
Normal 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:
|
BIN
Assets/03.Images/Maps/test/wall1.png
Normal file
After Width: | Height: | Size: 78 KiB |
143
Assets/03.Images/Maps/test/wall1.png.meta
Normal 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:
|
BIN
Assets/03.Images/Maps/test/wall3.png
Normal file
After Width: | Height: | Size: 80 KiB |
143
Assets/03.Images/Maps/test/wall3.png.meta
Normal 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:
|
BIN
Assets/03.Images/Maps/test/wall4.png
Normal file
After Width: | Height: | Size: 81 KiB |
143
Assets/03.Images/Maps/test/wall4.png.meta
Normal 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:
|
BIN
Assets/03.Images/Maps/test/wall5 1.png
Normal file
After Width: | Height: | Size: 27 KiB |
143
Assets/03.Images/Maps/test/wall5 1.png.meta
Normal 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:
|
Before Width: | Height: | Size: 18 KiB |
@ -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:
|
|
Before Width: | Height: | Size: 13 KiB |
@ -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:
|
|
Before Width: | Height: | Size: 16 KiB |
@ -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:
|
|