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