Merge branch 'feature/1.5.1' of bitbucket.org:usaya/popcorn into feature/1.5.1
This commit is contained in:
commit
d519bc9d74
|
|
@ -336,6 +336,80 @@ SpriteRenderer:
|
||||||
m_WasSpriteAssigned: 1
|
m_WasSpriteAssigned: 1
|
||||||
m_MaskInteraction: 0
|
m_MaskInteraction: 0
|
||||||
m_SpriteSortPoint: 0
|
m_SpriteSortPoint: 0
|
||||||
|
--- !u!1 &2116348896259355144
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1534764298133588176}
|
||||||
|
- component: {fileID: 1099241547759812047}
|
||||||
|
- component: {fileID: 7579635455155827063}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: WallCollider
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &1534764298133588176
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2116348896259355144}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 6547169326961555051}
|
||||||
|
m_RootOrder: 3
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &1099241547759812047
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2116348896259355144}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: b62a13975f3446e1b15bf182305ce742, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
itemType: 3
|
||||||
|
point: 0
|
||||||
|
effect: {fileID: 0}
|
||||||
|
--- !u!61 &7579635455155827063
|
||||||
|
BoxCollider2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2116348896259355144}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Density: 1
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IsTrigger: 1
|
||||||
|
m_UsedByEffector: 0
|
||||||
|
m_UsedByComposite: 0
|
||||||
|
m_Offset: {x: 2.464157, y: -0.29294157}
|
||||||
|
m_SpriteTilingProperty:
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
oldSize: {x: 0.56, y: 0.56}
|
||||||
|
newSize: {x: 1.5, y: 1.5}
|
||||||
|
adaptiveTilingThreshold: 0.5
|
||||||
|
drawMode: 0
|
||||||
|
adaptiveTiling: 0
|
||||||
|
m_AutoTiling: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Size: {x: 1.7018661, y: 6.5957174}
|
||||||
|
m_EdgeRadius: 0
|
||||||
--- !u!1 &3506260383647136063
|
--- !u!1 &3506260383647136063
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -1596,6 +1670,80 @@ SpriteRenderer:
|
||||||
m_WasSpriteAssigned: 1
|
m_WasSpriteAssigned: 1
|
||||||
m_MaskInteraction: 0
|
m_MaskInteraction: 0
|
||||||
m_SpriteSortPoint: 0
|
m_SpriteSortPoint: 0
|
||||||
|
--- !u!1 &9202194284233474589
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 2593939739011402922}
|
||||||
|
- component: {fileID: 5868678615845785858}
|
||||||
|
- component: {fileID: 6483093989930334763}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: HoleCollider
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &2593939739011402922
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 9202194284233474589}
|
||||||
|
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_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 6547169326961555051}
|
||||||
|
m_RootOrder: 2
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &5868678615845785858
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 9202194284233474589}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: b62a13975f3446e1b15bf182305ce742, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
itemType: 2
|
||||||
|
point: 0
|
||||||
|
effect: {fileID: 0}
|
||||||
|
--- !u!61 &6483093989930334763
|
||||||
|
BoxCollider2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 9202194284233474589}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_Density: 1
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IsTrigger: 1
|
||||||
|
m_UsedByEffector: 0
|
||||||
|
m_UsedByComposite: 0
|
||||||
|
m_Offset: {x: -0.30281544, y: 3.0435905}
|
||||||
|
m_SpriteTilingProperty:
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
oldSize: {x: 0.56, y: 0.56}
|
||||||
|
newSize: {x: 1.5, y: 1.5}
|
||||||
|
adaptiveTilingThreshold: 0.5
|
||||||
|
drawMode: 0
|
||||||
|
adaptiveTiling: 0
|
||||||
|
m_AutoTiling: 0
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Size: {x: 3.8188686, y: 0.64767385}
|
||||||
|
m_EdgeRadius: 0
|
||||||
--- !u!1001 &4896317741957177885
|
--- !u!1001 &4896317741957177885
|
||||||
PrefabInstance:
|
PrefabInstance:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -1613,20 +1761,35 @@ PrefabInstance:
|
||||||
propertyPath: m_Name
|
propertyPath: m_Name
|
||||||
value: Obstacle hole
|
value: Obstacle hole
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 4498234376221693369, guid: b82d5b841abe54f95aee9a8a5a023f6a,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_Name
|
||||||
|
value: HitCollider
|
||||||
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4498234376221693374, guid: b82d5b841abe54f95aee9a8a5a023f6a,
|
- target: {fileID: 4498234376221693374, guid: b82d5b841abe54f95aee9a8a5a023f6a,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_Size.x
|
propertyPath: m_Size.x
|
||||||
value: 3
|
value: 4.9299707
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4498234376221693374, guid: b82d5b841abe54f95aee9a8a5a023f6a,
|
- target: {fileID: 4498234376221693374, guid: b82d5b841abe54f95aee9a8a5a023f6a,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_Size.y
|
propertyPath: m_Size.y
|
||||||
value: 3
|
value: 1.2895794
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4498234376221693374, guid: b82d5b841abe54f95aee9a8a5a023f6a,
|
- target: {fileID: 4498234376221693374, guid: b82d5b841abe54f95aee9a8a5a023f6a,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_Enabled
|
propertyPath: m_Enabled
|
||||||
value: 0
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 4498234376221693374, guid: b82d5b841abe54f95aee9a8a5a023f6a,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_Offset.x
|
||||||
|
value: -0.022976398
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 4498234376221693374, guid: b82d5b841abe54f95aee9a8a5a023f6a,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_Offset.y
|
||||||
|
value: -3.2332087
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 4888696605717816911, guid: b82d5b841abe54f95aee9a8a5a023f6a,
|
- target: {fileID: 4888696605717816911, guid: b82d5b841abe54f95aee9a8a5a023f6a,
|
||||||
type: 3}
|
type: 3}
|
||||||
|
|
@ -1732,61 +1895,9 @@ Transform:
|
||||||
type: 3}
|
type: 3}
|
||||||
m_PrefabInstance: {fileID: 4896317741957177885}
|
m_PrefabInstance: {fileID: 4896317741957177885}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
--- !u!1 &9052172984657770404 stripped
|
--- !u!4 &6547169326961555051 stripped
|
||||||
GameObject:
|
Transform:
|
||||||
m_CorrespondingSourceObject: {fileID: 4498234376221693369, guid: b82d5b841abe54f95aee9a8a5a023f6a,
|
m_CorrespondingSourceObject: {fileID: 1814670119296341110, guid: b82d5b841abe54f95aee9a8a5a023f6a,
|
||||||
type: 3}
|
type: 3}
|
||||||
m_PrefabInstance: {fileID: 4896317741957177885}
|
m_PrefabInstance: {fileID: 4896317741957177885}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
--- !u!61 &5895574189566282252
|
|
||||||
BoxCollider2D:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 9052172984657770404}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_Density: 1
|
|
||||||
m_Material: {fileID: 0}
|
|
||||||
m_IsTrigger: 0
|
|
||||||
m_UsedByEffector: 0
|
|
||||||
m_UsedByComposite: 0
|
|
||||||
m_Offset: {x: -0.03, y: -0.67}
|
|
||||||
m_SpriteTilingProperty:
|
|
||||||
border: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
pivot: {x: 0, y: 0}
|
|
||||||
oldSize: {x: 0, y: 0}
|
|
||||||
newSize: {x: 0, y: 0}
|
|
||||||
adaptiveTilingThreshold: 0
|
|
||||||
drawMode: 0
|
|
||||||
adaptiveTiling: 0
|
|
||||||
m_AutoTiling: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Size: {x: 3, y: 1.66}
|
|
||||||
m_EdgeRadius: 0
|
|
||||||
--- !u!61 &8766766892135053376
|
|
||||||
BoxCollider2D:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 9052172984657770404}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_Density: 1
|
|
||||||
m_Material: {fileID: 0}
|
|
||||||
m_IsTrigger: 0
|
|
||||||
m_UsedByEffector: 0
|
|
||||||
m_UsedByComposite: 0
|
|
||||||
m_Offset: {x: -0.04, y: 0.83}
|
|
||||||
m_SpriteTilingProperty:
|
|
||||||
border: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
pivot: {x: 0, y: 0}
|
|
||||||
oldSize: {x: 0, y: 0}
|
|
||||||
newSize: {x: 0, y: 0}
|
|
||||||
adaptiveTilingThreshold: 0
|
|
||||||
drawMode: 0
|
|
||||||
adaptiveTiling: 0
|
|
||||||
m_AutoTiling: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Size: {x: 2.12, y: 1.31}
|
|
||||||
m_EdgeRadius: 0
|
|
||||||
|
|
|
||||||
|
|
@ -263,14 +263,26 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
switch (item.ItemType)
|
||||||
|
{
|
||||||
|
case StageItem.Type.Obstacle:
|
||||||
if (player.IsHit)
|
if (player.IsHit)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (item.ItemType == StageItem.Type.Obstacle)
|
|
||||||
{
|
|
||||||
player.Hit(x.ClosestPoint(playerTransform.position));
|
player.Hit(x.ClosestPoint(playerTransform.position));
|
||||||
x.enabled = false;
|
x.enabled = false;
|
||||||
|
break;
|
||||||
|
case StageItem.Type.Item1:
|
||||||
|
break;
|
||||||
|
case StageItem.Type.Hole:
|
||||||
|
player.Hole();
|
||||||
|
break;
|
||||||
|
case StageItem.Type.Wall:
|
||||||
|
player.Wall();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new ArgumentOutOfRangeException();
|
||||||
}
|
}
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
}
|
}
|
||||||
|
|
@ -280,8 +292,7 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
SoundManager.Instance.ChangeVolumeUniqueBGM(1f);
|
SoundManager.Instance.ChangeVolumeUniqueBGM(1f);
|
||||||
stageManager.ResetStage();
|
stageManager.ResetStage();
|
||||||
player.transform.position = characterBeginPos;
|
player.transform.position = characterBeginPos;
|
||||||
player.Stay();
|
player.ResetPlayer();
|
||||||
player.ResetCount();
|
|
||||||
scoreCount.Value = 0;
|
scoreCount.Value = 0;
|
||||||
headerView.ChangeTimeCount(timeLimit);
|
headerView.ChangeTimeCount(timeLimit);
|
||||||
resultManager.Reset();
|
resultManager.Reset();
|
||||||
|
|
|
||||||
|
|
@ -31,25 +31,51 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
private bool isFlying;
|
private bool isFlying;
|
||||||
private bool isResult;
|
private bool isResult;
|
||||||
private bool isHit;
|
private bool isHit;
|
||||||
|
private bool isHole;
|
||||||
|
private bool isWall;
|
||||||
|
private float currentFallSpeed;
|
||||||
public bool IsHit => isHit;
|
public bool IsHit => isHit;
|
||||||
private readonly BoolReactiveProperty isHitStay = new BoolReactiveProperty();
|
private readonly BoolReactiveProperty isHitStay = new BoolReactiveProperty();
|
||||||
private IDisposable hitDisposable;
|
private readonly CompositeDisposable hitCompositeDisposable = new CompositeDisposable();
|
||||||
private IDisposable jumpHoldDisposable;
|
private IDisposable jumpHoldDisposable;
|
||||||
private Coroutine jumpCoroutine;
|
private Coroutine jumpCoroutine;
|
||||||
private Coroutine jumpFallCoroutine;
|
private Coroutine jumpFallCoroutine;
|
||||||
private Vector3 basePos;
|
private Vector3 basePos;
|
||||||
private int count;
|
private readonly ReactiveProperty<int> count = new ReactiveProperty<int>();
|
||||||
public IObservable<Collider2D> OnHitItem => itemHitCollider.OnTriggerEnter2DAsObservable().TakeUntilDestroy(this);
|
public IObservable<Collider2D> OnHitItem => itemHitCollider.OnTriggerEnter2DAsObservable().TakeUntilDestroy(this);
|
||||||
public IObservable<Collider2D> OnHitObstacle => obstacleHitCollider.OnTriggerEnter2DAsObservable().TakeUntilDestroy(this);
|
public IObservable<Collider2D> OnHitObstacle => obstacleHitCollider.OnTriggerEnter2DAsObservable().TakeUntilDestroy(this);
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
isHitStay.AddTo(this);
|
isHitStay.AddTo(this);
|
||||||
|
count.AddTo(this);
|
||||||
|
hitCompositeDisposable.AddTo(this);
|
||||||
animator = GetComponent<Animator>();
|
animator = GetComponent<Animator>();
|
||||||
basePos = transform.localPosition;
|
basePos = transform.localPosition;
|
||||||
|
|
||||||
|
count.Subscribe(x =>
|
||||||
|
{
|
||||||
|
level1.SetActive(x >= level1Value);
|
||||||
|
level2.SetActive(x >= level2Value);
|
||||||
|
level3.SetActive(x >= level3Value);
|
||||||
|
}).AddTo(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Stay(bool force = false)
|
public void ResetPlayer()
|
||||||
|
{
|
||||||
|
Stay();
|
||||||
|
ResetCount();
|
||||||
|
isJump = false;
|
||||||
|
isFall = false;
|
||||||
|
isFlying = false;
|
||||||
|
isHit = false;
|
||||||
|
isHitStay.Value = false;
|
||||||
|
isHole = false;
|
||||||
|
isWall = false;
|
||||||
|
isResult = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Stay(bool force = false)
|
||||||
{
|
{
|
||||||
if (!force && isHit)
|
if (!force && isHit)
|
||||||
{
|
{
|
||||||
|
|
@ -60,7 +86,7 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
|
|
||||||
public void Move()
|
public void Move()
|
||||||
{
|
{
|
||||||
if (isHitStay.Value)
|
if (isHitStay.Value || isWall)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -74,12 +100,11 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
|
|
||||||
public void Jump()
|
public void Jump()
|
||||||
{
|
{
|
||||||
if (isJump || isHit)
|
if (isJump || isHit || isHole)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
SoundManager.Instance.PlaySE("se_minigame_Jump");
|
|
||||||
animator?.Play("Brother_pink_jump", 0, 0);
|
animator?.Play("Brother_pink_jump", 0, 0);
|
||||||
isJump = true;
|
isJump = true;
|
||||||
isFall = false;
|
isFall = false;
|
||||||
|
|
@ -124,7 +149,7 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
if (isFall && active && !isFlying)
|
if (isFall && active && !isFlying)
|
||||||
{
|
{
|
||||||
isFlying = true;
|
isFlying = true;
|
||||||
var currentSpeed = 0f;
|
currentFallSpeed = 0f;
|
||||||
this.SafeStopCoroutine(jumpFallCoroutine);
|
this.SafeStopCoroutine(jumpFallCoroutine);
|
||||||
jumpHoldDisposable?.Dispose();
|
jumpHoldDisposable?.Dispose();
|
||||||
jumpHoldDisposable = this.UpdateAsObservable()
|
jumpHoldDisposable = this.UpdateAsObservable()
|
||||||
|
|
@ -134,16 +159,17 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
// 滑空or落下切り替え
|
// 滑空or落下切り替え
|
||||||
if (isButtonHold)
|
if (isButtonHold)
|
||||||
{
|
{
|
||||||
currentSpeed = -flyingFallSpeed;
|
currentFallSpeed = -flyingFallSpeed;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
currentSpeed -= fallAcceleration * Time.deltaTime;
|
currentFallSpeed -= fallAcceleration * Time.deltaTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
transform.AddLocalPositionY(currentSpeed * Time.deltaTime);
|
transform.AddLocalPositionY(currentFallSpeed * Time.deltaTime);
|
||||||
}, () =>
|
}, () =>
|
||||||
{
|
{
|
||||||
|
currentFallSpeed = 0f;
|
||||||
isJump = false;
|
isJump = false;
|
||||||
isFall = false;
|
isFall = false;
|
||||||
isFlying = false;
|
isFlying = false;
|
||||||
|
|
@ -164,9 +190,9 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
}
|
}
|
||||||
|
|
||||||
Instantiate(hitEffectPrefab, hitPos, Quaternion.identity, transform.parent);
|
Instantiate(hitEffectPrefab, hitPos, Quaternion.identity, transform.parent);
|
||||||
animator?.Play("Brother_pink_FallDown");
|
animator?.Play("Brother_pink_FallDown", 0, 0f);
|
||||||
isHit = true;
|
isHit = true;
|
||||||
hitDisposable?.Dispose();
|
hitCompositeDisposable?.Clear();
|
||||||
|
|
||||||
// ヒット以外動作停止
|
// ヒット以外動作停止
|
||||||
this.SafeStopCoroutine(jumpCoroutine);
|
this.SafeStopCoroutine(jumpCoroutine);
|
||||||
|
|
@ -175,33 +201,35 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
|
|
||||||
var cachePosY = transform.localPosition.y;
|
var cachePosY = transform.localPosition.y;
|
||||||
var diffHeight = cachePosY - basePos.y;
|
var diffHeight = cachePosY - basePos.y;
|
||||||
jumpCoroutine = this.CallLerp(diffHeight == 0f ? 0f : hitJumpTime, t =>
|
var groundPos = isHole ? cachePosY : basePos.y;
|
||||||
|
jumpCoroutine = this.CallLerp(diffHeight <= 0f ? 0f : hitJumpTime, t =>
|
||||||
{
|
{
|
||||||
transform.SetLocalPositionY(cachePosY + hitAnimationCurve.Evaluate(t));
|
transform.SetLocalPositionY(cachePosY + hitAnimationCurve.Evaluate(t));
|
||||||
}, () =>
|
}, () =>
|
||||||
{
|
{
|
||||||
// 落下時間不定によりアニメ再生停止
|
// 落下時間不定によりアニメ再生停止
|
||||||
animator.speed = 0f;
|
animator.speed = 0f;
|
||||||
var currentSpeed = 0f;
|
currentFallSpeed = 0f;
|
||||||
this.UpdateAsObservable()
|
this.UpdateAsObservable()
|
||||||
.TakeWhile(_ => transform.localPosition.y > basePos.y)
|
.TakeWhile(_ => transform.localPosition.y > groundPos)
|
||||||
.Subscribe(_ =>
|
.Subscribe(_ =>
|
||||||
{
|
{
|
||||||
currentSpeed -= fallAcceleration * Time.deltaTime;
|
currentFallSpeed -= fallAcceleration * Time.deltaTime;
|
||||||
transform.AddLocalPositionY(currentSpeed * Time.deltaTime);
|
transform.AddLocalPositionY(currentFallSpeed * Time.deltaTime);
|
||||||
}, () =>
|
}, () =>
|
||||||
{
|
{
|
||||||
// 31フレームまでが落下32からズサー
|
// 31フレームまでが落下32からズサー
|
||||||
animator?.PlayInFixedTime("Brother_pink_FallDown", 0, .5f);
|
animator?.PlayInFixedTime("Brother_pink_FallDown", 0, .5f);
|
||||||
animator.speed = 1f;
|
animator.speed = 1f;
|
||||||
transform.SetLocalPositionY(basePos.y);
|
transform.SetLocalPositionY(groundPos);
|
||||||
|
currentFallSpeed = 0f;
|
||||||
isJump = false;
|
isJump = false;
|
||||||
isFall = false;
|
isFall = false;
|
||||||
isFlying = false;
|
isFlying = false;
|
||||||
this.CallWaitForSeconds(hitTime, () =>
|
Observable.Timer(TimeSpan.FromSeconds(hitTime)).Subscribe(_ => { }, () =>
|
||||||
{
|
{
|
||||||
isHitStay.Value = true;
|
isHitStay.Value = true;
|
||||||
this.CallWaitForSeconds(hitWaitTime, () =>
|
Observable.Timer(TimeSpan.FromSeconds(hitWaitTime)).Subscribe(_ => { }, () =>
|
||||||
{
|
{
|
||||||
isHit = false;
|
isHit = false;
|
||||||
isHitStay.Value = false;
|
isHitStay.Value = false;
|
||||||
|
|
@ -213,10 +241,39 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
{
|
{
|
||||||
Stay();
|
Stay();
|
||||||
}
|
}
|
||||||
|
}).AddTo(hitCompositeDisposable);
|
||||||
|
}).AddTo(hitCompositeDisposable);
|
||||||
|
}).AddTo(hitCompositeDisposable);
|
||||||
});
|
});
|
||||||
});
|
}
|
||||||
|
|
||||||
|
public void Hole()
|
||||||
|
{
|
||||||
|
// 落下開始
|
||||||
|
isHole = true;
|
||||||
|
|
||||||
|
// animator?.Play("Brother_pink_main_stay");
|
||||||
|
isJump = false;
|
||||||
|
isFall = false;
|
||||||
|
isFlying = false;
|
||||||
|
isHit = false;
|
||||||
|
isHitStay.Value = false;
|
||||||
|
hitCompositeDisposable?.Clear();
|
||||||
|
jumpHoldDisposable?.Dispose();
|
||||||
|
jumpHoldDisposable = this.UpdateAsObservable()
|
||||||
|
// .TakeWhile(_ => transform.localPosition.y > basePos.y)
|
||||||
|
.Subscribe(_ =>
|
||||||
|
{
|
||||||
|
currentFallSpeed -= fallAcceleration * Time.deltaTime;
|
||||||
|
transform.AddLocalPositionY(currentFallSpeed * Time.deltaTime);
|
||||||
|
}, () =>
|
||||||
|
{
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
});
|
}
|
||||||
|
|
||||||
|
public void Wall()
|
||||||
|
{
|
||||||
|
isWall = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Result()
|
public void Result()
|
||||||
|
|
@ -233,21 +290,12 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
public void AddCount()
|
public void AddCount()
|
||||||
{
|
{
|
||||||
SoundManager.Instance.PlaySE("se_minigame_ItemGet");
|
SoundManager.Instance.PlaySE("se_minigame_ItemGet");
|
||||||
count++;
|
count.Value++;
|
||||||
UpdateCount();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateCount()
|
private void ResetCount()
|
||||||
{
|
{
|
||||||
level1.SetActive(count >= level1Value);
|
count.Value = 0;
|
||||||
level2.SetActive(count >= level2Value);
|
|
||||||
level3.SetActive(count >= level3Value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ResetCount()
|
|
||||||
{
|
|
||||||
count = 0;
|
|
||||||
UpdateCount();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -11,6 +11,8 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
{
|
{
|
||||||
Item1,
|
Item1,
|
||||||
Obstacle,
|
Obstacle,
|
||||||
|
Hole,
|
||||||
|
Wall,
|
||||||
}
|
}
|
||||||
|
|
||||||
[SerializeField] private Type itemType;
|
[SerializeField] private Type itemType;
|
||||||
|
|
@ -30,7 +32,8 @@ namespace MyGame.Scenes.MiniGame.Scripts
|
||||||
if (effect != null) effect.SetActive(true);
|
if (effect != null) effect.SetActive(true);
|
||||||
break;
|
break;
|
||||||
case Type.Obstacle:
|
case Type.Obstacle:
|
||||||
break;
|
case Type.Hole:
|
||||||
|
case Type.Wall:
|
||||||
default:
|
default:
|
||||||
throw new ArgumentOutOfRangeException();
|
throw new ArgumentOutOfRangeException();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue