add timer

This commit is contained in:
kimura 2022-06-14 10:26:09 +09:00
parent e14bf163c5
commit f77c60b67c
3 changed files with 377 additions and 3 deletions

View File

@ -965,6 +965,136 @@ SpriteRenderer:
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1001 &470047097
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 987137220}
m_Modifications:
- target: {fileID: 4337906542777032001, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 4337906542777032001, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 4337906542777032001, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4337906542777032001, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_AnchorMax.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4337906542777032001, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4337906542777032001, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4337906542777032001, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4337906542777032001, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4337906542777032001, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_SizeDelta.y
value: 92
objectReference: {fileID: 0}
- target: {fileID: 4337906542777032001, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4337906542777032001, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4337906542777032001, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4337906542777032001, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4337906542777032001, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4337906542777032001, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4337906542777032001, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4337906542777032001, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 42
objectReference: {fileID: 0}
- target: {fileID: 4337906542777032001, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_AnchoredPosition.y
value: -36
objectReference: {fileID: 0}
- target: {fileID: 4337906542777032001, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4337906542777032001, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4337906542777032001, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4337906542777032002, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_Name
value: Icon_Coin
objectReference: {fileID: 0}
- target: {fileID: 4337906542777032002, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: a768b64223c5940c2b597bf37dd8fa92, type: 3}
--- !u!224 &470047098 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 4337906542777032001, guid: a768b64223c5940c2b597bf37dd8fa92,
type: 3}
m_PrefabInstance: {fileID: 470047097}
m_PrefabAsset: {fileID: 0}
--- !u!1 &515787033
GameObject:
m_ObjectHideFlags: 0
@ -1835,6 +1965,123 @@ MonoBehaviour:
m_OnValueChanged:
m_PersistentCalls:
m_Calls: []
--- !u!1 &987137219
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 987137220}
- component: {fileID: 987137224}
- component: {fileID: 987137223}
- component: {fileID: 987137222}
- component: {fileID: 987137221}
m_Layer: 5
m_Name: StockCoin (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &987137220
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 987137219}
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:
- {fileID: 470047098}
- {fileID: 1801643597}
m_Father: {fileID: 2098933369}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -26, y: -39}
m_SizeDelta: {x: 0, y: 74}
m_Pivot: {x: 1, y: 1}
--- !u!114 &987137221
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 987137219}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 42
m_Right: 30
m_Top: -10
m_Bottom: 0
m_ChildAlignment: 0
m_Spacing: 54
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 1
m_ChildControlWidth: 1
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
--- !u!114 &987137222
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 987137219}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalFit: 2
m_VerticalFit: 0
--- !u!114 &987137223
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 987137219}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: ff4d597826f53ac49821fc3d60148965, type: 3}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &987137224
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 987137219}
m_CullTransparentMesh: 0
--- !u!1 &1021083738
GameObject:
m_ObjectHideFlags: 0
@ -3143,6 +3390,84 @@ Transform:
m_Father: {fileID: 1175036174}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1801643596
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1801643597}
- component: {fileID: 1801643599}
- component: {fileID: 1801643598}
m_Layer: 5
m_Name: Text_StockCoin
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1801643597
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1801643596}
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: []
m_Father: {fileID: 987137220}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1801643598
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1801643596}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 351b4ffae35e149bf81549887561d561, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.3372549, g: 0.21960784, b: 0.14117648, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 12800000, guid: b5532e9ce15694f55a0893a76a98cd78, type: 3}
m_FontSize: 45
m_FontStyle: 1
m_BestFit: 1
m_MinSize: 45
m_MaxSize: 45
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: 12345
--- !u!222 &1801643599
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1801643596}
m_CullTransparentMesh: 0
--- !u!1 &1804772772
GameObject:
m_ObjectHideFlags: 0
@ -3514,9 +3839,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 96c2b99ef2e6c42dd998b782def0bd0e, type: 3}
m_Name:
m_EditorClassIdentifier:
speed: 2
jumpTime: 0.8
jumpHeight: 2
speed: 3
jumpTime: 1.2
jumpHeight: 4
timeLimit: 30
headerView: {fileID: 2098933370}
characterTransform: {fileID: 519190655}
--- !u!4 &1870432534
@ -4303,6 +4629,7 @@ RectTransform:
- {fileID: 1133979116}
- {fileID: 1021083739}
- {fileID: 3821169997422944309}
- {fileID: 987137220}
m_Father: {fileID: 676036207}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -4324,6 +4651,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
text: {fileID: 75320963}
timeText: {fileID: 1801643598}
--- !u!1 &97244992320939076
GameObject:
m_ObjectHideFlags: 0

View File

@ -19,9 +19,13 @@ namespace MyGame.Scenes.MiniGame.Scripts
[SerializeField] private float speed = 1f;
[SerializeField] private float jumpTime = .8f;
[SerializeField] private float jumpHeight = 2f;
[SerializeField] private float timeLimit = 30f;
[SerializeField] private HeaderView headerView;
[SerializeField] private Transform characterTransform;
private readonly ReactiveProperty<State> state = new ReactiveProperty<State>();
private IDisposable timerDisposable;
// Start is called before the first frame update
private void Start()
{
@ -51,6 +55,35 @@ namespace MyGame.Scenes.MiniGame.Scripts
Jump();
}
}).AddTo(this);
state.Subscribe(x =>
{
switch (x)
{
case State.Ready:
headerView.ResetView();
headerView.ChangeTimeCount(timeLimit);
break;
case State.Play:
timerDisposable?.Dispose();
timerDisposable = Observable.Timer(TimeSpan.Zero, TimeSpan.FromSeconds(1f))
.Select(time => (int)(timeLimit - time))
.TakeWhile(time => time > 0)
.Subscribe(time =>
{
headerView.ChangeTimeCount(time);
}, () =>
{
}).AddTo(this);
break;
case State.Success:
break;
case State.Failure:
break;
default:
throw new ArgumentOutOfRangeException(nameof(x), x, null);
}
}).AddTo(this);
characterTransform.OnTriggerEnter2DAsObservable().Subscribe(x =>
{

View File

@ -8,25 +8,38 @@ namespace MyGame.Scenes.MiniGame.Scripts
public class HeaderView : MonoBehaviour
{
[SerializeField] private Text text;
[SerializeField] private Text timeText;
private readonly ReactiveProperty<int> itemCount = new ReactiveProperty<int>();
private readonly ReactiveProperty<float> timeCount = new ReactiveProperty<float>();
private void Start()
{
itemCount.AddTo(this);
timeCount.AddTo(this);
itemCount.Subscribe(x =>
{
text.text = $"{x}";
}).AddTo(this);
timeCount.Subscribe(x =>
{
timeText.text = $"のこり{x:0}秒";
}).AddTo(this);
}
public void ResetView()
{
itemCount.Value = 0;
timeCount.Value = 0;
}
public void AddCount()
{
itemCount.Value++;
}
public void ChangeTimeCount(float newTime)
{
timeCount.Value = newTime;
}
}
}