vip宣伝view処理追加
This commit is contained in:
parent
b1de1c2514
commit
48dce0fcfc
|
|
@ -813,6 +813,7 @@ GameObject:
|
||||||
- component: {fileID: 5201512537784308050}
|
- component: {fileID: 5201512537784308050}
|
||||||
- component: {fileID: 7687630557404592465}
|
- component: {fileID: 7687630557404592465}
|
||||||
- component: {fileID: 6786587213025535951}
|
- component: {fileID: 6786587213025535951}
|
||||||
|
- component: {fileID: 1491786667167105538}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: movie_VIP
|
m_Name: movie_VIP
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
|
|
@ -900,6 +901,32 @@ Animation:
|
||||||
m_PlayAutomatically: 1
|
m_PlayAutomatically: 1
|
||||||
m_AnimatePhysics: 0
|
m_AnimatePhysics: 0
|
||||||
m_CullingType: 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
|
--- !u!1 &8035936346664169813
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -1159,6 +1186,11 @@ PrefabInstance:
|
||||||
m_Modification:
|
m_Modification:
|
||||||
m_TransformParent: {fileID: 0}
|
m_TransformParent: {fileID: 0}
|
||||||
m_Modifications:
|
m_Modifications:
|
||||||
|
- target: {fileID: 2524396702494263387, guid: 8c6dcd9482c51504e89ba42234369eda,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_IsActive
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 2524396703020600743, guid: 8c6dcd9482c51504e89ba42234369eda,
|
- target: {fileID: 2524396703020600743, guid: 8c6dcd9482c51504e89ba42234369eda,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_IsActive
|
propertyPath: m_IsActive
|
||||||
|
|
@ -1243,18 +1275,18 @@ Transform:
|
||||||
type: 3}
|
type: 3}
|
||||||
m_PrefabInstance: {fileID: 6244917521789390651}
|
m_PrefabInstance: {fileID: 6244917521789390651}
|
||||||
m_PrefabAsset: {fileID: 0}
|
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
|
--- !u!4 &8476357287308305102 stripped
|
||||||
Transform:
|
Transform:
|
||||||
m_CorrespondingSourceObject: {fileID: 2524396702732955125, guid: 8c6dcd9482c51504e89ba42234369eda,
|
m_CorrespondingSourceObject: {fileID: 2524396702732955125, guid: 8c6dcd9482c51504e89ba42234369eda,
|
||||||
type: 3}
|
type: 3}
|
||||||
m_PrefabInstance: {fileID: 6244917521789390651}
|
m_PrefabInstance: {fileID: 6244917521789390651}
|
||||||
m_PrefabAsset: {fileID: 0}
|
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
|
--- !u!1001 &6601841578865518209
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using UniRx;
|
using UniRx;
|
||||||
|
using UniRx.Triggers;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
|
@ -9,11 +10,93 @@ namespace MyGame.Scenes.marketing.Scripts
|
||||||
{
|
{
|
||||||
[SerializeField] private Button vipButton;
|
[SerializeField] private Button vipButton;
|
||||||
[SerializeField] private Animator buttonAnimator;
|
[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