- Home /
Sometimes the ball isn't moving
I'm making golf game and my ball sometimes doesn't want to move. It looks like calling restart method when it's should move.
float force;
private Rigidbody rb;
public GameObject ArrowPrefab;
[HideInInspector]
public GameObject SpawnedArrow;
PowerSlider powerSlider;
PauseMenu pauseMenu;
private float speed;
private Vector3 lastPosition;
public Transform ArrowRespawnPivot;
bool WasMouseHolded = false, Respawn = true;
void Update()
{
speed = rb.velocity.magnitude;
if(speed <= 0.1){
if(Respawn){
Respawn = false;
RestartBall();
}
if(!pauseMenu.IsSomethingOpenedInPauseMenu){
if(Input.GetMouseButton(0)){
WasMouseHolded = true;
powerSlider.CalculateSliderValue();
}
else if(Input.GetMouseButtonUp(0) && WasMouseHolded){
Move();
WasMouseHolded = false;
}
}
if (Input.GetKey ("a")) {
transform.Rotate (0, -1, 0);
SpawnedArrow.transform.Rotate (0, 0, -1);
}
else if (Input.GetKey ("d")) {
transform.Rotate (0, 1, 0);
SpawnedArrow.transform.Rotate (0, 0, 1);
}
}
}
void RestartBall(){
rb.isKinematic = true;
rb.velocity = Vector3.zero;
rb.angularVelocity = Vector3.zero;
gameObject.transform.rotation = Quaternion.identity;
SpawnedArrow = Instantiate(ArrowPrefab, ArrowRespawnPivot.position, Quaternion.Euler(-90, 0 , 180));
lastPosition = transform.position;
rb.isKinematic = false;
}
public void Move(){
rb.isKinematic = false;
force = powerSlider.slider.value;
rb.AddRelativeForce(0,0,force);
Destroy(SpawnedArrow);
powerSlider.RestartSliderValue();
FindObjectOfType<AudioManager>().Play("Putter");
Respawn = true;
}
And power slider script.
public Slider slider;
public float speed = 1;
float pos;
void Start()
{
pos = slider.minValue;
}
public void CalculateSliderValue(){
pos += speed * Time.deltaTime;
slider.value = Mathf.PingPong(pos, slider.maxValue);
if(slider.value <= slider.minValue)
pos = slider.minValue;
}
public void RestartSliderValue(){
slider.value = slider.minValue;
pos = slider.minValue;
}
Comment
Your answer
Follow this Question
Related Questions
RigidBody immediately stops after AddForce 1 Answer
Unity Physics On Input Issue? 0 Answers
Interpolate problem? Jump isn't smooth... 1 Answer
Force to Velocity scaling? 2 Answers