Merge branch 'develop' of http://gitea.capers.co.kr:3000/capers/CapersRepo into develop
@ -18,19 +18,19 @@ MonoBehaviour:
|
|||||||
m_Value: 1
|
m_Value: 1
|
||||||
threshold:
|
threshold:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: 0.1
|
m_Value: 1.3
|
||||||
intensity:
|
intensity:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: 0.25
|
m_Value: 50
|
||||||
scatter:
|
scatter:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: 0.35
|
m_Value: 0.3
|
||||||
clamp:
|
clamp:
|
||||||
m_OverrideState: 0
|
m_OverrideState: 0
|
||||||
m_Value: 65472
|
m_Value: 65472
|
||||||
tint:
|
tint:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 0
|
||||||
m_Value: {r: 0.9339623, g: 0.7637582, b: 0.7533375, a: 1}
|
m_Value: {r: 1, g: 1, b: 1, a: 1}
|
||||||
highQualityFiltering:
|
highQualityFiltering:
|
||||||
m_OverrideState: 0
|
m_OverrideState: 0
|
||||||
m_Value: 0
|
m_Value: 0
|
||||||
@ -112,28 +112,28 @@ MonoBehaviour:
|
|||||||
active: 0
|
active: 0
|
||||||
mode:
|
mode:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: 0
|
m_Value: 1
|
||||||
gaussianStart:
|
gaussianStart:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: 200
|
m_Value: 0
|
||||||
gaussianEnd:
|
gaussianEnd:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: 3000
|
m_Value: 0
|
||||||
gaussianMaxRadius:
|
gaussianMaxRadius:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: 1.5
|
m_Value: 1.5
|
||||||
highQualitySampling:
|
highQualitySampling:
|
||||||
m_OverrideState: 0
|
m_OverrideState: 1
|
||||||
m_Value: 0
|
m_Value: 0
|
||||||
focusDistance:
|
focusDistance:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: 152.5
|
m_Value: 10
|
||||||
aperture:
|
aperture:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: 5.4
|
m_Value: 5.6
|
||||||
focalLength:
|
focalLength:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: 190
|
m_Value: 50
|
||||||
bladeCount:
|
bladeCount:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: 5
|
m_Value: 5
|
||||||
@ -158,16 +158,16 @@ MonoBehaviour:
|
|||||||
active: 1
|
active: 1
|
||||||
color:
|
color:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: {r: 0.0754717, g: 0.0754717, b: 0.0754717, a: 1}
|
m_Value: {r: 1, g: 1, b: 1, a: 1}
|
||||||
center:
|
center:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: {x: 0.5, y: 0.5}
|
m_Value: {x: 0.5, y: 0.5}
|
||||||
intensity:
|
intensity:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: 0.35
|
m_Value: 0.15
|
||||||
smoothness:
|
smoothness:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: 0.25
|
m_Value: 1
|
||||||
rounded:
|
rounded:
|
||||||
m_OverrideState: 1
|
m_OverrideState: 1
|
||||||
m_Value: 1
|
m_Value: 0
|
||||||
|
173
Assets/01.Scenes/02.Combat/TycoonTitleVolume.asset
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &-3848577592826383421
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 3
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 0b2db86121404754db890f4c8dfe81b2, type: 3}
|
||||||
|
m_Name: Bloom
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
active: 1
|
||||||
|
skipIterations:
|
||||||
|
m_OverrideState: 0
|
||||||
|
m_Value: 1
|
||||||
|
threshold:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: 0.2
|
||||||
|
intensity:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: 0.3
|
||||||
|
scatter:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: 0.27
|
||||||
|
clamp:
|
||||||
|
m_OverrideState: 0
|
||||||
|
m_Value: 65472
|
||||||
|
tint:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: {r: 1, g: 0.8077434, b: 0.7971698, a: 1}
|
||||||
|
highQualityFiltering:
|
||||||
|
m_OverrideState: 0
|
||||||
|
m_Value: 0
|
||||||
|
downscale:
|
||||||
|
m_OverrideState: 0
|
||||||
|
m_Value: 0
|
||||||
|
maxIterations:
|
||||||
|
m_OverrideState: 0
|
||||||
|
m_Value: 6
|
||||||
|
dirtTexture:
|
||||||
|
m_OverrideState: 0
|
||||||
|
m_Value: {fileID: 0}
|
||||||
|
dimension: 1
|
||||||
|
dirtIntensity:
|
||||||
|
m_OverrideState: 0
|
||||||
|
m_Value: 0
|
||||||
|
--- !u!114 &-3394915221019087120
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 3
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 0}
|
||||||
|
m_Name: Grayscale
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp:BlueWater:Grayscale
|
||||||
|
active: 1
|
||||||
|
Intensity:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: 1
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3}
|
||||||
|
m_Name: TycoonTitleVolume
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
components:
|
||||||
|
- {fileID: 8563356217564074714}
|
||||||
|
- {fileID: -3848577592826383421}
|
||||||
|
- {fileID: 4404516855583877853}
|
||||||
|
--- !u!114 &1921075280319716275
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 3
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 5ba7ae2db732fa445ad4bbefe166c59f, type: 3}
|
||||||
|
m_Name: Grayscale
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
active: 1
|
||||||
|
<displayName>k__BackingField:
|
||||||
|
Intensity:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: 0
|
||||||
|
IsActive: 0
|
||||||
|
--- !u!114 &4404516855583877853
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 3
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: c01700fd266d6914ababb731e09af2eb, type: 3}
|
||||||
|
m_Name: DepthOfField
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
active: 0
|
||||||
|
mode:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: 1
|
||||||
|
gaussianStart:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: 0
|
||||||
|
gaussianEnd:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: 0
|
||||||
|
gaussianMaxRadius:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: 1.5
|
||||||
|
highQualitySampling:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: 0
|
||||||
|
focusDistance:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: 10
|
||||||
|
aperture:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: 5.6
|
||||||
|
focalLength:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: 50
|
||||||
|
bladeCount:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: 5
|
||||||
|
bladeCurvature:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: 1
|
||||||
|
bladeRotation:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: 0
|
||||||
|
--- !u!114 &8563356217564074714
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 3
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 899c54efeace73346a0a16faa3afe726, type: 3}
|
||||||
|
m_Name: Vignette
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
active: 1
|
||||||
|
color:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: {r: 0.0754717, g: 0.0754717, b: 0.0754717, a: 1}
|
||||||
|
center:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: {x: 0.5, y: 0.5}
|
||||||
|
intensity:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: 0.35
|
||||||
|
smoothness:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: 0.25
|
||||||
|
rounded:
|
||||||
|
m_OverrideState: 1
|
||||||
|
m_Value: 1
|
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 90f596bc1a735a544985584af0b4180a
|
guid: 5bac0b8c55ddef84daff781165adc64b
|
||||||
NativeFormatImporter:
|
NativeFormatImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
mainObjectFileID: 11400000
|
mainObjectFileID: 11400000
|
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: b833bcae75f3f004684676cf4de35160
|
guid: 61024edd9ea49c94fad0f340e178e18c
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -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;
|
||||||
|
@ -10,5 +10,17 @@ namespace BlueWater
|
|||||||
public const string BgmVolume = "BgmVolume";
|
public const string BgmVolume = "BgmVolume";
|
||||||
public const string SfxVolume = "SfxVolume";
|
public const string SfxVolume = "SfxVolume";
|
||||||
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}
|
||||||
|
8
Assets/02.Scripts/ScriptableObject/Tutorial.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a02a01ad745018448bb0654c08a1c907
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
169
Assets/02.Scripts/ScriptableObject/Tutorial/TutorialSo.asset
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: e9abf1f43f0b6454584607bd00fabd73, type: 3}
|
||||||
|
m_Name: TutorialSo
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
_serializedDataList:
|
||||||
|
- <Key>k__BackingField: TutorialA
|
||||||
|
<Value>k__BackingField:
|
||||||
|
<TutorialName>k__BackingField: TutorialA
|
||||||
|
<TitleTextIdx>k__BackingField: TutorialTitleA
|
||||||
|
<TutorialPages>k__BackingField:
|
||||||
|
- <TutorialPageType>k__BackingField: 0
|
||||||
|
<PageIndex>k__BackingField: 1
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialA01
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: fd570d5f2e74f9649b223b27e4bfd279, type: 3}
|
||||||
|
- <TutorialPageType>k__BackingField: 1
|
||||||
|
<PageIndex>k__BackingField: 2
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialA02
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 0093f30129ff92c4db9ca55525f3f035, type: 3}
|
||||||
|
- <TutorialPageType>k__BackingField: 2
|
||||||
|
<PageIndex>k__BackingField: 3
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialA03
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 29fd4626221cc4e449047cb509a4b670, type: 3}
|
||||||
|
- <Key>k__BackingField: TutorialB
|
||||||
|
<Value>k__BackingField:
|
||||||
|
<TutorialName>k__BackingField: TutorialB
|
||||||
|
<TitleTextIdx>k__BackingField: TutorialTitleB
|
||||||
|
<TutorialPages>k__BackingField:
|
||||||
|
- <TutorialPageType>k__BackingField: 0
|
||||||
|
<PageIndex>k__BackingField: 1
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialB01
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 3d7a8b0b4b41eac4aa4098cef0206994, type: 3}
|
||||||
|
- <TutorialPageType>k__BackingField: 1
|
||||||
|
<PageIndex>k__BackingField: 2
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialB02
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 1b6fbbe5c5df6df45b4feabedfc5d24d, type: 3}
|
||||||
|
- <TutorialPageType>k__BackingField: 1
|
||||||
|
<PageIndex>k__BackingField: 3
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialB03
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 4b752d2d5763abc4cb65b8355450cc70, type: 3}
|
||||||
|
- <TutorialPageType>k__BackingField: 2
|
||||||
|
<PageIndex>k__BackingField: 4
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialB04
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: f13384a7d3bd41a48a5ef3bd2671681b, type: 3}
|
||||||
|
- <Key>k__BackingField: TutorialC
|
||||||
|
<Value>k__BackingField:
|
||||||
|
<TutorialName>k__BackingField: TutorialC
|
||||||
|
<TitleTextIdx>k__BackingField: TutorialTitleC
|
||||||
|
<TutorialPages>k__BackingField:
|
||||||
|
- <TutorialPageType>k__BackingField: 0
|
||||||
|
<PageIndex>k__BackingField: 1
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialC01
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 4c88f781368f1354bbc3dc6d16a5e092, type: 3}
|
||||||
|
- <TutorialPageType>k__BackingField: 2
|
||||||
|
<PageIndex>k__BackingField: 2
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialC02
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: c2b2347daad35824fb06639765562756, type: 3}
|
||||||
|
- <Key>k__BackingField: TutorialD
|
||||||
|
<Value>k__BackingField:
|
||||||
|
<TutorialName>k__BackingField: TutorialD
|
||||||
|
<TitleTextIdx>k__BackingField: TutorialTitleD
|
||||||
|
<TutorialPages>k__BackingField:
|
||||||
|
- <TutorialPageType>k__BackingField: 0
|
||||||
|
<PageIndex>k__BackingField: 1
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialD01
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 498ee1d309cc40147be2fbc30f4e1f98, type: 3}
|
||||||
|
- <TutorialPageType>k__BackingField: 2
|
||||||
|
<PageIndex>k__BackingField: 2
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialD02
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 0e5d85d1988fddf4489c332411fdcd01, type: 3}
|
||||||
|
- <Key>k__BackingField: TutorialE
|
||||||
|
<Value>k__BackingField:
|
||||||
|
<TutorialName>k__BackingField: TutorialE
|
||||||
|
<TitleTextIdx>k__BackingField: TutorialTitleE
|
||||||
|
<TutorialPages>k__BackingField:
|
||||||
|
- <TutorialPageType>k__BackingField: 0
|
||||||
|
<PageIndex>k__BackingField: 1
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialE01
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 50aa58873f7c70a4e9e852c4f85c961d, type: 3}
|
||||||
|
- <TutorialPageType>k__BackingField: 1
|
||||||
|
<PageIndex>k__BackingField: 2
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialE02
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 1df0d2dcaa205ac4896a9445e53ca20d, type: 3}
|
||||||
|
- <TutorialPageType>k__BackingField: 1
|
||||||
|
<PageIndex>k__BackingField: 3
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialE03
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: e8737123e0a24884fbdee2f95b076c02, type: 3}
|
||||||
|
- <TutorialPageType>k__BackingField: 2
|
||||||
|
<PageIndex>k__BackingField: 4
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialE04
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: b944272f378e723459f5b917aecea0df, type: 3}
|
||||||
|
- <Key>k__BackingField: TutorialF
|
||||||
|
<Value>k__BackingField:
|
||||||
|
<TutorialName>k__BackingField: TutorialF
|
||||||
|
<TitleTextIdx>k__BackingField: TutorialTitleF
|
||||||
|
<TutorialPages>k__BackingField:
|
||||||
|
- <TutorialPageType>k__BackingField: 0
|
||||||
|
<PageIndex>k__BackingField: 1
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialF01
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 34afe998d81409849ac9027c92aa8298, type: 3}
|
||||||
|
- <TutorialPageType>k__BackingField: 0
|
||||||
|
<PageIndex>k__BackingField: 2
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialF02
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 314511725dea78e489cd83c8e6e7c7f4, type: 3}
|
||||||
|
- <Key>k__BackingField: TutorialG
|
||||||
|
<Value>k__BackingField:
|
||||||
|
<TutorialName>k__BackingField: TutorialG
|
||||||
|
<TitleTextIdx>k__BackingField: TutorialTitleG
|
||||||
|
<TutorialPages>k__BackingField:
|
||||||
|
- <TutorialPageType>k__BackingField: 0
|
||||||
|
<PageIndex>k__BackingField: 1
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialG01
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: a89ec2f974875f84ba47bf0ee5f6bf43, type: 3}
|
||||||
|
- <TutorialPageType>k__BackingField: 2
|
||||||
|
<PageIndex>k__BackingField: 2
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialG02
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 28a69f413a21ad548aa6e4add76be684, type: 3}
|
||||||
|
- <Key>k__BackingField: TutorialH
|
||||||
|
<Value>k__BackingField:
|
||||||
|
<TutorialName>k__BackingField: TutorialH
|
||||||
|
<TitleTextIdx>k__BackingField: TutorialTitleH
|
||||||
|
<TutorialPages>k__BackingField:
|
||||||
|
- <TutorialPageType>k__BackingField: 3
|
||||||
|
<PageIndex>k__BackingField: 1
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialH01
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: db00f49f58fded241a25b68b4ac8ff9a, type: 3}
|
||||||
|
- <Key>k__BackingField: TutorialI
|
||||||
|
<Value>k__BackingField:
|
||||||
|
<TutorialName>k__BackingField: TutorialI
|
||||||
|
<TitleTextIdx>k__BackingField: TutorialTitleI
|
||||||
|
<TutorialPages>k__BackingField:
|
||||||
|
- <TutorialPageType>k__BackingField: 3
|
||||||
|
<PageIndex>k__BackingField: 1
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialI01
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 6758a337148c7474588128873b3695a2, type: 3}
|
||||||
|
- <Key>k__BackingField: TutorialJ
|
||||||
|
<Value>k__BackingField:
|
||||||
|
<TutorialName>k__BackingField: TutorialJ
|
||||||
|
<TitleTextIdx>k__BackingField: TutorialTitleJ
|
||||||
|
<TutorialPages>k__BackingField:
|
||||||
|
- <TutorialPageType>k__BackingField: 0
|
||||||
|
<PageIndex>k__BackingField: 1
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialJ01
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: df7a898725d87014cba236537831e17a, type: 3}
|
||||||
|
- <TutorialPageType>k__BackingField: 1
|
||||||
|
<PageIndex>k__BackingField: 2
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialJ02
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: f3aded03bbc1e8345b08380f7647ffd4, type: 3}
|
||||||
|
- <TutorialPageType>k__BackingField: 1
|
||||||
|
<PageIndex>k__BackingField: 3
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialJ03
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 66cfebf11cb5b7d46bbec75addd1764e, type: 3}
|
||||||
|
- <TutorialPageType>k__BackingField: 2
|
||||||
|
<PageIndex>k__BackingField: 4
|
||||||
|
<DescriptionIdx>k__BackingField: TutorialJ04
|
||||||
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 5d6455c1c94a7d44395818bc14d8a867, type: 3}
|
||||||
|
<FirstPopup>k__BackingField: {fileID: 1581927570, guid: d881395249d9f7d43940877db16f096d, type: 3}
|
||||||
|
<MiddlePopup>k__BackingField: {fileID: 1740845040, guid: 4eb21a9cf7ed8e44388a74756a151b20, type: 3}
|
||||||
|
<LastPopup>k__BackingField: {fileID: -1576049482, guid: d21603cd31610504c847fd606881daba, type: 3}
|
||||||
|
<SoloPopup>k__BackingField: {fileID: -395976741, guid: 18df90d5364975848a51832a491b7cc0, type: 3}
|
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 0e99028d5f739f146865cdd0fc6b4bed
|
guid: 409afbfab40779a4abf64756763265d0
|
||||||
NativeFormatImporter:
|
NativeFormatImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
mainObjectFileID: 11400000
|
mainObjectFileID: 11400000
|
@ -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]
|
||||||
|
@ -371,7 +371,7 @@ namespace BlueWater
|
|||||||
|
|
||||||
_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)
|
||||||
|
@ -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);
|
||||||
|
@ -6,11 +6,8 @@ using UnityEngine.UI;
|
|||||||
|
|
||||||
namespace BlueWater.Titles
|
namespace BlueWater.Titles
|
||||||
{
|
{
|
||||||
public class TitleMenuButton : MonoBehaviour, ISelectHandler, IDeselectHandler, IPointerEnterHandler, IPointerExitHandler
|
public class SelectedObject : MonoBehaviour, ISelectHandler, IDeselectHandler, IPointerEnterHandler, IPointerExitHandler
|
||||||
{
|
{
|
||||||
[SerializeField, Required]
|
|
||||||
private Button _targetButton;
|
|
||||||
|
|
||||||
[SerializeField, Required]
|
[SerializeField, Required]
|
||||||
private Image _selectedImage;
|
private Image _selectedImage;
|
||||||
|
|
@ -30,6 +30,9 @@ namespace BlueWater.Titles
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Button _startGameButton;
|
private Button _startGameButton;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private Button _tutorialButton;
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Button _resumeGameButton;
|
private Button _resumeGameButton;
|
||||||
|
|
||||||
@ -54,8 +57,11 @@ namespace BlueWater.Titles
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Image _ink;
|
private Image _ink;
|
||||||
|
|
||||||
[FormerlySerializedAs("_uiNavigationController")] [SerializeField]
|
[SerializeField]
|
||||||
private UiEventsController uiEventsController;
|
private UiEventsController _uiEventsController;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private TycoonTutorial _tycoonTutorial;
|
||||||
|
|
||||||
public Material inkMaterialInstance { get; private set; }
|
public Material inkMaterialInstance { get; private set; }
|
||||||
|
|
||||||
@ -76,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));
|
||||||
@ -94,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);
|
||||||
@ -102,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));
|
||||||
@ -175,11 +186,11 @@ namespace BlueWater.Titles
|
|||||||
{
|
{
|
||||||
if (_isTitleScene)
|
if (_isTitleScene)
|
||||||
{
|
{
|
||||||
uiEventsController.EnableAutoNavigate(_startGameButton.gameObject);
|
_uiEventsController.EnableAutoNavigate(_startGameButton.gameObject);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
uiEventsController.EnableAutoNavigate(_resumeGameButton.gameObject);
|
_uiEventsController.EnableAutoNavigate(_resumeGameButton.gameObject);
|
||||||
_closeAction.performed += OnClose;
|
_closeAction.performed += OnClose;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -198,7 +209,7 @@ namespace BlueWater.Titles
|
|||||||
}
|
}
|
||||||
|
|
||||||
_interactionEAction.performed -= OnInteractionE;
|
_interactionEAction.performed -= OnInteractionE;
|
||||||
uiEventsController.DisableAutoNavigate();
|
_uiEventsController.DisableAutoNavigate();
|
||||||
}
|
}
|
||||||
|
|
||||||
private string GetVersion()
|
private string GetVersion()
|
||||||
@ -258,6 +269,40 @@ namespace BlueWater.Titles
|
|||||||
Utils.StartUniqueCoroutine(this, ref _inkCoroutine, MoveInkBackground(0.4f));
|
Utils.StartUniqueCoroutine(this, ref _inkCoroutine, MoveInkBackground(0.4f));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ShowTutorialUi()
|
||||||
|
{
|
||||||
|
_titleMenuUiPanel.SetActive(false);
|
||||||
|
_tycoonTutorial.ShowUi(true);
|
||||||
|
|
||||||
|
Utils.StartUniqueCoroutine(this, ref _inkCoroutine, MoveInkBackground(1f));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void HideTutorialUi(bool isMenu)
|
||||||
|
{
|
||||||
|
if (!isMenu)
|
||||||
|
{
|
||||||
|
_panel.SetActive(false);
|
||||||
|
_playerInputKeyManager.SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
||||||
|
VisualFeedbackManager.Instance.ResetTimeScale();
|
||||||
|
}
|
||||||
|
|
||||||
|
_titleMenuUiPanel.SetActive(true);
|
||||||
|
EventSystem.current.SetSelectedGameObject(_tutorialButton.gameObject);
|
||||||
|
|
||||||
|
Utils.StartUniqueCoroutine(this, ref _inkCoroutine, MoveInkBackground(0.4f));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ShowTutorialUiByName(string tutorialName)
|
||||||
|
{
|
||||||
|
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
||||||
|
_playerInputKeyManager.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
||||||
|
_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)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
31
Assets/02.Scripts/Ui/TutorialPopupUi.cs
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace BlueWater.Uis
|
||||||
|
{
|
||||||
|
public class TutorialPopupUi : PopupUi
|
||||||
|
{
|
||||||
|
public override void Open()
|
||||||
|
{
|
||||||
|
PopupUiController.RegisterPopup(this);
|
||||||
|
gameObject.SetActive(true);
|
||||||
|
IsOpened = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Close()
|
||||||
|
{
|
||||||
|
gameObject.SetActive(false);
|
||||||
|
PopupUiController.UnregisterPopup(this);
|
||||||
|
IsOpened = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void EnableInput()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void DisableInput()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
2
Assets/02.Scripts/Ui/TutorialPopupUi.cs.meta
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: cf0c3631a032e164b9f78c91984fd244
|
19
Assets/02.Scripts/Ui/Tycoon/RankRow.cs
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class RankRow : MonoBehaviour
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Start is called once before the first execution of Update after the MonoBehaviour is created
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update is called once per frame
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
2
Assets/02.Scripts/Ui/Tycoon/RankRow.cs.meta
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4b9215935020b4a4fba279c3a6effef9
|
21
Assets/02.Scripts/Ui/Tycoon/TutorialInfo.cs
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace BlueWater
|
||||||
|
{
|
||||||
|
[Serializable]
|
||||||
|
public class TutorialInfo
|
||||||
|
{
|
||||||
|
[field: SerializeField]
|
||||||
|
public string TutorialName { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField]
|
||||||
|
public string TitleTextIdx { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField]
|
||||||
|
public List<TutorialPage> TutorialPages { get; private set; } = new();
|
||||||
|
|
||||||
|
public int GetPages() => TutorialPages.Count;
|
||||||
|
}
|
||||||
|
}
|
2
Assets/02.Scripts/Ui/Tycoon/TutorialInfo.cs.meta
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1b7dc8251e7851a41b3f790c34f3d759
|
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
|
29
Assets/02.Scripts/Ui/Tycoon/TutorialPage.cs
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
using System;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace BlueWater
|
||||||
|
{
|
||||||
|
public enum TutorialPageType
|
||||||
|
{
|
||||||
|
First = 0,
|
||||||
|
Middle = 1,
|
||||||
|
Last = 2,
|
||||||
|
Solo = 3
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public class TutorialPage
|
||||||
|
{
|
||||||
|
[field: SerializeField]
|
||||||
|
public TutorialPageType TutorialPageType { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField]
|
||||||
|
public int PageIndex { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField]
|
||||||
|
public string DescriptionIdx { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField]
|
||||||
|
public Sprite Sprite { get; private set; }
|
||||||
|
}
|
||||||
|
}
|
2
Assets/02.Scripts/Ui/Tycoon/TutorialPage.cs.meta
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e561289aa6a96d3459c05f6f72338ffd
|
139
Assets/02.Scripts/Ui/Tycoon/TutorialPageToggle.cs
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using BlueWater.Utility;
|
||||||
|
using DG.Tweening;
|
||||||
|
using Sirenix.OdinInspector;
|
||||||
|
using TMPro;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.Localization;
|
||||||
|
using UnityEngine.Localization.Settings;
|
||||||
|
using UnityEngine.ResourceManagement.AsyncOperations;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
namespace BlueWater
|
||||||
|
{
|
||||||
|
public class TutorialPageToggle : MonoBehaviour
|
||||||
|
{
|
||||||
|
[field: SerializeField]
|
||||||
|
public RectTransform Rect { get; private set; }
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private Toggle _toggle;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private Image _toggleImage;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private TMP_Text _buttonText;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private Sprite _selectToggleSprite;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private Sprite _deselectToggleSprite;
|
||||||
|
|
||||||
|
[Title("연출")]
|
||||||
|
[SerializeField]
|
||||||
|
private Vector2 _buttonImageScale = new(1f, 1.3f);
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private Vector2 _buttonTextPositionY = new(0f, 10f);
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private float _duration = 0.2f;
|
||||||
|
|
||||||
|
private TutorialInfo _tutorialInfo;
|
||||||
|
private Coroutine _changedLocaleInstance;
|
||||||
|
private Sequence _selectSequence;
|
||||||
|
private Sequence _deselectSequence;
|
||||||
|
|
||||||
|
public Action<bool> OnToggleEvent;
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
LocalizationSettings.SelectedLocaleChanged += OnChangedLocale;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDestroy()
|
||||||
|
{
|
||||||
|
LocalizationSettings.SelectedLocaleChanged -= OnChangedLocale;
|
||||||
|
|
||||||
|
_selectSequence.Kill();
|
||||||
|
_deselectSequence.Kill();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnChangedLocale(Locale locale)
|
||||||
|
{
|
||||||
|
if (!gameObject.activeInHierarchy) return;
|
||||||
|
|
||||||
|
Utils.StartUniqueCoroutine(this, ref _changedLocaleInstance, ChangeLocaleCoroutine(locale));
|
||||||
|
StartCoroutine(ChangeLocaleCoroutine(locale));
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator ChangeLocaleCoroutine(Locale locale)
|
||||||
|
{
|
||||||
|
var loadingOperation = Utils.GetTableAsync();
|
||||||
|
yield return loadingOperation;
|
||||||
|
|
||||||
|
if (loadingOperation.Status == AsyncOperationStatus.Succeeded)
|
||||||
|
{
|
||||||
|
_buttonText.text = Utils.GetLocalizedString(_tutorialInfo.TitleTextIdx);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Initialize(TutorialInfo tutorialInfo)
|
||||||
|
{
|
||||||
|
_tutorialInfo = tutorialInfo;
|
||||||
|
|
||||||
|
gameObject.name = $"{_tutorialInfo.TutorialName}Toggle";
|
||||||
|
_buttonText.text = Utils.GetLocalizedString(_tutorialInfo.TitleTextIdx);
|
||||||
|
|
||||||
|
_selectSequence = DOTween.Sequence()
|
||||||
|
.Append(_toggleImage.transform.DOScaleY(_buttonImageScale.y, _duration).From(_buttonImageScale.x))
|
||||||
|
.Join(_buttonText.transform.DOLocalMoveY(_buttonTextPositionY.y, _duration).From(_buttonTextPositionY.x))
|
||||||
|
.SetEase(Ease.Linear)
|
||||||
|
.SetUpdate(true)
|
||||||
|
.SetAutoKill(false)
|
||||||
|
.Pause();
|
||||||
|
|
||||||
|
_deselectSequence = DOTween.Sequence()
|
||||||
|
.Append(_toggleImage.transform.DOScaleY(_buttonImageScale.x, _duration).From(_buttonImageScale.y))
|
||||||
|
.Join(_buttonText.transform.DOLocalMoveY(_buttonTextPositionY.x, _duration).From(_buttonTextPositionY.x))
|
||||||
|
.SetEase(Ease.Linear)
|
||||||
|
.SetUpdate(true)
|
||||||
|
.SetAutoKill(false)
|
||||||
|
.Pause();
|
||||||
|
|
||||||
|
_toggle.interactable = true;
|
||||||
|
_toggle.isOn = false;
|
||||||
|
_toggleImage.sprite = _deselectToggleSprite;
|
||||||
|
Vector3 newPosition = _buttonText.transform.localPosition;
|
||||||
|
newPosition.y = _buttonTextPositionY.x;
|
||||||
|
_buttonText.transform.localPosition = newPosition;
|
||||||
|
Vector3 newScale = _toggleImage.transform.localScale;
|
||||||
|
newScale.y = _buttonImageScale.x;
|
||||||
|
_toggleImage.transform.localScale = newScale;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnToggle(bool isOn)
|
||||||
|
{
|
||||||
|
_toggle.isOn = isOn;
|
||||||
|
_toggle.interactable = !_toggle.isOn;
|
||||||
|
|
||||||
|
if (isOn)
|
||||||
|
{
|
||||||
|
_toggleImage.sprite = _selectToggleSprite;
|
||||||
|
_deselectSequence?.Pause();
|
||||||
|
_selectSequence.Restart();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_toggleImage.sprite = _deselectToggleSprite;
|
||||||
|
_selectSequence?.Pause();
|
||||||
|
_deselectSequence.Restart();
|
||||||
|
}
|
||||||
|
|
||||||
|
OnToggleEvent?.Invoke(isOn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
2
Assets/02.Scripts/Ui/Tycoon/TutorialPageToggle.cs.meta
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 696314dff3acfcf42800aeaeb72ce6f5
|
23
Assets/02.Scripts/Ui/Tycoon/TutorialSo.cs
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
using BlueWater.Items;
|
||||||
|
using Sirenix.OdinInspector;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace BlueWater
|
||||||
|
{
|
||||||
|
[CreateAssetMenu(fileName = "TutorialSo", menuName = "ScriptableObjects/Tutorial")]
|
||||||
|
public class TutorialSo : DataSo<TutorialInfo>
|
||||||
|
{
|
||||||
|
[field: Title("팝업 이미지")]
|
||||||
|
[field: SerializeField]
|
||||||
|
public Sprite FirstPopup { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField]
|
||||||
|
public Sprite MiddlePopup { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField]
|
||||||
|
public Sprite LastPopup { get; private set; }
|
||||||
|
|
||||||
|
[field: SerializeField]
|
||||||
|
public Sprite SoloPopup { get; private set; }
|
||||||
|
}
|
||||||
|
}
|
2
Assets/02.Scripts/Ui/Tycoon/TutorialSo.cs.meta
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e9abf1f43f0b6454584607bd00fabd73
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.EventSystems;
|
using UnityEngine.EventSystems;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
@ -20,7 +21,7 @@ using UnityEngine.UI;
|
|||||||
namespace BlueWater.Uis
|
namespace BlueWater.Uis
|
||||||
{
|
{
|
||||||
public class TycoonCardArea : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerClickHandler,
|
public class TycoonCardArea : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerClickHandler,
|
||||||
IPointerMoveHandler
|
IPointerMoveHandler , ISelectHandler , IDeselectHandler
|
||||||
{
|
{
|
||||||
private Coroutine _currentRotationCoroutine;
|
private Coroutine _currentRotationCoroutine;
|
||||||
|
|
||||||
@ -42,6 +43,15 @@ namespace BlueWater.Uis
|
|||||||
private bool _enable = false;
|
private bool _enable = false;
|
||||||
|
|
||||||
private Action<TycoonCard> _onSelectAction;
|
private Action<TycoonCard> _onSelectAction;
|
||||||
|
public void OnSelect(BaseEventData eventData)
|
||||||
|
{
|
||||||
|
OnPointerEnter(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnDeselect(BaseEventData eventData)
|
||||||
|
{
|
||||||
|
OnPointerExit(null);
|
||||||
|
}
|
||||||
|
|
||||||
private void Awake()
|
private void Awake()
|
||||||
{
|
{
|
||||||
@ -71,6 +81,7 @@ namespace BlueWater.Uis
|
|||||||
// 마우스가 이미지 위에 올라갔을 때 호출
|
// 마우스가 이미지 위에 올라갔을 때 호출
|
||||||
public void OnPointerEnter(PointerEventData eventData)
|
public void OnPointerEnter(PointerEventData eventData)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (_endRotationCoroutine != null)
|
if (_endRotationCoroutine != null)
|
||||||
{
|
{
|
||||||
StopCoroutine(_endRotationCoroutine);
|
StopCoroutine(_endRotationCoroutine);
|
||||||
@ -120,6 +131,11 @@ namespace BlueWater.Uis
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SelectCard()
|
||||||
|
{
|
||||||
|
OnPointerClick(null);
|
||||||
|
}
|
||||||
|
|
||||||
// 마우스 클릭 시 호출
|
// 마우스 클릭 시 호출
|
||||||
public void OnPointerClick(PointerEventData eventData)
|
public void OnPointerClick(PointerEventData eventData)
|
||||||
{
|
{
|
||||||
|
@ -24,14 +24,21 @@ 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";
|
||||||
|
|
||||||
private List<TycoonCard> _tycoonCards = new(5);
|
private List<TycoonCard> _tycoonCards = new(5);
|
||||||
private int viewCardCount = 0;
|
private int viewCardCount = 0;
|
||||||
|
|
||||||
@ -74,6 +81,7 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
public override void Close()
|
public override void Close()
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.PlaySfx(_cardOpenAllSfxName, ignoreTimeScale: true);
|
||||||
_panel.SetActive(false);
|
_panel.SetActive(false);
|
||||||
PopupUiController.UnregisterPopup(this);
|
PopupUiController.UnregisterPopup(this);
|
||||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
||||||
@ -84,11 +92,13 @@ namespace BlueWater.Uis
|
|||||||
public override void EnableInput()
|
public override void EnableInput()
|
||||||
{
|
{
|
||||||
_interactionEAction.performed += OnInteractionE;
|
_interactionEAction.performed += OnInteractionE;
|
||||||
|
this.GetComponent<UiEventsController>().EnableAutoNavigate();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void DisableInput()
|
public override void DisableInput()
|
||||||
{
|
{
|
||||||
_interactionEAction.performed -= OnInteractionE;
|
_interactionEAction.performed -= OnInteractionE;
|
||||||
|
this.GetComponent<UiEventsController>().DisableAutoNavigate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -146,10 +156,13 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
_tycoonCardController.SelectCard(element);
|
_tycoonCardController.SelectCard(element);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GetComponent<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--;
|
||||||
@ -164,6 +177,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,12 +2,14 @@ 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
|
||||||
@ -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,6 +298,7 @@ namespace BlueWater.Uis
|
|||||||
[Button("결과 연출 테스트")]
|
[Button("결과 연출 테스트")]
|
||||||
public override void Open()
|
public override void Open()
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.StopSfx("TycoonGameOver");
|
||||||
AudioManager.Instance.PlayBgm(_bgmName);
|
AudioManager.Instance.PlayBgm(_bgmName);
|
||||||
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
||||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
||||||
@ -309,8 +353,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 +422,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 +464,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 +485,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 +498,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,9 +1,12 @@
|
|||||||
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;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
|
using UnityEngine.InputSystem;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
using Random = UnityEngine.Random;
|
using Random = UnityEngine.Random;
|
||||||
|
|
||||||
@ -26,10 +29,14 @@ namespace BlueWater.Uis
|
|||||||
private TycoonManager _tycoonManager;
|
private TycoonManager _tycoonManager;
|
||||||
private TycoonCardController _tycoonCardController;
|
private TycoonCardController _tycoonCardController;
|
||||||
|
|
||||||
|
private InputAction _interactionEAction;
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
_panel.SetActive(false);
|
_panel.SetActive(false);
|
||||||
|
|
||||||
|
_interactionEAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.InteractionE);
|
||||||
|
|
||||||
_tycoonManager = TycoonManager.Instance;
|
_tycoonManager = TycoonManager.Instance;
|
||||||
_tycoonCardController = _tycoonManager.TycoonCardController;
|
_tycoonCardController = _tycoonManager.TycoonCardController;
|
||||||
|
|
||||||
@ -39,6 +46,11 @@ namespace BlueWater.Uis
|
|||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
{
|
{
|
||||||
EventManager.OnOpenedNormalRewardBox -= CreateCard;
|
EventManager.OnOpenedNormalRewardBox -= CreateCard;
|
||||||
|
|
||||||
|
if (_interactionEAction != null)
|
||||||
|
{
|
||||||
|
_interactionEAction.performed -= OnInteractionE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Open()
|
public override void Open()
|
||||||
@ -60,6 +72,28 @@ namespace BlueWater.Uis
|
|||||||
VisualFeedbackManager.Instance.ResetTimeScale();
|
VisualFeedbackManager.Instance.ResetTimeScale();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public override void EnableInput()
|
||||||
|
{
|
||||||
|
_interactionEAction.performed += OnInteractionE;
|
||||||
|
this.GetComponent<UiEventsController>().EnableAutoNavigate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void DisableInput()
|
||||||
|
{
|
||||||
|
_interactionEAction.performed -= OnInteractionE;
|
||||||
|
this.GetComponent<UiEventsController>().DisableAutoNavigate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnInteractionE(InputAction.CallbackContext context)
|
||||||
|
{
|
||||||
|
var current = EventSystem.current.currentSelectedGameObject;
|
||||||
|
if (!current) return;
|
||||||
|
|
||||||
|
var currenButton = current.GetComponent<Button>();
|
||||||
|
currenButton.onClick.Invoke();
|
||||||
|
}
|
||||||
|
|
||||||
[Button("카드 생성하기(레벨업)")]
|
[Button("카드 생성하기(레벨업)")]
|
||||||
private void CreateCard()
|
private void CreateCard()
|
||||||
{
|
{
|
||||||
@ -104,6 +138,8 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
StartCoroutine(FadeInPanel());
|
StartCoroutine(FadeInPanel());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.GetComponent<UiEventsController>().SetSelectObject(_tycoonCards[0].CardArea.gameObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
private IEnumerator FadeInPanel()
|
private IEnumerator FadeInPanel()
|
||||||
@ -122,10 +158,13 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
yield return null;
|
yield return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// _tycoonCards[1].CardArea.OnSelect(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SelectedCard(TycoonCard currentTycoonCard)
|
private void SelectedCard(TycoonCard currentTycoonCard)
|
||||||
{
|
{
|
||||||
|
DisableInput();
|
||||||
_tycoonCardController.SelectCard(currentTycoonCard);
|
_tycoonCardController.SelectCard(currentTycoonCard);
|
||||||
currentTycoonCard.CardArea.SuccessClick();
|
currentTycoonCard.CardArea.SuccessClick();
|
||||||
StartCoroutine(SelectedAnimation(currentTycoonCard));
|
StartCoroutine(SelectedAnimation(currentTycoonCard));
|
||||||
@ -171,7 +210,7 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
float time = 0.0f; // 타이머 초기화
|
float time = 0.0f; // 타이머 초기화
|
||||||
|
|
||||||
while (time < 1.0f)
|
while (time < 0.5f)
|
||||||
{
|
{
|
||||||
time += Time.unscaledDeltaTime; // 시간 업데이트
|
time += Time.unscaledDeltaTime; // 시간 업데이트
|
||||||
|
|
||||||
@ -189,12 +228,12 @@ namespace BlueWater.Uis
|
|||||||
time = 0.0f; // 타이머 초기화
|
time = 0.0f; // 타이머 초기화
|
||||||
startScale03 = rect03.localScale; // 시작 위치
|
startScale03 = rect03.localScale; // 시작 위치
|
||||||
|
|
||||||
while (time < 1.0f)
|
while (time < 0.5f)
|
||||||
{
|
{
|
||||||
time += Time.unscaledDeltaTime; // 시간 업데이트
|
time += Time.unscaledDeltaTime; // 시간 업데이트
|
||||||
|
|
||||||
float _Time = time / 0.5f;
|
float _Time = time / 0.25f;
|
||||||
float _FadeTime = time / 1.0f;
|
float _FadeTime = time / 0.5f;
|
||||||
|
|
||||||
float easedTIn = EaseEffect.ExpoIn(_Time);
|
float easedTIn = EaseEffect.ExpoIn(_Time);
|
||||||
rect03.localScale = Vector3.Lerp(startScale03, new Vector3(0.0f, 0.0f, 0.0f), easedTIn);
|
rect03.localScale = Vector3.Lerp(startScale03, new Vector3(0.0f, 0.0f, 0.0f), easedTIn);
|
||||||
@ -208,5 +247,6 @@ namespace BlueWater.Uis
|
|||||||
_tycoonCardController.DestroyCardList(_tycoonCards);
|
_tycoonCardController.DestroyCardList(_tycoonCards);
|
||||||
Close();
|
Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@ using UnityEngine;
|
|||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using TMPro;
|
using TMPro;
|
||||||
using UnityEngine.EventSystems;
|
using UnityEngine.EventSystems;
|
||||||
|
using UnityEngine.InputSystem;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
|
||||||
namespace BlueWater.Uis
|
namespace BlueWater.Uis
|
||||||
@ -64,6 +65,8 @@ namespace BlueWater.Uis
|
|||||||
private Sequence _failedPurchaseSequence;
|
private Sequence _failedPurchaseSequence;
|
||||||
private Coroutine _changeGoldInstance;
|
private Coroutine _changeGoldInstance;
|
||||||
|
|
||||||
|
private InputAction _interactionEAction;
|
||||||
|
|
||||||
private Color _originalColor;
|
private Color _originalColor;
|
||||||
|
|
||||||
private void OnValidate()
|
private void OnValidate()
|
||||||
@ -78,6 +81,8 @@ namespace BlueWater.Uis
|
|||||||
{
|
{
|
||||||
_panel.SetActive(false);
|
_panel.SetActive(false);
|
||||||
|
|
||||||
|
_interactionEAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.InteractionE);
|
||||||
|
|
||||||
_tycoonManager = TycoonManager.Instance;
|
_tycoonManager = TycoonManager.Instance;
|
||||||
_tycoonCardController = _tycoonManager.TycoonCardController;
|
_tycoonCardController = _tycoonManager.TycoonCardController;
|
||||||
_endGold = ES3.Load(SaveData.EndGold, 0);
|
_endGold = ES3.Load(SaveData.EndGold, 0);
|
||||||
@ -116,6 +121,7 @@ namespace BlueWater.Uis
|
|||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
{
|
{
|
||||||
_failedPurchaseSequence.Kill();
|
_failedPurchaseSequence.Kill();
|
||||||
|
_interactionEAction = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Open()
|
public override void Open()
|
||||||
@ -143,6 +149,19 @@ namespace BlueWater.Uis
|
|||||||
EventManager.InvokeTycoonGameStarted();
|
EventManager.InvokeTycoonGameStarted();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override void EnableInput()
|
||||||
|
{
|
||||||
|
_interactionEAction.performed += OnInteractionE;
|
||||||
|
this.GetComponent<UiEventsController>().EnableAutoNavigate();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void DisableInput()
|
||||||
|
{
|
||||||
|
_interactionEAction.performed -= OnInteractionE;
|
||||||
|
this.GetComponent<UiEventsController>().DisableAutoNavigate();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
[Button("상점 열기")]
|
[Button("상점 열기")]
|
||||||
private void CreateCard()
|
private void CreateCard()
|
||||||
{
|
{
|
||||||
@ -182,6 +201,8 @@ namespace BlueWater.Uis
|
|||||||
element.SetPrice(cardShopData.Price);
|
element.SetPrice(cardShopData.Price);
|
||||||
element.Rotation_Start();
|
element.Rotation_Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.GetComponent<UiEventsController>().SetSelectObject(_tycoonCards[0].CardArea.gameObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SelectedCard(TycoonCard currentTycoonCard)
|
private void SelectedCard(TycoonCard currentTycoonCard)
|
||||||
@ -219,5 +240,16 @@ namespace BlueWater.Uis
|
|||||||
}
|
}
|
||||||
_endGoldText.text = targetGold.ToString("N0");
|
_endGoldText.text = targetGold.ToString("N0");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void OnInteractionE(InputAction.CallbackContext context)
|
||||||
|
{
|
||||||
|
var current = EventSystem.current.currentSelectedGameObject;
|
||||||
|
if (!current) return;
|
||||||
|
|
||||||
|
var currenButton = current.GetComponent<Button>();
|
||||||
|
currenButton?.onClick?.Invoke();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
320
Assets/02.Scripts/Ui/Tycoon/TycoonTutorial.cs
Normal file
@ -0,0 +1,320 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Sirenix.OdinInspector;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.InputSystem;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
namespace BlueWater
|
||||||
|
{
|
||||||
|
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 : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField, Required]
|
||||||
|
private GameObject _tutorialPanel;
|
||||||
|
|
||||||
|
[SerializeField, Required]
|
||||||
|
private GameObject _togglePanel;
|
||||||
|
|
||||||
|
[SerializeField, Required]
|
||||||
|
private ScrollRect _scrollRect;
|
||||||
|
|
||||||
|
[SerializeField, Required]
|
||||||
|
private RectTransform _buttonContents;
|
||||||
|
|
||||||
|
[SerializeField, Required]
|
||||||
|
private Transform _tutorialPopupUiContents;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private GameObject _keyAPanel;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private GameObject _keyDPanel;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private GameObject _keyEPanel;
|
||||||
|
|
||||||
|
[Title("프리팹")]
|
||||||
|
[SerializeField, Required]
|
||||||
|
private TutorialPageToggle _tutorialPageToggle;
|
||||||
|
|
||||||
|
[SerializeField, Required]
|
||||||
|
private TycoonTutorialPopupUi _tutorialPopupUi;
|
||||||
|
|
||||||
|
[Title("So")]
|
||||||
|
[SerializeField, Required]
|
||||||
|
private TutorialSo _tutorialSo;
|
||||||
|
|
||||||
|
[Title("실시간 데이터")]
|
||||||
|
[SerializeField]
|
||||||
|
private List<TutorialLink> _tutorialLinks;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private TutorialLink _currentTutorialLink;
|
||||||
|
|
||||||
|
private InputAction _pressQAction;
|
||||||
|
private InputAction _pressRAction;
|
||||||
|
private InputAction _pressAAction;
|
||||||
|
private InputAction _pressDAction;
|
||||||
|
private InputAction _interactionEAction;
|
||||||
|
private InputAction _closeAction;
|
||||||
|
private bool _isInMenu;
|
||||||
|
private bool _isUpdatingToggle;
|
||||||
|
|
||||||
|
public Action<bool> CloseAction;
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
_pressQAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.PressQ);
|
||||||
|
_pressRAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.PressR);
|
||||||
|
_pressAAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.PressA);
|
||||||
|
_pressDAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.PressD);
|
||||||
|
_interactionEAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.InteractionE);
|
||||||
|
_closeAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.Cancel);
|
||||||
|
|
||||||
|
HideUi();
|
||||||
|
|
||||||
|
foreach (Transform element in _buttonContents.transform)
|
||||||
|
{
|
||||||
|
Destroy(element.gameObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (Transform element in _tutorialPopupUiContents)
|
||||||
|
{
|
||||||
|
Destroy(element.gameObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
_tutorialLinks = new List<TutorialLink>(_tutorialSo.GetDataCount());
|
||||||
|
foreach (TutorialInfo tutorialInfo in _tutorialSo.GetData().Values)
|
||||||
|
{
|
||||||
|
TutorialPageToggle tutorialPageToggle = Instantiate(this._tutorialPageToggle, _buttonContents);
|
||||||
|
List<TycoonTutorialPopupUi> tycoonTutorialPopupUis = new List<TycoonTutorialPopupUi>();
|
||||||
|
tutorialPageToggle.Initialize(tutorialInfo);
|
||||||
|
|
||||||
|
for (int i = 0; i < tutorialInfo.TutorialPages.Count; i++)
|
||||||
|
{
|
||||||
|
TycoonTutorialPopupUi tycoonTutorialPopupUi = Instantiate(_tutorialPopupUi, _tutorialPopupUiContents);
|
||||||
|
TutorialPageType tutorialPageType = tutorialInfo.TutorialPages[i].TutorialPageType;
|
||||||
|
Sprite popupSprite = null;
|
||||||
|
switch (tutorialPageType)
|
||||||
|
{
|
||||||
|
case TutorialPageType.First:
|
||||||
|
popupSprite = _tutorialSo.FirstPopup;
|
||||||
|
break;
|
||||||
|
case TutorialPageType.Middle:
|
||||||
|
popupSprite = _tutorialSo.MiddlePopup;
|
||||||
|
break;
|
||||||
|
case TutorialPageType.Last:
|
||||||
|
popupSprite = _tutorialSo.LastPopup;
|
||||||
|
break;
|
||||||
|
case TutorialPageType.Solo:
|
||||||
|
popupSprite = _tutorialSo.SoloPopup;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new ArgumentOutOfRangeException();
|
||||||
|
}
|
||||||
|
tycoonTutorialPopupUi.Initialize(tutorialInfo, i, popupSprite);
|
||||||
|
tycoonTutorialPopupUis.Add(tycoonTutorialPopupUi);
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
_tutorialLinks.Add(tutorialLink);
|
||||||
|
}
|
||||||
|
|
||||||
|
_currentTutorialLink = _tutorialLinks[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDestroy()
|
||||||
|
{
|
||||||
|
_pressQAction = null;
|
||||||
|
_pressRAction = null;
|
||||||
|
_pressAAction = null;
|
||||||
|
_pressDAction = null;
|
||||||
|
_interactionEAction = null;
|
||||||
|
_closeAction = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetCurrentTutorialLink(string tutorialName = null)
|
||||||
|
{
|
||||||
|
if (tutorialName == null)
|
||||||
|
{
|
||||||
|
_currentTutorialLink = _tutorialLinks[0];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_currentTutorialLink = _tutorialLinks.Find(link => link.TutorialName == tutorialName);
|
||||||
|
}
|
||||||
|
_currentTutorialLink?.OnToggle(true);
|
||||||
|
_tutorialPanel.SetActive(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ShowUi(bool isInMenu)
|
||||||
|
{
|
||||||
|
_isInMenu = isInMenu;
|
||||||
|
|
||||||
|
if (_isInMenu)
|
||||||
|
{
|
||||||
|
SetCurrentTutorialLink();
|
||||||
|
_togglePanel.SetActive(true);
|
||||||
|
UpdateKeyPanels();
|
||||||
|
|
||||||
|
_pressQAction.performed += OnMovePreviousToggle;
|
||||||
|
_pressRAction.performed += OnMovNextToggle;
|
||||||
|
_closeAction.performed += OnClose;
|
||||||
|
}
|
||||||
|
|
||||||
|
_pressAAction.performed += OnMovePreviousPage;
|
||||||
|
_pressDAction.performed += OnMoveNextPage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ShowUiByName(string tutorialName = null)
|
||||||
|
{
|
||||||
|
SetCurrentTutorialLink(tutorialName);
|
||||||
|
_togglePanel.SetActive(false);
|
||||||
|
UpdateKeyPanels();
|
||||||
|
|
||||||
|
ShowUi(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void HideUi()
|
||||||
|
{
|
||||||
|
_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;
|
||||||
|
}
|
||||||
|
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
2
Assets/02.Scripts/Ui/Tycoon/TycoonTutorial.cs.meta
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0d3282ed42ec99b44b13f481f9bb7640
|
118
Assets/02.Scripts/Ui/Tycoon/TycoonTutorialPopupUi.cs
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using BlueWater.Uis;
|
||||||
|
using BlueWater.Utility;
|
||||||
|
using Sirenix.OdinInspector;
|
||||||
|
using TMPro;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.Localization;
|
||||||
|
using UnityEngine.Localization.Settings;
|
||||||
|
using UnityEngine.ResourceManagement.AsyncOperations;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
namespace BlueWater
|
||||||
|
{
|
||||||
|
public class TycoonTutorialPopupUi : TutorialPopupUi
|
||||||
|
{
|
||||||
|
[SerializeField]
|
||||||
|
private Image _popupImage;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private TMP_Text _titleText;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private RectTransform _descriptionTextRect;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private TMP_Text _descriptionText;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private RectTransform _descriptionTImageRect;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private Image _descriptionImage;
|
||||||
|
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private TMP_Text _pageText;
|
||||||
|
|
||||||
|
[Title("연출")]
|
||||||
|
[SerializeField]
|
||||||
|
private Vector3 _descriptionTextAnchorPositionInFirst = new(0f, -37f, 0f);
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private Vector3 _descriptionTextAnchorPositionExceptFirst = new(0f, -280f, 0f);
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private Vector3 _descriptionImageAnchorPositionInFirst = new(0f, -210f, 0f);
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private Vector3 _descriptionImageAnchorPositionExceptFirst = new(0f, -150f, 0f);
|
||||||
|
|
||||||
|
private TutorialInfo _tutorialInfo;
|
||||||
|
private TutorialPage _tutorialPage;
|
||||||
|
private Coroutine _changedLocaleInstance;
|
||||||
|
private int _pageIndex;
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
LocalizationSettings.SelectedLocaleChanged += OnChangedLocale;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDestroy()
|
||||||
|
{
|
||||||
|
LocalizationSettings.SelectedLocaleChanged -= OnChangedLocale;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnChangedLocale(Locale locale)
|
||||||
|
{
|
||||||
|
if (!gameObject.activeInHierarchy) return;
|
||||||
|
|
||||||
|
Utils.StartUniqueCoroutine(this, ref _changedLocaleInstance, ChangeLocaleCoroutine(locale));
|
||||||
|
StartCoroutine(ChangeLocaleCoroutine(locale));
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator ChangeLocaleCoroutine(Locale locale)
|
||||||
|
{
|
||||||
|
var loadingOperation = Utils.GetTableAsync();
|
||||||
|
yield return loadingOperation;
|
||||||
|
|
||||||
|
if (loadingOperation.Status == AsyncOperationStatus.Succeeded)
|
||||||
|
{
|
||||||
|
_titleText.text = Utils.GetLocalizedString(_tutorialInfo.TitleTextIdx);
|
||||||
|
_descriptionText.text = Utils.GetLocalizedString(_tutorialPage.DescriptionIdx);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Initialize(TutorialInfo tutorialInfo, int pageindex, Sprite popupSprite)
|
||||||
|
{
|
||||||
|
gameObject.SetActive(false);
|
||||||
|
|
||||||
|
_tutorialInfo = tutorialInfo;
|
||||||
|
_pageIndex = pageindex;
|
||||||
|
_tutorialPage = _tutorialInfo.TutorialPages[_pageIndex];
|
||||||
|
|
||||||
|
gameObject.name = $"{_tutorialInfo.TutorialName}{_pageIndex + 1}";
|
||||||
|
|
||||||
|
_popupImage.sprite = popupSprite;
|
||||||
|
|
||||||
|
if (_tutorialPage.TutorialPageType is TutorialPageType.First or TutorialPageType.Solo)
|
||||||
|
{
|
||||||
|
_titleText.text = Utils.GetLocalizedString(_tutorialInfo.TitleTextIdx);
|
||||||
|
_titleText.enabled = true;
|
||||||
|
_descriptionTextRect.anchoredPosition = _descriptionTextAnchorPositionInFirst;
|
||||||
|
_descriptionTImageRect.anchoredPosition = _descriptionImageAnchorPositionInFirst;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_titleText.enabled = false;
|
||||||
|
_descriptionTextRect.anchoredPosition = _descriptionTextAnchorPositionExceptFirst;
|
||||||
|
_descriptionTImageRect.anchoredPosition = _descriptionImageAnchorPositionExceptFirst;
|
||||||
|
}
|
||||||
|
_descriptionText.text = Utils.GetLocalizedString(_tutorialPage.DescriptionIdx);
|
||||||
|
_descriptionImage.sprite = _tutorialPage.Sprite;
|
||||||
|
|
||||||
|
_pageText.text = $"{_tutorialPage.PageIndex}/{_tutorialInfo.GetPages()}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3ba9784e695ed7541b83a7ba1abc6322
|
@ -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;
|
||||||
@ -151,7 +152,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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
166
Assets/03.Images/Ui/LineBlue.png.meta
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5a6a33286645736499caef60e479872d
|
||||||
|
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: 2
|
||||||
|
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:
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: LineBlue_0
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 0
|
||||||
|
y: 193
|
||||||
|
width: 501
|
||||||
|
height: 126
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: 45b63c140f250f0449cd927175c4032a
|
||||||
|
internalID: 1688200871
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable:
|
||||||
|
LineBlue_0: 1688200871
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/03.Images/Ui/Title/GhostPubLogo.png
Normal file
After Width: | Height: | Size: 162 KiB |
166
Assets/03.Images/Ui/Title/GhostPubLogo.png.meta
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 874505529dc5b944d8f40cebd9e89e73
|
||||||
|
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: 2
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
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:
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: GhostPubLogo_0
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 35
|
||||||
|
y: 393
|
||||||
|
width: 964
|
||||||
|
height: 315
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: 2d993888e58c6a64083febc2917b4f84
|
||||||
|
internalID: -225875059
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 23b38dbdce8895742ba8d620ab639026
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable:
|
||||||
|
GhostPubLogo_0: -225875059
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/03.Images/Ui/Tutorial.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b9355f51c89432144b4c64ca890c775b
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
8
Assets/03.Images/Ui/Tutorial/Popup.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: dddefe0afa058d242be0064f5692fb3d
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/03.Images/Ui/Tutorial/Popup/FirstTutorialPopup.png
Normal file
After Width: | Height: | Size: 249 KiB |
166
Assets/03.Images/Ui/Tutorial/Popup/FirstTutorialPopup.png.meta
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d881395249d9f7d43940877db16f096d
|
||||||
|
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: 2
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
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:
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: FirstTutorialPopup_0
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 8
|
||||||
|
y: 71
|
||||||
|
width: 495
|
||||||
|
height: 367
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: d6123bba44ba06c4ab92e5595a0a4e52
|
||||||
|
internalID: 1581927570
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: e1339f5fcadcf7a4bb3a97ce782e9668
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable:
|
||||||
|
FirstTutorialPopup_0: 1581927570
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/03.Images/Ui/Tutorial/Popup/LastTutorialPopup.png
Normal file
After Width: | Height: | Size: 247 KiB |
166
Assets/03.Images/Ui/Tutorial/Popup/LastTutorialPopup.png.meta
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d21603cd31610504c847fd606881daba
|
||||||
|
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: 2
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
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:
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: LastTutorialPopup_0
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 8
|
||||||
|
y: 71
|
||||||
|
width: 495
|
||||||
|
height: 367
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: c0cfbda8f52fa0045a71895bc616cbc7
|
||||||
|
internalID: -1576049482
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: d26d646014f5c6547bdc95e7f7860115
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable:
|
||||||
|
LastTutorialPopup_0: -1576049482
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/03.Images/Ui/Tutorial/Popup/MiddleTutorialPopup.png
Normal file
After Width: | Height: | Size: 247 KiB |
166
Assets/03.Images/Ui/Tutorial/Popup/MiddleTutorialPopup.png.meta
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4eb21a9cf7ed8e44388a74756a151b20
|
||||||
|
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: 2
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
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:
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: MiddleTutorialPopup_0
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 8
|
||||||
|
y: 71
|
||||||
|
width: 495
|
||||||
|
height: 367
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: 8ecd499f59443b944b4dc87a9529cd47
|
||||||
|
internalID: 1740845040
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5dbf30a2698921c4fbcdc5353336403d
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable:
|
||||||
|
MiddleTutorialPopup_0: 1740845040
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/03.Images/Ui/Tutorial/Popup/SoloTutorialPopup.png
Normal file
After Width: | Height: | Size: 248 KiB |
166
Assets/03.Images/Ui/Tutorial/Popup/SoloTutorialPopup.png.meta
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 18df90d5364975848a51832a491b7cc0
|
||||||
|
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: 2
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
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:
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: TutorialPopup_0
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 8
|
||||||
|
y: 71
|
||||||
|
width: 495
|
||||||
|
height: 367
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: 20f13d46d9f138e40802687a44edf52e
|
||||||
|
internalID: -395976741
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: c925ab980e2e49841b0cd334af94e055
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable:
|
||||||
|
TutorialPopup_0: -395976741
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/03.Images/Ui/Tutorial/Popup/TutorialPageButton.png
Normal file
After Width: | Height: | Size: 4.9 KiB |
166
Assets/03.Images/Ui/Tutorial/Popup/TutorialPageButton.png.meta
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: afd5578434dc2944ab12b4135cab3cad
|
||||||
|
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: 2
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
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:
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: TutorialPageButton_0
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 1
|
||||||
|
y: 112
|
||||||
|
width: 510
|
||||||
|
height: 287
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: 789ce1987122867408562c3a4192aaba
|
||||||
|
internalID: -197434440
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 468cc5842b9ea8e41a36230e57dd91c0
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable:
|
||||||
|
TutorialPageButton_0: -197434440
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
After Width: | Height: | Size: 4.9 KiB |
@ -0,0 +1,166 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1581794126c6e8846aa23b97413ac8da
|
||||||
|
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: 2
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
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:
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: TutorialPageSelectedButton_0
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 1
|
||||||
|
y: 112
|
||||||
|
width: 510
|
||||||
|
height: 287
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: 118cc429255a9d94fb16f18ecd684d0e
|
||||||
|
internalID: -1650058480
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: cb517094c8ebcfd429a1b8254889f96e
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable:
|
||||||
|
TutorialPageSelectedButton_0: -1650058480
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/03.Images/Ui/Tutorial/TutorialA01.png
Normal file
After Width: | Height: | Size: 234 KiB |
@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 5a6a33286645736499caef60e479872d
|
guid: fd570d5f2e74f9649b223b27e4bfd279
|
||||||
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: 512
|
spritePixelsToUnits: 100
|
||||||
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
|
||||||
@ -133,6 +133,8 @@ TextureImporter:
|
|||||||
edges: []
|
edges: []
|
||||||
weights: []
|
weights: []
|
||||||
secondaryTextures: []
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
nameFileIdTable: {}
|
nameFileIdTable: {}
|
||||||
mipmapLimitGroupName:
|
mipmapLimitGroupName:
|
||||||
pSDRemoveMatte: 0
|
pSDRemoveMatte: 0
|
BIN
Assets/03.Images/Ui/Tutorial/TutorialA02.png
Normal file
After Width: | Height: | Size: 101 KiB |
143
Assets/03.Images/Ui/Tutorial/TutorialA02.png.meta
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0093f30129ff92c4db9ca55525f3f035
|
||||||
|
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: 100
|
||||||
|
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/Ui/Tutorial/TutorialA03.png
Normal file
After Width: | Height: | Size: 3.1 MiB |
143
Assets/03.Images/Ui/Tutorial/TutorialA03.png.meta
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 29fd4626221cc4e449047cb509a4b670
|
||||||
|
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: 100
|
||||||
|
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/Ui/Tutorial/TutorialB01.png
Normal file
After Width: | Height: | Size: 218 KiB |
143
Assets/03.Images/Ui/Tutorial/TutorialB01.png.meta
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3d7a8b0b4b41eac4aa4098cef0206994
|
||||||
|
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: 100
|
||||||
|
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/Ui/Tutorial/TutorialB02.png
Normal file
After Width: | Height: | Size: 716 KiB |
143
Assets/03.Images/Ui/Tutorial/TutorialB02.png.meta
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1b6fbbe5c5df6df45b4feabedfc5d24d
|
||||||
|
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: 100
|
||||||
|
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/Ui/Tutorial/TutorialB03.png
Normal file
After Width: | Height: | Size: 162 KiB |
143
Assets/03.Images/Ui/Tutorial/TutorialB03.png.meta
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4b752d2d5763abc4cb65b8355450cc70
|
||||||
|
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: 100
|
||||||
|
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/Ui/Tutorial/TutorialB04.png
Normal file
After Width: | Height: | Size: 196 KiB |
143
Assets/03.Images/Ui/Tutorial/TutorialB04.png.meta
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f13384a7d3bd41a48a5ef3bd2671681b
|
||||||
|
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: 100
|
||||||
|
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/Ui/Tutorial/TutorialC01.png
Normal file
After Width: | Height: | Size: 285 KiB |
143
Assets/03.Images/Ui/Tutorial/TutorialC01.png.meta
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4c88f781368f1354bbc3dc6d16a5e092
|
||||||
|
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: 100
|
||||||
|
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:
|