You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
1.7 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BowlingManager : MonoBehaviour
{
[Header("Bowling Ball Settings")]
public GameObject bowlingBall;
[Header("Bowling Pin Settings")]
public Vector3 pinCenter;
public float pinSpaceX;
public float pinSpaceZ;
public List<GameObject> pins = new List<GameObject>();
public Vector3 ballPosition;
private void Start()
{
ballPosition = bowlingBall.transform.position;
ResetPins();
}
public void ResetBall()
{
bowlingBall.GetComponent<Rigidbody>().isKinematic = true;
bowlingBall.transform.position = ballPosition;
bowlingBall.GetComponent<Rigidbody>().isKinematic = false;
}
public void ResetPins()
{
int max = (pins.Count / 2) - 2;
int topRow = (pins.Count / 2) - 2; ;
int row = 0;
float currentX = pinCenter.x;
float currentZ = pinCenter.z;
for (int i = 0; i < pins.Count; i++)
{
pins[i].GetComponent<Rigidbody>().isKinematic = true;
pins[i].transform.rotation = Quaternion.Euler(0, 0, 0);
pins[i].transform.position = new Vector3(currentX, pinCenter.y, currentZ);
pins[i].GetComponent<Rigidbody>().isKinematic = false;
currentZ += pinSpaceZ;
if (row == topRow)
{
topRow--;
row = 0;
currentZ = pinCenter.z + ((pinSpaceZ / 2) * (max - topRow));
currentX = pinCenter.x + (pinSpaceX * (max - topRow));
}
else
{
row++;
}
}
}
}