using System.Collections;using System.Collections.Generic;using UnityEngine;
public class PhysicsBall : MonoBehaviour { public GameObject ball; public GameObject ballRb; public GameObject floor; Vector3 posOriginal; [Range(.05f, .5f)] float gravityMagnitude = 9.8f; bool ynCollision = false; Vector3 velocity = Vector3.zero;
void Start () { posOriginal = ball.transform.position; Debug.Log("gravity:" + Physics.gravity.magnitude + "\n"); Debug.Log("deltaTime:" + Time.deltaTime + "\n"); InvokeRepeating("ResetBall", 6, 6); } void Update () { UpdateCollision(); if (ynCollision == true) return; UpdateGravity(); }
void UpdateGravity() { velocity.y -= gravityMagnitude * Time.deltaTime; ball.transform.position += velocity * Time.deltaTime; }
void UpdateCollision() { float distY = Mathf.Abs(ball.transform.position.y - floor.transform.position.y - ball.transform.localScale.y/2 - floor.transform.localScale.y/2); if (distY < .1f) { ynCollision = true; } }
void ResetBall() { ball.transform.position = posOriginal; velocity = Vector3.zero; ballRb.transform.position = posOriginal + new Vector3(0, 0, 3); ynCollision = false; }}