add customize frame logic
This commit is contained in:
parent
723a0acef5
commit
5ec071fdf7
|
|
@ -394,6 +394,9 @@ GameObject:
|
|||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7097874909301393275}
|
||||
- component: {fileID: 3725718940147004211}
|
||||
- component: {fileID: 686629440844100179}
|
||||
- component: {fileID: 1336297028302711179}
|
||||
m_Layer: 5
|
||||
m_Name: Frame_summary
|
||||
m_TagString: Untagged
|
||||
|
|
@ -408,7 +411,7 @@ RectTransform:
|
|||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7197059603880083336}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children:
|
||||
|
|
@ -421,8 +424,74 @@ RectTransform:
|
|||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 276, y: 336}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &3725718940147004211
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7197059603880083336}
|
||||
m_CullTransparentMesh: 0
|
||||
--- !u!114 &686629440844100179
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7197059603880083336}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: ee012d4774ae943b49c2443232200135, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_RaycastTarget: 1
|
||||
--- !u!114 &1336297028302711179
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7197059603880083336}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Navigation:
|
||||
m_Mode: 3
|
||||
m_SelectOnUp: {fileID: 0}
|
||||
m_SelectOnDown: {fileID: 0}
|
||||
m_SelectOnLeft: {fileID: 0}
|
||||
m_SelectOnRight: {fileID: 0}
|
||||
m_Transition: 0
|
||||
m_Colors:
|
||||
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
||||
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
||||
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
||||
m_ColorMultiplier: 1
|
||||
m_FadeDuration: 0.1
|
||||
m_SpriteState:
|
||||
m_HighlightedSprite: {fileID: 0}
|
||||
m_PressedSprite: {fileID: 0}
|
||||
m_SelectedSprite: {fileID: 0}
|
||||
m_DisabledSprite: {fileID: 0}
|
||||
m_AnimationTriggers:
|
||||
m_NormalTrigger: Normal
|
||||
m_HighlightedTrigger: Highlighted
|
||||
m_PressedTrigger: Pressed
|
||||
m_SelectedTrigger: Selected
|
||||
m_DisabledTrigger: Disabled
|
||||
m_Interactable: 1
|
||||
m_TargetGraphic: {fileID: 686629440844100179}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &7345703844887354918
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -1034,6 +1103,7 @@ GameObject:
|
|||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 9136989296408743451}
|
||||
- component: {fileID: 9016739176424896693}
|
||||
m_Layer: 5
|
||||
m_Name: Customize_Frame
|
||||
m_TagString: Untagged
|
||||
|
|
@ -1063,6 +1133,28 @@ RectTransform:
|
|||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 0, y: 0}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &9016739176424896693
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 9136989296408743460}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 8b5434b76402401d827edbe3bb915bdf, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
button: {fileID: 1336297028302711179}
|
||||
lockObject: {fileID: 9136989295277789513}
|
||||
unlockObject: {fileID: 9136989295645579405}
|
||||
purchasedObject: {fileID: 9136989296137671042}
|
||||
selectedObject: {fileID: 7345703844887354918}
|
||||
selectedFrameObject: {fileID: 1107814534788598305}
|
||||
unselectedObject: {fileID: 1101663351218072558}
|
||||
unlockLevelText: {fileID: 2013268342774345650}
|
||||
priceText: {fileID: 9136989294777611129}
|
||||
iconTarget: {fileID: 1400898384260248944}
|
||||
--- !u!1001 &5025614481332414584
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
|
|||
|
|
@ -0,0 +1,85 @@
|
|||
using System;
|
||||
using UniRx;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace MyGame.Scenes.marketing.Scripts
|
||||
{
|
||||
public enum ShopCustomizeItemState
|
||||
{
|
||||
Lock,
|
||||
Unlock,
|
||||
Purchased,
|
||||
Selected,
|
||||
}
|
||||
public class ShopCustomizeItem : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private Button button;
|
||||
[SerializeField] private GameObject lockObject;
|
||||
[SerializeField] private GameObject unlockObject;
|
||||
[SerializeField] private GameObject purchasedObject;
|
||||
[SerializeField] private GameObject selectedObject;
|
||||
[SerializeField] private GameObject selectedFrameObject;
|
||||
[SerializeField] private GameObject unselectedObject;
|
||||
[SerializeField] private Text unlockLevelText;
|
||||
[SerializeField] private Text priceText;
|
||||
[SerializeField] private Transform iconTarget;
|
||||
|
||||
private IObservable<Unit> ClickObservable => button.OnClickAsObservable().TakeUntilDestroy(this);
|
||||
public IObservable<Unit> PurchaseObservable => purchaseSubject;
|
||||
private readonly Subject<Unit> purchaseSubject = new Subject<Unit>();
|
||||
public IObservable<Unit> SelectObservable => selectSubject;
|
||||
private readonly Subject<Unit> selectSubject = new Subject<Unit>();
|
||||
public IObservable<Unit> DetailObservable => detailSubject;
|
||||
private readonly Subject<Unit> detailSubject = new Subject<Unit>();
|
||||
private readonly ReactiveProperty<ShopCustomizeItemState> itemState = new ReactiveProperty<ShopCustomizeItemState>();
|
||||
private void Start()
|
||||
{
|
||||
itemState.AddTo(this);
|
||||
purchaseSubject.AddTo(this);
|
||||
selectSubject.AddTo(this);
|
||||
detailSubject.AddTo(this);
|
||||
itemState.Subscribe(state =>
|
||||
{
|
||||
lockObject.SetActive(state == ShopCustomizeItemState.Lock);
|
||||
unlockObject.SetActive(state == ShopCustomizeItemState.Unlock);
|
||||
purchasedObject.SetActive(state == ShopCustomizeItemState.Purchased || state == ShopCustomizeItemState.Selected);
|
||||
selectedObject.SetActive(state == ShopCustomizeItemState.Selected);
|
||||
selectedFrameObject.SetActive(state == ShopCustomizeItemState.Selected);
|
||||
unselectedObject.SetActive(state == ShopCustomizeItemState.Purchased);
|
||||
}).AddTo(this);
|
||||
ClickObservable.ThrottleFirst(TimeSpan.FromSeconds(.2f)).Subscribe(_ =>
|
||||
{
|
||||
switch (itemState.Value)
|
||||
{
|
||||
case ShopCustomizeItemState.Lock:
|
||||
break;
|
||||
case ShopCustomizeItemState.Unlock:
|
||||
purchaseSubject.OnNext(Unit.Default);
|
||||
break;
|
||||
case ShopCustomizeItemState.Purchased:
|
||||
selectSubject.OnNext(Unit.Default);
|
||||
break;
|
||||
case ShopCustomizeItemState.Selected:
|
||||
detailSubject.OnNext(Unit.Default);
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
}).AddTo(this);
|
||||
}
|
||||
|
||||
public void SetState(ShopCustomizeItemState state)
|
||||
{
|
||||
itemState.Value = state;
|
||||
}
|
||||
|
||||
public void SetData(ShopCustomizeData customizeData)
|
||||
{
|
||||
unlockLevelText.text = customizeData.level.ToString();
|
||||
priceText.text = customizeData.price.ToString();
|
||||
iconTarget.DestroyAllChildrens();
|
||||
// Instantiate(iconTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 8b5434b76402401d827edbe3bb915bdf
|
||||
timeCreated: 1652155635
|
||||
Loading…
Reference in New Issue