parent
d4fe831535
commit
bb9de20d39
|
@ -0,0 +1,105 @@
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class Bola : MonoBehaviour
|
||||||
|
{
|
||||||
|
public GameController gameController;
|
||||||
|
public GerakanRaket playerRacket;
|
||||||
|
public AudioClip hitMejaSoundClip;
|
||||||
|
public float volume = 4.0f;
|
||||||
|
Vector3 initialPos;
|
||||||
|
bool lastHitPlayerMeja = false;
|
||||||
|
bool lastHitBotMeja = false;
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
initialPos = transform.position;
|
||||||
|
GetComponent<Rigidbody>().useGravity = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnCollisionEnter(Collision collision)
|
||||||
|
{
|
||||||
|
if (collision.gameObject.CompareTag("PlayerMeja"))
|
||||||
|
{
|
||||||
|
lastHitPlayerMeja = true;
|
||||||
|
lastHitBotMeja = false;
|
||||||
|
if (hitMejaSoundClip != null)
|
||||||
|
{
|
||||||
|
AudioSource.PlayClipAtPoint(hitMejaSoundClip, transform.position, volume);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (collision.gameObject.CompareTag("BotMeja"))
|
||||||
|
{
|
||||||
|
lastHitBotMeja = true;
|
||||||
|
lastHitPlayerMeja = false;
|
||||||
|
if (hitMejaSoundClip != null)
|
||||||
|
{
|
||||||
|
AudioSource.PlayClipAtPoint(hitMejaSoundClip, transform.position, volume);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (collision.gameObject.CompareTag("Out"))
|
||||||
|
{
|
||||||
|
if (lastHitPlayerMeja)
|
||||||
|
{
|
||||||
|
gameController.AddScore("Bot", 1);
|
||||||
|
ResetBolaPosition(8.1f);
|
||||||
|
}
|
||||||
|
else if (lastHitBotMeja)
|
||||||
|
{
|
||||||
|
gameController.AddScore("Player", 1);
|
||||||
|
ResetBolaPosition(-4f);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ResetBolaPosition(initialPos.z);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (playerRacket != null)
|
||||||
|
{
|
||||||
|
playerRacket.ResetPlayerPosition();
|
||||||
|
}
|
||||||
|
|
||||||
|
ResetBots();
|
||||||
|
|
||||||
|
lastHitPlayerMeja = false;
|
||||||
|
lastHitBotMeja = false;
|
||||||
|
}
|
||||||
|
else if (collision.transform.CompareTag("Player"))
|
||||||
|
{
|
||||||
|
gameController.SetLastHitter("Player");
|
||||||
|
}
|
||||||
|
else if (collision.transform.CompareTag("Bot"))
|
||||||
|
{
|
||||||
|
gameController.SetLastHitter("Bot");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ResetBola()
|
||||||
|
{
|
||||||
|
transform.position = initialPos;
|
||||||
|
GetComponent<Rigidbody>().velocity = Vector3.zero;
|
||||||
|
GetComponent<Rigidbody>().useGravity = false;
|
||||||
|
lastHitPlayerMeja = false;
|
||||||
|
lastHitBotMeja = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ResetBolaPosition(float zPosition)
|
||||||
|
{
|
||||||
|
Vector3 newPosition = new Vector3(0.86f, 5.65f, zPosition);
|
||||||
|
transform.position = newPosition;
|
||||||
|
|
||||||
|
GetComponent<Rigidbody>().velocity = Vector3.zero;
|
||||||
|
GetComponent<Rigidbody>().useGravity = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ResetBots()
|
||||||
|
{
|
||||||
|
GameObject[] bots = GameObject.FindGameObjectsWithTag("Bot");
|
||||||
|
foreach (GameObject bot in bots)
|
||||||
|
{
|
||||||
|
// Reset posisi bot
|
||||||
|
bot.transform.position = new Vector3(0.85251f, 5.428f, 8.41f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,72 @@
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.Audio;
|
||||||
|
using TMPro;
|
||||||
|
|
||||||
|
public class SettingsMenu : MonoBehaviour
|
||||||
|
{
|
||||||
|
public AudioMixer audioMixer;
|
||||||
|
|
||||||
|
public TMP_Dropdown qualityDropdown;
|
||||||
|
public TMP_Dropdown resolutionDropdown;
|
||||||
|
|
||||||
|
Resolution[] resolutions;
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
resolutions = Screen.resolutions;
|
||||||
|
|
||||||
|
resolutionDropdown.ClearOptions();
|
||||||
|
qualityDropdown.ClearOptions();
|
||||||
|
|
||||||
|
List<string> resolutionOptions = new List<string>();
|
||||||
|
List<string> qualityOptions = new List<string>();
|
||||||
|
|
||||||
|
int currentResolutionIndex = 0;
|
||||||
|
|
||||||
|
for (int i = 0; i < resolutions.Length; i++)
|
||||||
|
{
|
||||||
|
string resolutionOption = resolutions[i].width + " x " + resolutions[i].height;
|
||||||
|
resolutionOptions.Add(resolutionOption);
|
||||||
|
|
||||||
|
if (resolutions[i].width == Screen.currentResolution.width &&
|
||||||
|
resolutions[i].height == Screen.currentResolution.height)
|
||||||
|
{
|
||||||
|
currentResolutionIndex = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resolutionDropdown.AddOptions(resolutionOptions);
|
||||||
|
resolutionDropdown.value = currentResolutionIndex;
|
||||||
|
resolutionDropdown.RefreshShownValue();
|
||||||
|
|
||||||
|
for (int i = 0; i < QualitySettings.names.Length; i++)
|
||||||
|
{
|
||||||
|
qualityOptions.Add(QualitySettings.names[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
qualityDropdown.AddOptions(qualityOptions);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetResolution(int resolutionIndex)
|
||||||
|
{
|
||||||
|
Resolution resolution = resolutions[resolutionIndex];
|
||||||
|
Screen.SetResolution(resolution.width, resolution.height, Screen.fullScreen);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetVolume(float volume)
|
||||||
|
{
|
||||||
|
audioMixer.SetFloat("Volume", volume);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetQuality(int qualityIndex)
|
||||||
|
{
|
||||||
|
QualitySettings.SetQualityLevel(qualityIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetFullscreen(bool isFullscreen)
|
||||||
|
{
|
||||||
|
Screen.fullScreen = isFullscreen;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,56 @@
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class BotEasy : MonoBehaviour
|
||||||
|
{
|
||||||
|
float speed = 0.5f;
|
||||||
|
public Transform Bola;
|
||||||
|
public Transform hitTarget;
|
||||||
|
public AudioClip hitSoundClip;
|
||||||
|
|
||||||
|
float force = 6;
|
||||||
|
float jarakZDariBot = 7.5f;
|
||||||
|
float zMin = 7.2f;
|
||||||
|
float zMax = 9f;
|
||||||
|
|
||||||
|
Vector3 targetPosition;
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
targetPosition = transform.position;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
Move();
|
||||||
|
|
||||||
|
hitTarget.position = new Vector3(transform.position.x, transform.position.y, transform.position.z - jarakZDariBot);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Move()
|
||||||
|
{
|
||||||
|
targetPosition.x = Bola.position.x;
|
||||||
|
float targetZ = Mathf.Clamp(Bola.position.z, zMin, zMax);
|
||||||
|
targetPosition.z = targetZ;
|
||||||
|
transform.position = Vector3.MoveTowards(transform.position, targetPosition, speed * Time.deltaTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnTriggerEnter(Collider other)
|
||||||
|
{
|
||||||
|
if (other.CompareTag("Bola"))
|
||||||
|
{
|
||||||
|
Vector3 dir = hitTarget.position - other.transform.position;
|
||||||
|
Rigidbody bolaRigidbody = other.GetComponent<Rigidbody>();
|
||||||
|
|
||||||
|
bolaRigidbody.useGravity = true;
|
||||||
|
|
||||||
|
bolaRigidbody.velocity = dir.normalized * force + new Vector3(0, 6, 0);
|
||||||
|
|
||||||
|
if (hitSoundClip != null)
|
||||||
|
{
|
||||||
|
AudioSource.PlayClipAtPoint(hitSoundClip, transform.position);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,56 @@
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class BotHard : MonoBehaviour
|
||||||
|
{
|
||||||
|
float speed = 0.9f;
|
||||||
|
public Transform Bola;
|
||||||
|
public Transform hitTarget;
|
||||||
|
public AudioClip hitSoundClip;
|
||||||
|
|
||||||
|
float force = 6;
|
||||||
|
float jarakZDariBot = 7.5f;
|
||||||
|
float zMin = 7.2f;
|
||||||
|
float zMax = 9f;
|
||||||
|
|
||||||
|
Vector3 targetPosition;
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
targetPosition = transform.position;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
Move();
|
||||||
|
|
||||||
|
hitTarget.position = new Vector3(transform.position.x, transform.position.y, transform.position.z - jarakZDariBot);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Move()
|
||||||
|
{
|
||||||
|
targetPosition.x = Bola.position.x;
|
||||||
|
float targetZ = Mathf.Clamp(Bola.position.z, zMin, zMax);
|
||||||
|
targetPosition.z = targetZ;
|
||||||
|
transform.position = Vector3.MoveTowards(transform.position, targetPosition, speed * Time.deltaTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnTriggerEnter(Collider other)
|
||||||
|
{
|
||||||
|
if (other.CompareTag("Bola"))
|
||||||
|
{
|
||||||
|
Vector3 dir = hitTarget.position - other.transform.position;
|
||||||
|
Rigidbody bolaRigidbody = other.GetComponent<Rigidbody>();
|
||||||
|
|
||||||
|
bolaRigidbody.useGravity = true;
|
||||||
|
|
||||||
|
bolaRigidbody.velocity = dir.normalized * force + new Vector3(0, 6, 0);
|
||||||
|
|
||||||
|
if (hitSoundClip != null)
|
||||||
|
{
|
||||||
|
AudioSource.PlayClipAtPoint(hitSoundClip, transform.position);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,56 @@
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class botMedium : MonoBehaviour
|
||||||
|
{
|
||||||
|
float speed = 0.7f;
|
||||||
|
public Transform Bola;
|
||||||
|
public Transform hitTarget;
|
||||||
|
public AudioClip hitSoundClip;
|
||||||
|
|
||||||
|
float force = 6;
|
||||||
|
float jarakZDariBot = 7.5f;
|
||||||
|
float zMin = 7.2f;
|
||||||
|
float zMax = 9f;
|
||||||
|
|
||||||
|
Vector3 targetPosition;
|
||||||
|
|
||||||
|
void Start()
|
||||||
|
{
|
||||||
|
targetPosition = transform.position;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
Move();
|
||||||
|
|
||||||
|
hitTarget.position = new Vector3(transform.position.x, transform.position.y, transform.position.z - jarakZDariBot);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Move()
|
||||||
|
{
|
||||||
|
targetPosition.x = Bola.position.x;
|
||||||
|
float targetZ = Mathf.Clamp(Bola.position.z, zMin, zMax);
|
||||||
|
targetPosition.z = targetZ;
|
||||||
|
transform.position = Vector3.MoveTowards(transform.position, targetPosition, speed * Time.deltaTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnTriggerEnter(Collider other)
|
||||||
|
{
|
||||||
|
if (other.CompareTag("Bola"))
|
||||||
|
{
|
||||||
|
Vector3 dir = hitTarget.position - other.transform.position;
|
||||||
|
Rigidbody bolaRigidbody = other.GetComponent<Rigidbody>();
|
||||||
|
|
||||||
|
bolaRigidbody.useGravity = true;
|
||||||
|
|
||||||
|
bolaRigidbody.velocity = dir.normalized * force + new Vector3(0, 6, 0);
|
||||||
|
|
||||||
|
if (hitSoundClip != null)
|
||||||
|
{
|
||||||
|
AudioSource.PlayClipAtPoint(hitSoundClip, transform.position);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue