vip宣伝view処理追加
This commit is contained in:
parent
b1de1c2514
commit
48dce0fcfc
|
|
@ -813,6 +813,7 @@ GameObject:
|
|||
- component: {fileID: 5201512537784308050}
|
||||
- component: {fileID: 7687630557404592465}
|
||||
- component: {fileID: 6786587213025535951}
|
||||
- component: {fileID: 1491786667167105538}
|
||||
m_Layer: 0
|
||||
m_Name: movie_VIP
|
||||
m_TagString: Untagged
|
||||
|
|
@ -900,6 +901,32 @@ Animation:
|
|||
m_PlayAutomatically: 1
|
||||
m_AnimatePhysics: 0
|
||||
m_CullingType: 0
|
||||
--- !u!61 &1491786667167105538
|
||||
BoxCollider2D:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6877570175858391367}
|
||||
m_Enabled: 1
|
||||
m_Density: 1
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_UsedByEffector: 0
|
||||
m_UsedByComposite: 0
|
||||
m_Offset: {x: 0.40160847, y: -0.08085698}
|
||||
m_SpriteTilingProperty:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
pivot: {x: 0.8577533, y: 0.041125536}
|
||||
oldSize: {x: 1.56, y: 1.76}
|
||||
newSize: {x: 0.58, y: 0.64}
|
||||
adaptiveTilingThreshold: 0.5
|
||||
drawMode: 0
|
||||
adaptiveTiling: 0
|
||||
m_AutoTiling: 0
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 3.4794078, y: 3.4169888}
|
||||
m_EdgeRadius: 0
|
||||
--- !u!1 &8035936346664169813
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -1159,6 +1186,11 @@ PrefabInstance:
|
|||
m_Modification:
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 2524396702494263387, guid: 8c6dcd9482c51504e89ba42234369eda,
|
||||
type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2524396703020600743, guid: 8c6dcd9482c51504e89ba42234369eda,
|
||||
type: 3}
|
||||
propertyPath: m_IsActive
|
||||
|
|
@ -1243,18 +1275,18 @@ Transform:
|
|||
type: 3}
|
||||
m_PrefabInstance: {fileID: 6244917521789390651}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!4 &8476357289219494445 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 2524396703577414934, guid: 8c6dcd9482c51504e89ba42234369eda,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 6244917521789390651}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!4 &8476357287308305102 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 2524396702732955125, guid: 8c6dcd9482c51504e89ba42234369eda,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 6244917521789390651}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!4 &8476357289219494445 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 2524396703577414934, guid: 8c6dcd9482c51504e89ba42234369eda,
|
||||
type: 3}
|
||||
m_PrefabInstance: {fileID: 6244917521789390651}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &6601841578865518209
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
using System;
|
||||
using UniRx;
|
||||
using UniRx.Triggers;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
|
|
@ -9,11 +10,93 @@ namespace MyGame.Scenes.marketing.Scripts
|
|||
{
|
||||
[SerializeField] private Button vipButton;
|
||||
[SerializeField] private Animator buttonAnimator;
|
||||
public IObservable<Unit> VipButton => vipButton.OnClickAsObservable().TakeUntilDestroy(this);
|
||||
[SerializeField] private Animator vipCustomerAnimator;
|
||||
[SerializeField] private CustomerDirection customerDirection;
|
||||
[SerializeField] private GameObject vipSpeechBubbleObject;
|
||||
[SerializeField] private Transform vipStayPosTransform;
|
||||
[SerializeField] private float vipMoveSpeed;
|
||||
public IObservable<Unit> VipButton { get; private set; }
|
||||
private IDisposable timerDisposable;
|
||||
private Vector3 initialPos;
|
||||
|
||||
public void ShowButton()
|
||||
private void Awake()
|
||||
{
|
||||
buttonAnimator.Play("Button_vip");
|
||||
vipButton.transform.SetLocalScale(0f);
|
||||
vipCustomerAnimator.transform.SetLocalScale(0f);
|
||||
initialPos = vipCustomerAnimator.transform.localPosition;
|
||||
var eventTrigger = vipSpeechBubbleObject.AddComponent<ObservableEventTrigger>();
|
||||
VipButton = vipButton.OnClickAsObservable()
|
||||
.Merge(eventTrigger.OnPointerClickAsObservable().AsUnitObservable())
|
||||
.TakeUntilDestroy(this);
|
||||
}
|
||||
|
||||
public void ShowButton(bool animated)
|
||||
{
|
||||
buttonAnimator.Play("Button_vip", 0, animated ? 0 : 1);
|
||||
vipButton.transform.SetLocalScale(1f);
|
||||
vipCustomerAnimator.transform.SetLocalScale(1f);
|
||||
vipSpeechBubbleObject.SetActive(false);
|
||||
customerDirection.SetDefaultSide();
|
||||
if (animated)
|
||||
{
|
||||
// 左から歩いてきて立ち止まってmovie_Vip再生
|
||||
vipCustomerAnimator.speed = 1f;
|
||||
vipCustomerAnimator.Play("customer_nomal_walk_side");
|
||||
var vipTransform = vipCustomerAnimator.transform;
|
||||
this.UpdateAsObservable()
|
||||
.TakeWhile(_ => Vector2.Distance(vipTransform.localPosition, vipStayPosTransform.localPosition) > .01f)
|
||||
.Subscribe(_ =>
|
||||
{
|
||||
vipTransform.localPosition = Vector2.MoveTowards(vipTransform.localPosition, vipStayPosTransform.localPosition, vipMoveSpeed * Time.deltaTime);
|
||||
}, () =>
|
||||
{
|
||||
vipCustomerAnimator.speed = 0f;
|
||||
vipCustomerAnimator.Play("customer_nomal");
|
||||
vipSpeechBubbleObject.SetActive(true);
|
||||
}).AddTo(this);
|
||||
}
|
||||
else
|
||||
{
|
||||
vipCustomerAnimator.speed = 0f;
|
||||
vipCustomerAnimator.Play("customer_nomal");
|
||||
vipSpeechBubbleObject.SetActive(true);
|
||||
}
|
||||
}
|
||||
|
||||
private void CloseButton()
|
||||
{
|
||||
if (vipSpeechBubbleObject.TryGetComponent<Collider2D>(out var target))
|
||||
{
|
||||
target.enabled = false;
|
||||
}
|
||||
// vip左にはける
|
||||
customerDirection.SetFlipSide();
|
||||
vipCustomerAnimator.speed = 1f;
|
||||
vipCustomerAnimator.Play("customer_nomal_walk_side");
|
||||
vipButton.transform.SetLocalScale(0f);
|
||||
var vipTransform = vipCustomerAnimator.transform;
|
||||
this.UpdateAsObservable()
|
||||
.TakeWhile(_ => Vector2.Distance(vipTransform.localPosition, initialPos) > .01f)
|
||||
.Subscribe(_ =>
|
||||
{
|
||||
vipTransform.localPosition = Vector2.MoveTowards(vipTransform.localPosition, initialPos, vipMoveSpeed * Time.deltaTime);
|
||||
}, () =>
|
||||
{
|
||||
vipCustomerAnimator.transform.SetLocalScale(0f);
|
||||
}).AddTo(this);
|
||||
}
|
||||
|
||||
public void ResetTimer(int time)
|
||||
{
|
||||
// タイマーの更新処理
|
||||
timerDisposable?.Dispose();
|
||||
timerDisposable = Observable.Timer(TimeSpan.Zero, TimeSpan.FromSeconds(1f))
|
||||
.Select(x => (int)(time - x))
|
||||
.TakeWhile(x => x > 0)
|
||||
.Subscribe(x => { }, () =>
|
||||
{
|
||||
CloseButton();
|
||||
}).AddTo(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue