ResourceMaker démarre le yield en hauteur, puis il descend vers le sol

This commit is contained in:
Ader Alisma 01 2023-06-25 18:25:08 -04:00
parent e55b1c8507
commit f9e9abe43a

View File

@ -21,6 +21,9 @@ public class ResourceMaker : MonoBehaviour
{ {
_resourceManagerInstance = ResourceManager.Instance; _resourceManagerInstance = ResourceManager.Instance;
_startPosition = transform.position; _startPosition = transform.position;
transform.position = new Vector2(transform.position.x, transform.position.y + 0.5f);
gameObject.GetComponent<Rigidbody2D>().AddForce(transform.up * 20.0f);
gameObject.GetComponent<Rigidbody2D>().gravityScale = 0.1f;
} }
/// <summary> /// <summary>
@ -28,13 +31,19 @@ public class ResourceMaker : MonoBehaviour
/// </summary> /// </summary>
private void Update() private void Update()
{ {
if (Vector2.Distance(transform.position, _startPosition) < 0.01f)
{
gameObject.GetComponent<Rigidbody2D>().gravityScale = 0.0f;
gameObject.GetComponent<Rigidbody2D>().velocity = Vector2.zero;
}
if (_isPlaying) if (_isPlaying)
{ {
_timePassed += Time.deltaTime; _timePassed += Time.deltaTime;
float duration = _timePassed / _desiredTime; float duration = _timePassed / _desiredTime;
duration = duration * duration * (3.0f - 2.0f * duration); duration = duration * duration * (3.0f - 2.0f * duration);
transform.position = Vector2.Lerp(_startPosition, _endPosition, duration); transform.position = Vector2.Lerp(transform.position, _endPosition, duration);
if(Vector2.Distance(transform.position,_endPosition) < 0.01f) if(Vector2.Distance(transform.position,_endPosition) < 0.001f)
{ {
_isPlaying = false; _isPlaying = false;
switch (_resourceChoice) switch (_resourceChoice)
@ -54,5 +63,9 @@ public class ResourceMaker : MonoBehaviour
} }
} }
public void GenerateResource(){_isPlaying = true;} public void GenerateResource(){
_isPlaying = true;
gameObject.GetComponent<Rigidbody2D>().gravityScale = 0.0f;
gameObject.GetComponent<Rigidbody2D>().velocity = Vector2.zero;
}
} }