Merge branch 'develop' of http://gitea.capers.co.kr:3000/capers/CapersRepo into develop
@ -18,19 +18,19 @@ MonoBehaviour:
|
||||
m_Value: 1
|
||||
threshold:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0.1
|
||||
m_Value: 1.3
|
||||
intensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0.25
|
||||
m_Value: 50
|
||||
scatter:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0.35
|
||||
m_Value: 0.3
|
||||
clamp:
|
||||
m_OverrideState: 0
|
||||
m_Value: 65472
|
||||
tint:
|
||||
m_OverrideState: 1
|
||||
m_Value: {r: 0.9339623, g: 0.7637582, b: 0.7533375, a: 1}
|
||||
m_OverrideState: 0
|
||||
m_Value: {r: 1, g: 1, b: 1, a: 1}
|
||||
highQualityFiltering:
|
||||
m_OverrideState: 0
|
||||
m_Value: 0
|
||||
@ -112,28 +112,28 @@ MonoBehaviour:
|
||||
active: 0
|
||||
mode:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
m_Value: 1
|
||||
gaussianStart:
|
||||
m_OverrideState: 1
|
||||
m_Value: 200
|
||||
m_Value: 0
|
||||
gaussianEnd:
|
||||
m_OverrideState: 1
|
||||
m_Value: 3000
|
||||
m_Value: 0
|
||||
gaussianMaxRadius:
|
||||
m_OverrideState: 1
|
||||
m_Value: 1.5
|
||||
highQualitySampling:
|
||||
m_OverrideState: 0
|
||||
m_OverrideState: 1
|
||||
m_Value: 0
|
||||
focusDistance:
|
||||
m_OverrideState: 1
|
||||
m_Value: 152.5
|
||||
m_Value: 10
|
||||
aperture:
|
||||
m_OverrideState: 1
|
||||
m_Value: 5.4
|
||||
m_Value: 5.6
|
||||
focalLength:
|
||||
m_OverrideState: 1
|
||||
m_Value: 190
|
||||
m_Value: 50
|
||||
bladeCount:
|
||||
m_OverrideState: 1
|
||||
m_Value: 5
|
||||
@ -158,16 +158,16 @@ MonoBehaviour:
|
||||
active: 1
|
||||
color:
|
||||
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:
|
||||
m_OverrideState: 1
|
||||
m_Value: {x: 0.5, y: 0.5}
|
||||
intensity:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0.35
|
||||
m_Value: 0.15
|
||||
smoothness:
|
||||
m_OverrideState: 1
|
||||
m_Value: 0.25
|
||||
m_Value: 1
|
||||
rounded:
|
||||
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
|
||||
guid: 90f596bc1a735a544985584af0b4180a
|
||||
guid: 5bac0b8c55ddef84daff781165adc64b
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b833bcae75f3f004684676cf4de35160
|
||||
guid: 61024edd9ea49c94fad0f340e178e18c
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
@ -24,6 +24,12 @@ namespace BlueWater.BehaviorTrees.Actions
|
||||
|
||||
public override void OnStart()
|
||||
{
|
||||
if (!_customer.CanVomit)
|
||||
{
|
||||
_canVomit = false;
|
||||
return;
|
||||
}
|
||||
|
||||
_customer.MoveMoneyCounter();
|
||||
var random = Random.Range(0f, 100f);
|
||||
if (random <= TycoonManager.Instance.TycoonStageController.StageDataSo.VomitingPercent)
|
||||
|
@ -21,7 +21,7 @@ namespace BlueWater.Npcs.Customers
|
||||
{
|
||||
public const string Idle = "Idle";
|
||||
public const string Walk = "Run";
|
||||
public const string Happy = "Happy";
|
||||
public const string Happy = "HappyIdle";
|
||||
public const string HappyRun = "HappyRun";
|
||||
public const string Upset = "Upset";
|
||||
public const string UpsetRun = "UpsetRun";
|
||||
@ -30,6 +30,30 @@ namespace BlueWater.Npcs.Customers
|
||||
public const string VomitingIdle = "VomitingIdle";
|
||||
public const string VomitingRun = "VomitingRun";
|
||||
}
|
||||
|
||||
public static class CatSpineAnimation
|
||||
{
|
||||
public const string Idle = "Cat/Idle";
|
||||
public const string Walk = "Cat/Run";
|
||||
public const string Happy = "Cat/HappyIdle";
|
||||
public const string HappyRun = "Cat/HappyRun";
|
||||
public const string Upset = "Cat/Upset";
|
||||
public const string UpsetRun = "Cat/UpsetRun";
|
||||
public const string Vomiting = "Cat/Vomiting";
|
||||
public const string VomitingForm = "Cat/VomitingForm";
|
||||
public const string VomitingIdle = "Cat/VomitingIdle";
|
||||
public const string VomitingRun = "Cat/VomitingRun";
|
||||
}
|
||||
|
||||
public static class WitchSpineAnimation
|
||||
{
|
||||
public const string Idle = "Witch/Idle";
|
||||
public const string Walk = "Witch/Run";
|
||||
public const string Happy = "Witch/HappyIdle";
|
||||
public const string HappyRun = "Witch/HappyRun";
|
||||
public const string Upset = "Witch/Upset";
|
||||
public const string UpsetRun = "Witch/UpsetRun";
|
||||
}
|
||||
|
||||
public enum CustomerInteractionType
|
||||
{
|
||||
@ -39,8 +63,13 @@ namespace BlueWater.Npcs.Customers
|
||||
|
||||
public enum CustomerSkin
|
||||
{
|
||||
Casper = 0,
|
||||
PumkinHead = 1
|
||||
BigCat = 0,
|
||||
Casper = 1,
|
||||
CasperBlack = 2,
|
||||
Cat = 3,
|
||||
PumkinHead = 4,
|
||||
Reaper = 5,
|
||||
Witch = 6
|
||||
}
|
||||
|
||||
public class Customer : MonoBehaviour, IPlayerInteraction, ICrewInteraction
|
||||
@ -99,7 +128,6 @@ namespace BlueWater.Npcs.Customers
|
||||
[field: SerializeField]
|
||||
public string InteractionMessage { get; set; }
|
||||
|
||||
[field: Title("실시간 데이터")]
|
||||
[field: SerializeField]
|
||||
public LevelData CurrentLevelData { get; private set; }
|
||||
|
||||
@ -127,6 +155,7 @@ namespace BlueWater.Npcs.Customers
|
||||
private CustomerInteractionType _customerInteractionType;
|
||||
|
||||
public bool IsMoving { get; private set; }
|
||||
public bool CanVomit { get; private set; }
|
||||
public bool IsVomited { get; private set; }
|
||||
|
||||
[SerializeField]
|
||||
@ -148,7 +177,16 @@ namespace BlueWater.Npcs.Customers
|
||||
}
|
||||
}
|
||||
|
||||
public int CustomerSkin { get; private set; }
|
||||
[Title("스킨 연출")]
|
||||
[field: SerializeField]
|
||||
public CustomerSkin CustomerSkin { get; private set; }
|
||||
|
||||
[SerializeField]
|
||||
private Vector3 _bigSize = new(1.5f, 1.5f, 1.5f);
|
||||
|
||||
[SerializeField]
|
||||
private Vector3 _smallSize = new(0.5f, 0.5f, 0.5f);
|
||||
|
||||
public int HurryTime { get; private set; }
|
||||
|
||||
private IAstarAI _astarAi;
|
||||
@ -197,10 +235,20 @@ namespace BlueWater.Npcs.Customers
|
||||
{
|
||||
if (element.ToString().Equals(currentSkinName))
|
||||
{
|
||||
CustomerSkin = (int)element;
|
||||
return;
|
||||
CustomerSkin = element;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (CustomerSkin is CustomerSkin.BigCat or CustomerSkin.Witch)
|
||||
{
|
||||
CanVomit = false;
|
||||
transform.localScale = _bigSize;
|
||||
}
|
||||
else
|
||||
{
|
||||
CanVomit = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void Update()
|
||||
@ -407,14 +455,14 @@ namespace BlueWater.Npcs.Customers
|
||||
|
||||
public virtual void ShowInteractionUi()
|
||||
{
|
||||
SpineController.EnableCustomMaterial();
|
||||
//SpineController.EnableCustomMaterial();
|
||||
EventManager.InvokeShowInteractionUi(InteractionMessage);
|
||||
EventManager.InvokeHoldInteracting(0f);
|
||||
}
|
||||
|
||||
public virtual void HideInteractionUi()
|
||||
{
|
||||
SpineController.DisableCustomMaterial();
|
||||
//SpineController.DisableCustomMaterial();
|
||||
EventManager.InvokeHideInteractionUi();
|
||||
}
|
||||
|
||||
@ -485,6 +533,12 @@ namespace BlueWater.Npcs.Customers
|
||||
var gold = (int)(CurrentLevelData.Gold * TycoonManager.Instance.TycoonStatus.GoldMultiplier);
|
||||
|
||||
_moneyCounter.AddCurrentGold(gold);
|
||||
|
||||
if (!ES3.Load(SaveData.TutorialC, false))
|
||||
{
|
||||
EventManager.InvokeTutorial(TutorialName.TutorialC);
|
||||
ES3.Save(SaveData.TutorialC, true);
|
||||
}
|
||||
}
|
||||
|
||||
public void Vomit()
|
||||
@ -520,6 +574,18 @@ namespace BlueWater.Npcs.Customers
|
||||
RegisterPlayerInteraction();
|
||||
|
||||
EventManager.InvokeOrderedCocktail(this);
|
||||
|
||||
if (!ES3.Load(SaveData.TutorialB, false))
|
||||
{
|
||||
EventManager.InvokeTutorial(TutorialName.TutorialB);
|
||||
ES3.Save(SaveData.TutorialB, true);
|
||||
}
|
||||
|
||||
if (!ES3.Load(SaveData.TutorialJ, false) && OrderedCocktailData.Idx == "Cocktail006")
|
||||
{
|
||||
EventManager.InvokeTutorial(TutorialName.TutorialJ);
|
||||
ES3.Save(SaveData.TutorialJ, true);
|
||||
}
|
||||
}
|
||||
|
||||
public void MovePosition(Vector3 targetPosition)
|
||||
|
@ -6,7 +6,18 @@ namespace BlueWater.Npcs.Customers
|
||||
{
|
||||
public void EnterState(Customer character)
|
||||
{
|
||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.Happy, true);
|
||||
if (character.CustomerSkin == CustomerSkin.Cat)
|
||||
{
|
||||
character.SpineController.PlayAnimation(CatSpineAnimation.Happy, true);
|
||||
}
|
||||
else if (character.CustomerSkin == CustomerSkin.Witch)
|
||||
{
|
||||
character.SpineController.PlayAnimation(WitchSpineAnimation.Happy, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.Happy, true);
|
||||
}
|
||||
}
|
||||
|
||||
public void UpdateState(Customer character)
|
||||
|
@ -8,16 +8,62 @@ namespace BlueWater.Npcs.Customers
|
||||
{
|
||||
if (character.IsVomited)
|
||||
{
|
||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.VomitingIdle, true);
|
||||
if (character.CustomerSkin == CustomerSkin.Cat)
|
||||
{
|
||||
character.SpineController.PlayAnimation(CatSpineAnimation.VomitingIdle, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.VomitingIdle, true);
|
||||
}
|
||||
}
|
||||
else if (character.IsReceivedItem)
|
||||
{
|
||||
character.SpineController.PlayAnimation(character.IsOrderedCorrected ?
|
||||
CustomerSpineAnimation.Happy : CustomerSpineAnimation.Upset, true);
|
||||
if (character.IsOrderedCorrected)
|
||||
{
|
||||
if (character.CustomerSkin == CustomerSkin.Cat)
|
||||
{
|
||||
character.SpineController.PlayAnimation(CatSpineAnimation.Happy, true);
|
||||
}
|
||||
else if (character.CustomerSkin == CustomerSkin.Witch)
|
||||
{
|
||||
character.SpineController.PlayAnimation(WitchSpineAnimation.Happy, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.Happy, true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (character.CustomerSkin == CustomerSkin.Cat)
|
||||
{
|
||||
character.SpineController.PlayAnimation(CatSpineAnimation.Upset, true);
|
||||
}
|
||||
else if (character.CustomerSkin == CustomerSkin.Witch)
|
||||
{
|
||||
character.SpineController.PlayAnimation(WitchSpineAnimation.Upset, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.Upset, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (!character.IsReceivedItem)
|
||||
{
|
||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.Idle, true);
|
||||
if (character.CustomerSkin == CustomerSkin.Cat)
|
||||
{
|
||||
character.SpineController.PlayAnimation(CatSpineAnimation.Idle, true);
|
||||
}
|
||||
else if (character.CustomerSkin == CustomerSkin.Witch)
|
||||
{
|
||||
character.SpineController.PlayAnimation(WitchSpineAnimation.Idle, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.Idle, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -25,6 +71,18 @@ namespace BlueWater.Npcs.Customers
|
||||
{
|
||||
if (character.IsMoving)
|
||||
{
|
||||
if (character.CustomerSkin == CustomerSkin.Cat)
|
||||
{
|
||||
character.SpineController.PlayAnimation(CatSpineAnimation.Idle, true);
|
||||
}
|
||||
else if (character.CustomerSkin == CustomerSkin.Witch)
|
||||
{
|
||||
character.SpineController.PlayAnimation(WitchSpineAnimation.Idle, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.Idle, true);
|
||||
}
|
||||
character.StateMachineController.TransitionToState(character.WalkingState, character);
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,18 @@ namespace BlueWater.Npcs.Customers
|
||||
{
|
||||
public void EnterState(Customer character)
|
||||
{
|
||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.Upset, true);
|
||||
if (character.CustomerSkin == CustomerSkin.Cat)
|
||||
{
|
||||
character.SpineController.PlayAnimation(CatSpineAnimation.Upset, true);
|
||||
}
|
||||
else if (character.CustomerSkin == CustomerSkin.Witch)
|
||||
{
|
||||
character.SpineController.PlayAnimation(WitchSpineAnimation.Upset, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.Upset, true);
|
||||
}
|
||||
}
|
||||
|
||||
public void UpdateState(Customer character)
|
||||
|
@ -10,7 +10,14 @@ namespace BlueWater.Npcs.Customers
|
||||
|
||||
public void EnterState(Customer character)
|
||||
{
|
||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.VomitingForm, false);
|
||||
if (character.CustomerSkin == CustomerSkin.Cat)
|
||||
{
|
||||
character.SpineController.PlayAnimation(CatSpineAnimation.VomitingForm, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.VomitingForm, false);
|
||||
}
|
||||
}
|
||||
|
||||
public void UpdateState(Customer character)
|
||||
@ -18,7 +25,14 @@ namespace BlueWater.Npcs.Customers
|
||||
if (!_isVomiting && character.SpineController.IsAnimationComplete())
|
||||
{
|
||||
AudioManager.Instance.PlaySfx(_vomitSfxName);
|
||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.Vomiting, false);
|
||||
if (character.CustomerSkin == CustomerSkin.Cat)
|
||||
{
|
||||
character.SpineController.PlayAnimation(CatSpineAnimation.Vomiting, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.Vomiting, false);
|
||||
}
|
||||
_isVomiting = true;
|
||||
}
|
||||
|
||||
|
@ -8,16 +8,62 @@ namespace BlueWater.Npcs.Customers
|
||||
{
|
||||
if (character.IsVomited)
|
||||
{
|
||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.VomitingRun, true);
|
||||
if (character.CustomerSkin == CustomerSkin.Cat)
|
||||
{
|
||||
character.SpineController.PlayAnimation(CatSpineAnimation.VomitingRun, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.VomitingRun, true);
|
||||
}
|
||||
}
|
||||
else if (character.IsReceivedItem)
|
||||
{
|
||||
character.SpineController.PlayAnimation(character.IsOrderedCorrected ?
|
||||
CustomerSpineAnimation.HappyRun : CustomerSpineAnimation.UpsetRun, true);
|
||||
if (character.IsOrderedCorrected)
|
||||
{
|
||||
if (character.CustomerSkin == CustomerSkin.Cat)
|
||||
{
|
||||
character.SpineController.PlayAnimation(CatSpineAnimation.HappyRun, true);
|
||||
}
|
||||
else if (character.CustomerSkin == CustomerSkin.Witch)
|
||||
{
|
||||
character.SpineController.PlayAnimation(WitchSpineAnimation.HappyRun, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.HappyRun, true);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (character.CustomerSkin == CustomerSkin.Cat)
|
||||
{
|
||||
character.SpineController.PlayAnimation(CatSpineAnimation.UpsetRun, true);
|
||||
}
|
||||
else if (character.CustomerSkin == CustomerSkin.Witch)
|
||||
{
|
||||
character.SpineController.PlayAnimation(WitchSpineAnimation.UpsetRun, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.UpsetRun, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (!character.IsReceivedItem)
|
||||
{
|
||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.Walk, true);
|
||||
if (character.CustomerSkin == CustomerSkin.Cat)
|
||||
{
|
||||
character.SpineController.PlayAnimation(CatSpineAnimation.Walk, true);
|
||||
}
|
||||
else if (character.CustomerSkin == CustomerSkin.Witch)
|
||||
{
|
||||
character.SpineController.PlayAnimation(WitchSpineAnimation.Walk, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.Walk, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -78,9 +78,11 @@ namespace BlueWater.Players.Tycoons
|
||||
|
||||
public void OnDevelopKey01(InputAction.CallbackContext context)
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
EventManager.InvokeCreateServerCrew();
|
||||
EventManager.InvokeCreateCleanerCrew();
|
||||
EventManager.InvokeCreateBartenderCrew();
|
||||
#endif
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -38,14 +38,14 @@ namespace BlueWater.Players.Tycoons
|
||||
|
||||
_isMoving = value;
|
||||
|
||||
if (_isMoving)
|
||||
{
|
||||
AudioManager.Instance.PlaySfx(_walkingSfxName, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
AudioManager.Instance.StopSfx(_walkingSfxName);
|
||||
}
|
||||
// if (_isMoving)
|
||||
// {
|
||||
// AudioManager.Instance.PlaySfx(_walkingSfxName, true);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// AudioManager.Instance.StopSfx(_walkingSfxName);
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
@ -67,6 +67,9 @@ namespace BlueWater.Players.Tycoons
|
||||
[SerializeField]
|
||||
private string _walkingSfxName = "TycoonPlayerWalking";
|
||||
|
||||
[SerializeField]
|
||||
private string _dashSfxName = "TycoonPlayerDashing";
|
||||
|
||||
public bool IsDashEnabled { get; private set; } = true;
|
||||
public bool IsDashing { get; private set; }
|
||||
|
||||
@ -242,6 +245,7 @@ namespace BlueWater.Players.Tycoons
|
||||
{
|
||||
_dashParticle.Play();
|
||||
}
|
||||
AudioManager.Instance.PlaySfx(_dashSfxName);
|
||||
|
||||
var dashDirection = _inputDirection;
|
||||
if (dashDirection == Vector3.zero)
|
||||
|
@ -232,8 +232,8 @@ namespace BlueWater
|
||||
}
|
||||
|
||||
// 손님이 퇴장하기 전에 스킨을 확인하는 이벤트
|
||||
public static Action<int> OnCheckedSkin;
|
||||
public static void InvokeCheckedSkin(int skinIndex)
|
||||
public static Action<CustomerSkin> OnCheckedSkin;
|
||||
public static void InvokeCheckedSkin(CustomerSkin skinIndex)
|
||||
{
|
||||
OnCheckedSkin?.Invoke(skinIndex);
|
||||
}
|
||||
@ -321,6 +321,13 @@ namespace BlueWater
|
||||
OnCreateMold?.Invoke();
|
||||
}
|
||||
|
||||
// 펌프 활성화 이벤트
|
||||
public static Action OnActivatePump;
|
||||
public static void InvokeActivatePump()
|
||||
{
|
||||
OnActivatePump?.Invoke();
|
||||
}
|
||||
|
||||
// 계산대 골드 자동 회수 이벤트
|
||||
public static Action<int> OnGainAutoMoneyCounter;
|
||||
public static void InvokeGainAutoMoneyCounter(int gainWaitTime)
|
||||
@ -355,6 +362,13 @@ namespace BlueWater
|
||||
{
|
||||
OnOpenedRareRewardBox?.Invoke();
|
||||
}
|
||||
|
||||
// 튜토리얼
|
||||
public static Action<string> OnTutorial;
|
||||
public static void InvokeTutorial(string tutorialName)
|
||||
{
|
||||
OnTutorial?.Invoke(tutorialName);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
@ -751,6 +751,33 @@
|
||||
"interactions": "",
|
||||
"initialStateCheck": false
|
||||
},
|
||||
{
|
||||
"name": "PressR",
|
||||
"type": "Button",
|
||||
"id": "e4fa5849-c9d6-4997-9b4e-90534871a42b",
|
||||
"expectedControlType": "",
|
||||
"processors": "",
|
||||
"interactions": "",
|
||||
"initialStateCheck": false
|
||||
},
|
||||
{
|
||||
"name": "PressA",
|
||||
"type": "Button",
|
||||
"id": "ba45488a-1cd7-479a-a42c-7ecf4d140eb6",
|
||||
"expectedControlType": "",
|
||||
"processors": "",
|
||||
"interactions": "",
|
||||
"initialStateCheck": false
|
||||
},
|
||||
{
|
||||
"name": "PressD",
|
||||
"type": "Button",
|
||||
"id": "8eb2dcae-c555-4f18-949a-ead8d65767f9",
|
||||
"expectedControlType": "",
|
||||
"processors": "",
|
||||
"interactions": "",
|
||||
"initialStateCheck": false
|
||||
},
|
||||
{
|
||||
"name": "PressAnyKey",
|
||||
"type": "Button",
|
||||
@ -843,10 +870,43 @@
|
||||
"path": "<Keyboard>/e",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": "",
|
||||
"groups": ";Keyboard&Mouse",
|
||||
"action": "InteractionE",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "c8c18337-6d1f-47f7-9e88-017d311a5ece",
|
||||
"path": "<Keyboard>/r",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": ";Keyboard&Mouse",
|
||||
"action": "PressR",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "35cbd356-f529-4281-94b8-087c7bd21859",
|
||||
"path": "<Keyboard>/a",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": ";Keyboard&Mouse",
|
||||
"action": "PressA",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
},
|
||||
{
|
||||
"name": "",
|
||||
"id": "2df367e5-1d6c-428c-b859-455392708188",
|
||||
"path": "<Keyboard>/d",
|
||||
"interactions": "",
|
||||
"processors": "",
|
||||
"groups": ";Keyboard&Mouse",
|
||||
"action": "PressD",
|
||||
"isComposite": false,
|
||||
"isPartOfComposite": false
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -38,6 +38,9 @@ namespace BlueWater
|
||||
public const string Move = "Move";
|
||||
public const string Cancel = "Cancel";
|
||||
public const string PressQ = "PressQ";
|
||||
public const string PressR = "PressR";
|
||||
public const string PressA = "PressA";
|
||||
public const string PressD = "PressD";
|
||||
public const string PressAnyKey = "PressAnyKey";
|
||||
public const string InteractionE = "InteractionE";
|
||||
}
|
||||
|
@ -6,6 +6,11 @@ using UnityEngine;
|
||||
|
||||
namespace BlueWater.Tycoons
|
||||
{
|
||||
public static class StatueBarrelSpineAnimation
|
||||
{
|
||||
public const string Idle = "Idle";
|
||||
}
|
||||
|
||||
public static class LiquidBarrelSpineAnimation
|
||||
{
|
||||
public const string IdleLevel0 = "Empty";
|
||||
@ -68,7 +73,11 @@ namespace BlueWater.Tycoons
|
||||
|
||||
_liquidImage.sprite = IsActivated ? LiquidData.Sprite : DataManager.Instance.SpriteDataSo.BarrelLock;
|
||||
|
||||
if (!IsStatue)
|
||||
if (IsStatue)
|
||||
{
|
||||
SpineController.PlayAnimation(StatueBarrelSpineAnimation.Idle, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.IdleLevel0, false);
|
||||
}
|
||||
@ -167,30 +176,16 @@ namespace BlueWater.Tycoons
|
||||
InteractionMessage = $"{Utils.GetLocalizedString(LiquidData.Idx)} {Utils.GetLocalizedString("Pour")}";
|
||||
}
|
||||
|
||||
if (IsStatue)
|
||||
{
|
||||
base.ShowInteractionUi();
|
||||
}
|
||||
else
|
||||
{
|
||||
SpineController.EnableCustomMaterial();
|
||||
EventManager.InvokeShowInteractionUi(InteractionMessage);
|
||||
IsShowing = true;
|
||||
}
|
||||
SpineController.EnableCustomMaterial();
|
||||
EventManager.InvokeShowInteractionUi(InteractionMessage);
|
||||
IsShowing = true;
|
||||
}
|
||||
|
||||
public override void HideInteractionUi()
|
||||
{
|
||||
if (IsStatue)
|
||||
{
|
||||
base.HideInteractionUi();
|
||||
}
|
||||
else
|
||||
{
|
||||
SpineController.DisableCustomMaterial();
|
||||
EventManager.InvokeHideInteractionUi();
|
||||
IsShowing = false;
|
||||
}
|
||||
SpineController.DisableCustomMaterial();
|
||||
EventManager.InvokeHideInteractionUi();
|
||||
IsShowing = false;
|
||||
}
|
||||
|
||||
public override void Activate()
|
||||
|
@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using BlueWater.Audios;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BlueWater.Tycoons
|
||||
@ -12,6 +13,9 @@ namespace BlueWater.Tycoons
|
||||
[SerializeField]
|
||||
private Sprite _heartSprite;
|
||||
|
||||
[SerializeField]
|
||||
private string _cleaningSfxName = "CleaningFloor";
|
||||
|
||||
private bool _isPlayerInteracting;
|
||||
|
||||
private void Update()
|
||||
@ -51,12 +55,14 @@ namespace BlueWater.Tycoons
|
||||
{
|
||||
GameManager.Instance.CurrentTycoonPlayer.IsCleaningFloor = true;
|
||||
_isPlayerInteracting = true;
|
||||
AudioManager.Instance.PlaySfx(_cleaningSfxName);
|
||||
}
|
||||
|
||||
public override void CancelInteraction()
|
||||
{
|
||||
GameManager.Instance.CurrentTycoonPlayer.IsCleaningFloor = false;
|
||||
_isPlayerInteracting = false;
|
||||
AudioManager.Instance.StopSfx(_cleaningSfxName);
|
||||
}
|
||||
|
||||
public override bool CanInteraction()
|
||||
|
@ -9,6 +9,7 @@ namespace BlueWater.Tycoons
|
||||
public static class PumpSpineAnimation
|
||||
{
|
||||
public const string Idle = "Idle";
|
||||
public const string Stop = "IdleStop";
|
||||
public const string Run = "Run";
|
||||
}
|
||||
|
||||
@ -37,10 +38,13 @@ namespace BlueWater.Tycoons
|
||||
private string _playPumpSfxName = "PlayPump";
|
||||
|
||||
private bool _isPlayerInteracting;
|
||||
private bool _isActivated;
|
||||
|
||||
protected override void Awake()
|
||||
{
|
||||
base.Awake();
|
||||
|
||||
EventManager.OnActivatePump += Activate;
|
||||
|
||||
_spineController = GetComponent<SpineController>();
|
||||
}
|
||||
@ -49,7 +53,7 @@ namespace BlueWater.Tycoons
|
||||
{
|
||||
base.Start();
|
||||
|
||||
_spineController.PlayAnimation(PumpSpineAnimation.Idle, true);
|
||||
_spineController.PlayAnimation(PumpSpineAnimation.Stop, false);
|
||||
}
|
||||
|
||||
private void Update()
|
||||
@ -83,6 +87,11 @@ namespace BlueWater.Tycoons
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
EventManager.OnActivatePump -= Activate;
|
||||
}
|
||||
|
||||
public override void Interaction()
|
||||
{
|
||||
AudioManager.Instance.PlaySfx(_attackSfxName, true);
|
||||
@ -103,7 +112,7 @@ namespace BlueWater.Tycoons
|
||||
|
||||
public override bool CanInteraction()
|
||||
{
|
||||
return !GameManager.Instance.CurrentTycoonPlayer.TycoonPickupHandler.IsPickedUpAnything();
|
||||
return _isActivated && !GameManager.Instance.CurrentTycoonPlayer.TycoonPickupHandler.IsPickedUpAnything();
|
||||
}
|
||||
|
||||
public override void ShowInteractionUi()
|
||||
@ -119,5 +128,11 @@ namespace BlueWater.Tycoons
|
||||
EventManager.InvokeHideInteractionUi();
|
||||
IsShowing = false;
|
||||
}
|
||||
|
||||
public void Activate()
|
||||
{
|
||||
_isActivated = true;
|
||||
_spineController.PlayAnimation(PumpSpineAnimation.Idle, true);
|
||||
}
|
||||
}
|
||||
}
|
@ -2,6 +2,7 @@ using BlueWater.Audios;
|
||||
using BlueWater.Interfaces;
|
||||
using BlueWater.Items;
|
||||
using BlueWater.Players;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BlueWater.Tycoons
|
||||
@ -34,9 +35,13 @@ namespace BlueWater.Tycoons
|
||||
[SerializeField]
|
||||
private bool _isChanged;
|
||||
|
||||
[Title("사운드")]
|
||||
[SerializeField]
|
||||
private string _discardSfxName = "DiscardCocktail";
|
||||
|
||||
[SerializeField]
|
||||
private string _changeRandomBoxSfxName = "ChangeRandomBox";
|
||||
|
||||
private bool _isPlayerInteracting;
|
||||
private bool _canInteraction = true;
|
||||
|
||||
@ -121,6 +126,7 @@ namespace BlueWater.Tycoons
|
||||
{
|
||||
if (!_canRandomChange) return;
|
||||
|
||||
AudioManager.Instance.PlaySfx(_changeRandomBoxSfxName);
|
||||
_spineController.PlayAnimation(TrashCanSpineAnimation.ChangeRandomBox, false);
|
||||
_spineController.AddAnimation(TrashCanSpineAnimation.RandomBoxIdle, true);
|
||||
_isChanged = true;
|
||||
|
@ -10,5 +10,17 @@ namespace BlueWater
|
||||
public const string BgmVolume = "BgmVolume";
|
||||
public const string SfxVolume = "SfxVolume";
|
||||
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
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: 26776146cb587a74aa860cdac5318a39, type: 3}
|
||||
- <BgmName>k__BackingField: TycoonResult
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: 727c8fcf7bfe53744968a986ff7b43aa, type: 3}
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: e149ff3b8678af448a8e1f04cf55649c, type: 3}
|
||||
|
@ -82,7 +82,7 @@ MonoBehaviour:
|
||||
- <SfxName>k__BackingField: CleaningTable
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: 717f06a127178564ab5ea8cdf9da3ef2, type: 3}
|
||||
- <SfxName>k__BackingField: OpenManualBook
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: a324e82da09f7f84cab40d74f755c9e8, type: 3}
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: 1b87c0475bbd52b429768eeffe0b6ff5, type: 3}
|
||||
- <SfxName>k__BackingField: CloseManualBook
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: b1d132518b614a743ac3a571ac75718c, type: 3}
|
||||
- <SfxName>k__BackingField: SucceedServing
|
||||
@ -116,10 +116,20 @@ MonoBehaviour:
|
||||
- <SfxName>k__BackingField: TycoonPlayerWalking
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: 4b5f41d537a9a574b9520f50b39fb425, type: 3}
|
||||
- <SfxName>k__BackingField: SelectCard
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: 9f82d570d14d65b4a80fe00bae7bc0c0, type: 3}
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: 39e368c24fb04084ea3ba929f16a4e91, type: 3}
|
||||
- <SfxName>k__BackingField: CreateCrew
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: 557c74c78a72aac41ae6da3f8477169c, type: 3}
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: cbb6eb52c18da1c43bc2aa34def2df9c, type: 3}
|
||||
- <SfxName>k__BackingField: TycoonPlayerAttacked
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: 416cb3dc1c8801f46a4a3b14d7665d8b, type: 3}
|
||||
- <SfxName>k__BackingField: RewardBoxInteractionFailed
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: 5850aa1a011156841bed2ffc74d93bbd, type: 3}
|
||||
- <SfxName>k__BackingField: TycoonPlayerDashing
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: 595646b0d77e94543bbf73c0236ae42f, type: 3}
|
||||
- <SfxName>k__BackingField: ChangeRandomBox
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: 8fec2c602d8ae2b4ca2ab0f1c0f8a117, type: 3}
|
||||
- <SfxName>k__BackingField: Purify
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: b554c7102f4142d46aad7dd333a2616b, type: 3}
|
||||
- <SfxName>k__BackingField: CreateMoldy
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: a041f5ba1fec6304895b80091ebf431b, type: 3}
|
||||
- <SfxName>k__BackingField: RareCardOpen
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: 28272de0f0479f94691b57e097565010, type: 3}
|
||||
|
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
|
||||
guid: 0e99028d5f739f146865cdd0fc6b4bed
|
||||
guid: 409afbfab40779a4abf64756763265d0
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
@ -70,6 +70,12 @@ namespace BlueWater.Tycoons
|
||||
Utils.RegisterList(Crews, newCrew);
|
||||
newCrew.Initialize();
|
||||
EventManager.InvokeUpdateCrewUi(BartenderCrews.Count, ServerCrews.Count, CleanerCrews.Count);
|
||||
|
||||
if (!ES3.Load(SaveData.TutorialF, false))
|
||||
{
|
||||
EventManager.InvokeTutorial(TutorialName.TutorialF);
|
||||
ES3.Save(SaveData.TutorialF, true);
|
||||
}
|
||||
|
||||
return newCrew;
|
||||
}
|
||||
@ -81,6 +87,12 @@ namespace BlueWater.Tycoons
|
||||
Utils.RegisterList(Crews, newCrew);
|
||||
newCrew.Initialize();
|
||||
EventManager.InvokeUpdateCrewUi(BartenderCrews.Count, ServerCrews.Count, CleanerCrews.Count);
|
||||
|
||||
if (!ES3.Load(SaveData.TutorialD, false))
|
||||
{
|
||||
EventManager.InvokeTutorial(TutorialName.TutorialD);
|
||||
ES3.Save(SaveData.TutorialD, true);
|
||||
}
|
||||
|
||||
return newCrew;
|
||||
}
|
||||
@ -97,6 +109,12 @@ namespace BlueWater.Tycoons
|
||||
newCrew.SetBartenderTable(spawnTransform.GetComponentInParent<BartenderTable>());
|
||||
newCrew.Initialize();
|
||||
EventManager.InvokeUpdateCrewUi(BartenderCrews.Count, ServerCrews.Count, CleanerCrews.Count);
|
||||
|
||||
if (!ES3.Load(SaveData.TutorialE, false))
|
||||
{
|
||||
EventManager.InvokeTutorial(TutorialName.TutorialE);
|
||||
ES3.Save(SaveData.TutorialE, true);
|
||||
}
|
||||
|
||||
return newCrew;
|
||||
}
|
||||
|
@ -8,8 +8,9 @@ namespace BlueWater
|
||||
{
|
||||
public enum RewardBoxType
|
||||
{
|
||||
Normal = 0,
|
||||
Rare = 1
|
||||
None = 0,
|
||||
Normal = 1,
|
||||
Rare = 2
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
|
@ -371,7 +371,7 @@ namespace BlueWater
|
||||
|
||||
_elapsedTime = 0f;
|
||||
_isPouring = true;
|
||||
AudioManager.Instance.PlaySfx(_pouringSfxName, loop: true);
|
||||
AudioManager.Instance.PlaySfx(_pouringSfxName);
|
||||
|
||||
// To Center 이동 코루틴이 활성화 중이지 않을 때
|
||||
if (_movePanelToCenterInstance == null)
|
||||
|
@ -28,6 +28,9 @@ namespace BlueWater.Tycoons
|
||||
[Title("사운드")]
|
||||
[SerializeField]
|
||||
private string _selectCardSfxName = "SelectCard";
|
||||
|
||||
[SerializeField]
|
||||
private string _purifySfxName = "Purify";
|
||||
|
||||
private TycoonManager _tycoonManager;
|
||||
private TycoonStatus _tycoonStatus;
|
||||
@ -135,6 +138,7 @@ namespace BlueWater.Tycoons
|
||||
break;
|
||||
case "AllCustomerPurification":
|
||||
EventManager.InvokePurifiedCustomerAll();
|
||||
AudioManager.Instance.PlaySfx(_purifySfxName);
|
||||
break;
|
||||
case "GaugeTimeUp":
|
||||
_tycoonStatus.CustomerHurryTimeIncrease += 3;
|
||||
|
@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using BlueWater.Audios;
|
||||
using BlueWater.Items;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
@ -32,6 +33,9 @@ namespace BlueWater.Tycoons
|
||||
public GarnishBarrel GarnishBarrel2 { get; private set; }
|
||||
|
||||
private List<Barrel> _barrels;
|
||||
|
||||
[SerializeField]
|
||||
private string _createMoldySfxName = "CreateMoldy";
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
@ -125,6 +129,8 @@ namespace BlueWater.Tycoons
|
||||
|
||||
int randomIndex = Random.Range(0, moldableElements.Count);
|
||||
moldableElements[randomIndex].Mold();
|
||||
|
||||
AudioManager.Instance.PlaySfx(_createMoldySfxName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,3 @@
|
||||
using System;
|
||||
using BlueWater.Audios;
|
||||
using UnityEngine;
|
||||
using Sirenix.OdinInspector;
|
||||
|
||||
@ -29,9 +27,6 @@ namespace BlueWater.Tycoons
|
||||
[field: SerializeField]
|
||||
public TycoonCardController TycoonCardController { get; private set; }
|
||||
|
||||
[SerializeField]
|
||||
private string _dailyBgm;
|
||||
|
||||
[field: Title("타이쿤 플레이어 스탯")]
|
||||
[field: SerializeField]
|
||||
public TycoonStatus TycoonStatus { get; private set; }
|
||||
@ -47,11 +42,6 @@ namespace BlueWater.Tycoons
|
||||
|
||||
private void Start()
|
||||
{
|
||||
if (!string.IsNullOrEmpty(_dailyBgm))
|
||||
{
|
||||
AudioManager.Instance.PlayBgm(_dailyBgm);
|
||||
}
|
||||
|
||||
TycoonStatus = new TycoonStatus();
|
||||
TycoonStatus.Initialize();
|
||||
}
|
||||
|
@ -156,7 +156,7 @@ namespace BlueWater.Tycoons
|
||||
[Button("노말 상자 생성")]
|
||||
public void CreateChest(LevelData levelData)
|
||||
{
|
||||
if (levelData.Idx == "1") return;
|
||||
if (levelData.Idx == "1" || levelData.RewardBoxType == RewardBoxType.None) return;
|
||||
|
||||
var spawnPosition = Utils.RandomPositionOnGraph(1);
|
||||
|
||||
|
@ -352,6 +352,7 @@ namespace BlueWater.Tycoons
|
||||
case "Upgrade1":
|
||||
tycoonManager.CustomerTableController.ShowCustomerTable(1);
|
||||
tycoonManager.TycoonIngredientController.LiquidBarrelB.Activate();
|
||||
EventManager.InvokeActivatePump();
|
||||
break;
|
||||
case "Upgrade2":
|
||||
tycoonManager.CustomerTableController.ShowCustomerTable(2);
|
||||
|
@ -6,11 +6,8 @@ using UnityEngine.UI;
|
||||
|
||||
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]
|
||||
private Image _selectedImage;
|
||||
|
@ -30,6 +30,9 @@ namespace BlueWater.Titles
|
||||
[SerializeField]
|
||||
private Button _startGameButton;
|
||||
|
||||
[SerializeField]
|
||||
private Button _tutorialButton;
|
||||
|
||||
[SerializeField]
|
||||
private Button _resumeGameButton;
|
||||
|
||||
@ -54,8 +57,11 @@ namespace BlueWater.Titles
|
||||
[SerializeField]
|
||||
private Image _ink;
|
||||
|
||||
[FormerlySerializedAs("_uiNavigationController")] [SerializeField]
|
||||
private UiEventsController uiEventsController;
|
||||
[SerializeField]
|
||||
private UiEventsController _uiEventsController;
|
||||
|
||||
[SerializeField]
|
||||
private TycoonTutorial _tycoonTutorial;
|
||||
|
||||
public Material inkMaterialInstance { get; private set; }
|
||||
|
||||
@ -75,6 +81,8 @@ namespace BlueWater.Titles
|
||||
_interactionEAction = _playerInputKeyManager.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.InteractionE);
|
||||
_openAction = _playerInputKeyManager.GetAction(InputActionMaps.Tycoon, TycoonActions.Options);
|
||||
_closeAction = _playerInputKeyManager.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.Cancel);
|
||||
|
||||
EventManager.OnTutorial += ShowTutorialUiByName;
|
||||
|
||||
if (_isTitleScene)
|
||||
{
|
||||
@ -94,6 +102,7 @@ namespace BlueWater.Titles
|
||||
|
||||
titleOptions.CloseOptions = HideSettingUi;
|
||||
titleQuitUi.CloseQuit = HideQuitUi;
|
||||
_tycoonTutorial.CloseAction = HideTutorialUi;
|
||||
_versionText.text = GetVersion();
|
||||
|
||||
inkMaterialInstance = Instantiate(_ink.material);
|
||||
@ -102,6 +111,8 @@ namespace BlueWater.Titles
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
EventManager.OnTutorial -= ShowTutorialUiByName;
|
||||
|
||||
if (_isTitleScene)
|
||||
{
|
||||
_startGameButton?.onClick.RemoveListener(() => SceneController.Instance?.LoadScene(SceneName.Tycoon));
|
||||
@ -175,11 +186,11 @@ namespace BlueWater.Titles
|
||||
{
|
||||
if (_isTitleScene)
|
||||
{
|
||||
uiEventsController.EnableAutoNavigate(_startGameButton.gameObject);
|
||||
_uiEventsController.EnableAutoNavigate(_startGameButton.gameObject);
|
||||
}
|
||||
else
|
||||
{
|
||||
uiEventsController.EnableAutoNavigate(_resumeGameButton.gameObject);
|
||||
_uiEventsController.EnableAutoNavigate(_resumeGameButton.gameObject);
|
||||
_closeAction.performed += OnClose;
|
||||
}
|
||||
|
||||
@ -198,7 +209,7 @@ namespace BlueWater.Titles
|
||||
}
|
||||
|
||||
_interactionEAction.performed -= OnInteractionE;
|
||||
uiEventsController.DisableAutoNavigate();
|
||||
_uiEventsController.DisableAutoNavigate();
|
||||
}
|
||||
|
||||
private string GetVersion()
|
||||
@ -257,6 +268,40 @@ namespace BlueWater.Titles
|
||||
|
||||
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)
|
||||
{
|
||||
|
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.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.UI;
|
||||
@ -20,7 +21,7 @@ using UnityEngine.UI;
|
||||
namespace BlueWater.Uis
|
||||
{
|
||||
public class TycoonCardArea : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerClickHandler,
|
||||
IPointerMoveHandler
|
||||
IPointerMoveHandler , ISelectHandler , IDeselectHandler
|
||||
{
|
||||
private Coroutine _currentRotationCoroutine;
|
||||
|
||||
@ -42,7 +43,16 @@ namespace BlueWater.Uis
|
||||
private bool _enable = false;
|
||||
|
||||
private Action<TycoonCard> _onSelectAction;
|
||||
public void OnSelect(BaseEventData eventData)
|
||||
{
|
||||
OnPointerEnter(null);
|
||||
}
|
||||
|
||||
public void OnDeselect(BaseEventData eventData)
|
||||
{
|
||||
OnPointerExit(null);
|
||||
}
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
_tycoonCard = transform.parent.GetComponent<TycoonCard>();
|
||||
@ -67,10 +77,11 @@ namespace BlueWater.Uis
|
||||
{
|
||||
_onSelectAction = action;
|
||||
}
|
||||
|
||||
|
||||
// 마우스가 이미지 위에 올라갔을 때 호출
|
||||
public void OnPointerEnter(PointerEventData eventData)
|
||||
{
|
||||
|
||||
if (_endRotationCoroutine != null)
|
||||
{
|
||||
StopCoroutine(_endRotationCoroutine);
|
||||
@ -120,6 +131,11 @@ namespace BlueWater.Uis
|
||||
}
|
||||
}
|
||||
|
||||
public void SelectCard()
|
||||
{
|
||||
OnPointerClick(null);
|
||||
}
|
||||
|
||||
// 마우스 클릭 시 호출
|
||||
public void OnPointerClick(PointerEventData eventData)
|
||||
{
|
||||
|
@ -23,15 +23,22 @@ namespace BlueWater.Uis
|
||||
private Vector3 _cardLocalScale_3 = new(0.8f, 0.8f, 1f);
|
||||
private Vector3 _cardLocalScale_4 = new(0.7f, 0.7f, 1f);
|
||||
private Vector3 _cardLocalScale_5 = new(0.65f, 0.65f, 1f);
|
||||
|
||||
[SerializeField]
|
||||
private string _openSfxName = "OpenRareRewardBox";
|
||||
|
||||
[SerializeField]
|
||||
private Button allOpenCardButton;
|
||||
[SerializeField]
|
||||
private Button closeButton;
|
||||
|
||||
[Title("사운드")]
|
||||
[SerializeField]
|
||||
private string _openSfxName = "OpenRareRewardBox";
|
||||
|
||||
[SerializeField]
|
||||
private string _cardOpenSfxName = "RareCardOpen";
|
||||
|
||||
[SerializeField]
|
||||
private string _cardOpenAllSfxName = "SelectCard";
|
||||
|
||||
private List<TycoonCard> _tycoonCards = new(5);
|
||||
private int viewCardCount = 0;
|
||||
|
||||
@ -74,6 +81,7 @@ namespace BlueWater.Uis
|
||||
|
||||
public override void Close()
|
||||
{
|
||||
AudioManager.Instance.PlaySfx(_cardOpenAllSfxName, ignoreTimeScale: true);
|
||||
_panel.SetActive(false);
|
||||
PopupUiController.UnregisterPopup(this);
|
||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
||||
@ -84,11 +92,13 @@ namespace BlueWater.Uis
|
||||
public override void EnableInput()
|
||||
{
|
||||
_interactionEAction.performed += OnInteractionE;
|
||||
this.GetComponent<UiEventsController>().EnableAutoNavigate();
|
||||
}
|
||||
|
||||
public override void DisableInput()
|
||||
{
|
||||
_interactionEAction.performed -= OnInteractionE;
|
||||
this.GetComponent<UiEventsController>().DisableAutoNavigate();
|
||||
}
|
||||
|
||||
|
||||
@ -146,10 +156,13 @@ namespace BlueWater.Uis
|
||||
|
||||
_tycoonCardController.SelectCard(element);
|
||||
}
|
||||
|
||||
GetComponent<UiEventsController>().SetSelectObject(_tycoonCards[(int)(_tycoonCards.Count/2)].CardArea.gameObject);
|
||||
}
|
||||
|
||||
private void OpenCard(TycoonCard tycoonCard)
|
||||
{
|
||||
AudioManager.Instance.PlaySfx(_cardOpenSfxName, ignoreTimeScale: true);
|
||||
tycoonCard.Rotation_Start();
|
||||
tycoonCard.SetSelectAction(null);
|
||||
viewCardCount--;
|
||||
@ -164,6 +177,7 @@ namespace BlueWater.Uis
|
||||
[Button("카드 모두 열기")]
|
||||
public void AllOpenCard()
|
||||
{
|
||||
AudioManager.Instance.PlaySfx(_cardOpenSfxName, ignoreTimeScale: true);
|
||||
viewCardCount = 0;
|
||||
//남은 카드가 열리는 연출만 추가하자
|
||||
foreach (var element in _tycoonCards)
|
||||
|
@ -2,12 +2,14 @@ using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using BlueWater.Audios;
|
||||
using BlueWater.Npcs.Customers;
|
||||
using BlueWater.Tycoons;
|
||||
using BlueWater.Utility;
|
||||
using UnityEngine;
|
||||
using Sirenix.OdinInspector;
|
||||
using TMPro;
|
||||
using UnityEngine.InputSystem;
|
||||
using UnityEngine.Serialization;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace BlueWater.Uis
|
||||
@ -63,6 +65,13 @@ namespace BlueWater.Uis
|
||||
|
||||
[SerializeField]
|
||||
private GameObject _customerContents;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject _bigCatPanel;
|
||||
|
||||
[SerializeField]
|
||||
private TMP_Text _bigCatText;
|
||||
private int _bigCatCount;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject _casperPanel;
|
||||
@ -71,6 +80,20 @@ namespace BlueWater.Uis
|
||||
private TMP_Text _casperText;
|
||||
private int _casperCount;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject _casperBlackPanel;
|
||||
|
||||
[SerializeField]
|
||||
private TMP_Text _casperBlackText;
|
||||
private int _casperBlackCount;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject _catPanel;
|
||||
|
||||
[SerializeField]
|
||||
private TMP_Text _catText;
|
||||
private int _catCount;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject _pumpkinPanel;
|
||||
|
||||
@ -78,6 +101,20 @@ namespace BlueWater.Uis
|
||||
private TMP_Text _pumpkinText;
|
||||
private int _pumpkinCount;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject _reaperPanel;
|
||||
|
||||
[SerializeField]
|
||||
private TMP_Text _reaperText;
|
||||
private int _reaperCount;
|
||||
|
||||
[SerializeField]
|
||||
private GameObject _witchPanel;
|
||||
|
||||
[SerializeField]
|
||||
private TMP_Text _witchText;
|
||||
private int _witchCount;
|
||||
|
||||
[Title("서비스")]
|
||||
[SerializeField]
|
||||
private GameObject _serviceTitlePanel;
|
||||
@ -196,6 +233,7 @@ namespace BlueWater.Uis
|
||||
private InputAction _pressAnyKeyAction;
|
||||
|
||||
private float _playTime;
|
||||
private bool _isSetData;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
@ -219,8 +257,13 @@ namespace BlueWater.Uis
|
||||
_mainMenuButton.onClick.AddListener(() => SceneController.Instance.LoadScene(SceneName.TycoonTile));
|
||||
_restartButton.onClick.AddListener(SceneController.Instance.RestartCurrentScene);
|
||||
|
||||
_bigCatCount = 0;
|
||||
_casperCount = 0;
|
||||
_casperBlackCount = 0;
|
||||
_catCount = 0;
|
||||
_pumpkinCount = 0;
|
||||
_reaperCount = 0;
|
||||
_witchCount = 0;
|
||||
_goodServingCount = 0;
|
||||
_failedServingCount = 0;
|
||||
_missServingCount = 0;
|
||||
@ -255,6 +298,7 @@ namespace BlueWater.Uis
|
||||
[Button("결과 연출 테스트")]
|
||||
public override void Open()
|
||||
{
|
||||
AudioManager.Instance.StopSfx("TycoonGameOver");
|
||||
AudioManager.Instance.PlayBgm(_bgmName);
|
||||
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
||||
@ -309,8 +353,13 @@ namespace BlueWater.Uis
|
||||
_textPanel.SetActive(true);
|
||||
_customerPanel.SetActive(true);
|
||||
_customerContents.SetActive(true);
|
||||
_bigCatPanel.SetActive(true);
|
||||
_casperPanel.SetActive(true);
|
||||
_casperBlackPanel.SetActive(true);
|
||||
_catPanel.SetActive(true);
|
||||
_pumpkinPanel.SetActive(true);
|
||||
_reaperPanel.SetActive(true);
|
||||
_witchPanel.SetActive(true);
|
||||
yield return panelWaitingTime;
|
||||
|
||||
_serviceTitlePanel.SetActive(true);
|
||||
@ -373,8 +422,13 @@ namespace BlueWater.Uis
|
||||
_textPanel.SetActive(isActive);
|
||||
_customerPanel.SetActive(isActive);
|
||||
_customerContents.SetActive(isActive);
|
||||
_bigCatPanel.SetActive(isActive);
|
||||
_casperPanel.SetActive(isActive);
|
||||
_casperBlackPanel.SetActive(isActive);
|
||||
_catPanel.SetActive(isActive);
|
||||
_pumpkinPanel.SetActive(isActive);
|
||||
_reaperPanel.SetActive(isActive);
|
||||
_witchPanel.SetActive(isActive);
|
||||
_serviceTitlePanel.SetActive(isActive);
|
||||
_serviceContents.SetActive(isActive);
|
||||
_goodServingPanel.SetActive(isActive);
|
||||
@ -410,8 +464,13 @@ namespace BlueWater.Uis
|
||||
|
||||
_roundText.text = $"{Utils.GetLocalizedString("Round")} : {TycoonManager.Instance.GetCurrentLevelData().Idx}";
|
||||
_playTimeText.text = $"{Utils.GetLocalizedString("PlayTime")} : {Mathf.FloorToInt(_playTime / 60f):D2} : {Mathf.FloorToInt(_playTime % 60f):D2}";
|
||||
_bigCatText.text = _bigCatCount.ToString();
|
||||
_casperText.text = _casperCount.ToString();
|
||||
_casperBlackText.text = _casperBlackCount.ToString();
|
||||
_catText.text = _catCount.ToString();
|
||||
_pumpkinText.text = _pumpkinCount.ToString();
|
||||
_reaperText.text = _reaperCount.ToString();
|
||||
_witchText.text = _witchCount.ToString();
|
||||
_goodServingText.text = _goodServingCount.ToString();
|
||||
_failedServingText.text = _failedServingCount.ToString();
|
||||
_missServingText.text = _missServingCount.ToString();
|
||||
@ -426,7 +485,8 @@ namespace BlueWater.Uis
|
||||
int percent = Mathf.RoundToInt(endGoldMultiplier * 100);
|
||||
char sign = percent >= 0 ? '+' : '-';
|
||||
_minusPercentText.color = percent >= 0 ? Color.blue : Color.red;
|
||||
_minusPercentText.text = $"{sign} {percent}%";
|
||||
_minusPercentText.text = $"{sign} {Mathf.Abs(percent)}%";
|
||||
_isSetData = true;
|
||||
}
|
||||
|
||||
[Button("결과 즉시 테스트")]
|
||||
@ -437,22 +497,40 @@ namespace BlueWater.Uis
|
||||
StopCoroutine(_showResultInstance);
|
||||
_showResultInstance = null;
|
||||
}
|
||||
|
||||
SetResultData();
|
||||
|
||||
if (!_isSetData)
|
||||
{
|
||||
SetResultData();
|
||||
}
|
||||
SetActiveUi(true);
|
||||
}
|
||||
|
||||
private void AddCustomerCount(int skinIndex)
|
||||
private void AddCustomerCount(CustomerSkin skinIndex)
|
||||
{
|
||||
switch (skinIndex)
|
||||
{
|
||||
case 0:
|
||||
case CustomerSkin.BigCat:
|
||||
_bigCatCount++;
|
||||
break;
|
||||
case CustomerSkin.Casper:
|
||||
_casperCount++;
|
||||
break;
|
||||
case 1:
|
||||
case CustomerSkin.CasperBlack:
|
||||
_casperBlackCount++;
|
||||
break;
|
||||
case CustomerSkin.Cat:
|
||||
_catCount++;
|
||||
break;
|
||||
case CustomerSkin.PumkinHead:
|
||||
_pumpkinCount++;
|
||||
break;
|
||||
default:;
|
||||
case CustomerSkin.Reaper:
|
||||
_reaperCount++;
|
||||
break;
|
||||
case CustomerSkin.Witch:
|
||||
_witchCount++;
|
||||
break;
|
||||
default:
|
||||
throw new Exception("손님 스킨 인덱스 오류");
|
||||
}
|
||||
}
|
||||
|
@ -1,15 +1,18 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using BlueWater.Audios;
|
||||
using BlueWater.Tycoons;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.InputSystem;
|
||||
using UnityEngine.UI;
|
||||
using Random = UnityEngine.Random;
|
||||
|
||||
namespace BlueWater.Uis
|
||||
{
|
||||
public class TycoonSelectCard : PopupUi
|
||||
public class TycoonSelectCard : PopupUi
|
||||
{
|
||||
[SerializeField]
|
||||
private GameObject _panel;
|
||||
@ -26,10 +29,14 @@ namespace BlueWater.Uis
|
||||
private TycoonManager _tycoonManager;
|
||||
private TycoonCardController _tycoonCardController;
|
||||
|
||||
private InputAction _interactionEAction;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
_panel.SetActive(false);
|
||||
|
||||
_interactionEAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.InteractionE);
|
||||
|
||||
_tycoonManager = TycoonManager.Instance;
|
||||
_tycoonCardController = _tycoonManager.TycoonCardController;
|
||||
|
||||
@ -39,6 +46,11 @@ namespace BlueWater.Uis
|
||||
private void OnDestroy()
|
||||
{
|
||||
EventManager.OnOpenedNormalRewardBox -= CreateCard;
|
||||
|
||||
if (_interactionEAction != null)
|
||||
{
|
||||
_interactionEAction.performed -= OnInteractionE;
|
||||
}
|
||||
}
|
||||
|
||||
public override void Open()
|
||||
@ -60,6 +72,28 @@ namespace BlueWater.Uis
|
||||
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("카드 생성하기(레벨업)")]
|
||||
private void CreateCard()
|
||||
{
|
||||
@ -104,8 +138,10 @@ namespace BlueWater.Uis
|
||||
|
||||
StartCoroutine(FadeInPanel());
|
||||
}
|
||||
|
||||
this.GetComponent<UiEventsController>().SetSelectObject(_tycoonCards[0].CardArea.gameObject);
|
||||
}
|
||||
|
||||
|
||||
private IEnumerator FadeInPanel()
|
||||
{
|
||||
float time = 0.0f; // 타이머 초기화
|
||||
@ -122,10 +158,13 @@ namespace BlueWater.Uis
|
||||
|
||||
yield return null;
|
||||
}
|
||||
|
||||
// _tycoonCards[1].CardArea.OnSelect(null);
|
||||
}
|
||||
|
||||
private void SelectedCard(TycoonCard currentTycoonCard)
|
||||
{
|
||||
DisableInput();
|
||||
_tycoonCardController.SelectCard(currentTycoonCard);
|
||||
currentTycoonCard.CardArea.SuccessClick();
|
||||
StartCoroutine(SelectedAnimation(currentTycoonCard));
|
||||
@ -171,7 +210,7 @@ namespace BlueWater.Uis
|
||||
|
||||
float time = 0.0f; // 타이머 초기화
|
||||
|
||||
while (time < 1.0f)
|
||||
while (time < 0.5f)
|
||||
{
|
||||
time += Time.unscaledDeltaTime; // 시간 업데이트
|
||||
|
||||
@ -189,12 +228,12 @@ namespace BlueWater.Uis
|
||||
time = 0.0f; // 타이머 초기화
|
||||
startScale03 = rect03.localScale; // 시작 위치
|
||||
|
||||
while (time < 1.0f)
|
||||
while (time < 0.5f)
|
||||
{
|
||||
time += Time.unscaledDeltaTime; // 시간 업데이트
|
||||
|
||||
float _Time = time / 0.5f;
|
||||
float _FadeTime = time / 1.0f;
|
||||
float _Time = time / 0.25f;
|
||||
float _FadeTime = time / 0.5f;
|
||||
|
||||
float easedTIn = EaseEffect.ExpoIn(_Time);
|
||||
rect03.localScale = Vector3.Lerp(startScale03, new Vector3(0.0f, 0.0f, 0.0f), easedTIn);
|
||||
@ -208,5 +247,6 @@ namespace BlueWater.Uis
|
||||
_tycoonCardController.DestroyCardList(_tycoonCards);
|
||||
Close();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,3 @@
|
||||
using System.Threading.Tasks;
|
||||
using BlueWater.Audios;
|
||||
using DG.Tweening;
|
||||
using Sirenix.OdinInspector;
|
||||
@ -27,6 +26,9 @@ namespace BlueWater.Uis
|
||||
[SerializeField]
|
||||
private Animator _closedUiAnimator;
|
||||
|
||||
[SerializeField]
|
||||
private string _dailyBgm = "TycoonBgm01";
|
||||
|
||||
[SerializeField]
|
||||
private string _gameStartSfxName = "TycoonGameStart";
|
||||
|
||||
@ -104,6 +106,16 @@ namespace BlueWater.Uis
|
||||
_panel.SetActive(false);
|
||||
PlayerInputKeyManager.Instance.EnableCurrentPlayerInput();
|
||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
||||
|
||||
if (!string.IsNullOrEmpty(_dailyBgm))
|
||||
{
|
||||
AudioManager.Instance.PlayBgm(_dailyBgm);
|
||||
}
|
||||
|
||||
if (!ES3.Load(SaveData.TutorialA, false))
|
||||
{
|
||||
Invoke(nameof(InvokeTutorialA), 1f);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
@ -138,6 +150,12 @@ namespace BlueWater.Uis
|
||||
});
|
||||
}
|
||||
|
||||
private void InvokeTutorialA()
|
||||
{
|
||||
EventManager.InvokeTutorial(TutorialName.TutorialA);
|
||||
ES3.Save(SaveData.TutorialA, true);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ using UnityEngine;
|
||||
using Sirenix.OdinInspector;
|
||||
using TMPro;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.InputSystem;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace BlueWater.Uis
|
||||
@ -64,6 +65,8 @@ namespace BlueWater.Uis
|
||||
private Sequence _failedPurchaseSequence;
|
||||
private Coroutine _changeGoldInstance;
|
||||
|
||||
private InputAction _interactionEAction;
|
||||
|
||||
private Color _originalColor;
|
||||
|
||||
private void OnValidate()
|
||||
@ -78,6 +81,8 @@ namespace BlueWater.Uis
|
||||
{
|
||||
_panel.SetActive(false);
|
||||
|
||||
_interactionEAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.InteractionE);
|
||||
|
||||
_tycoonManager = TycoonManager.Instance;
|
||||
_tycoonCardController = _tycoonManager.TycoonCardController;
|
||||
_endGold = ES3.Load(SaveData.EndGold, 0);
|
||||
@ -116,6 +121,7 @@ namespace BlueWater.Uis
|
||||
private void OnDestroy()
|
||||
{
|
||||
_failedPurchaseSequence.Kill();
|
||||
_interactionEAction = null;
|
||||
}
|
||||
|
||||
public override void Open()
|
||||
@ -143,6 +149,19 @@ namespace BlueWater.Uis
|
||||
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("상점 열기")]
|
||||
private void CreateCard()
|
||||
{
|
||||
@ -182,6 +201,8 @@ namespace BlueWater.Uis
|
||||
element.SetPrice(cardShopData.Price);
|
||||
element.Rotation_Start();
|
||||
}
|
||||
|
||||
this.GetComponent<UiEventsController>().SetSelectObject(_tycoonCards[0].CardArea.gameObject);
|
||||
}
|
||||
|
||||
private void SelectedCard(TycoonCard currentTycoonCard)
|
||||
@ -219,5 +240,16 @@ namespace BlueWater.Uis
|
||||
}
|
||||
_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 BlueWater.Items;
|
||||
using BlueWater.Tycoons;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using Spine.Unity;
|
||||
@ -151,7 +152,45 @@ namespace BlueWater.Uis
|
||||
_paperAnimation.AnimationState.SetAnimation(0, "Back", false).Complete += (trackEntry) =>
|
||||
{
|
||||
Close();
|
||||
|
||||
int currentLevel = int.Parse(TycoonManager.Instance.GetCurrentLevelData().Idx);
|
||||
if (currentLevel == 5)
|
||||
{
|
||||
if (!ES3.Load(SaveData.TutorialG, false))
|
||||
{
|
||||
EventManager.InvokeTutorial(TutorialName.TutorialG);
|
||||
ES3.Save(SaveData.TutorialG, true);
|
||||
}
|
||||
|
||||
if (!ES3.Load(SaveData.TutorialH, false))
|
||||
{
|
||||
Invoke(nameof(InvokeTutorialH), 0.1f);
|
||||
}
|
||||
|
||||
if (!ES3.Load(SaveData.TutorialI, false))
|
||||
{
|
||||
Invoke(nameof(InvokeTutorialI), 0.2f);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private void InvokeTutorialH()
|
||||
{
|
||||
if (!ES3.Load(SaveData.TutorialH, false))
|
||||
{
|
||||
EventManager.InvokeTutorial(TutorialName.TutorialH);
|
||||
ES3.Save(SaveData.TutorialH, true);
|
||||
}
|
||||
}
|
||||
|
||||
private void InvokeTutorialI()
|
||||
{
|
||||
if (!ES3.Load(SaveData.TutorialI, false))
|
||||
{
|
||||
EventManager.InvokeTutorial(TutorialName.TutorialI);
|
||||
ES3.Save(SaveData.TutorialI, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
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
|
||||
guid: 5a6a33286645736499caef60e479872d
|
||||
guid: fd570d5f2e74f9649b223b27e4bfd279
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
@ -48,7 +48,7 @@ TextureImporter:
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 512
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
@ -133,6 +133,8 @@ TextureImporter:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
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:
|