using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement; public class Basket : MonoBehaviour { [Header("Set Dynamically")] public Text scoreGT; float botSpeed = 15f; // Start is called before the first frame update void Start() { if (SceneManager.GetActiveScene().name == "_Scene_2") { return; } // Find a reference to the ScoreCounter GameObject GameObject scoreGO = GameObject.Find("ScoreCounter"); // Get the Text Component of that GameObject scoreGT = scoreGO.GetComponent(); // Set the starting number of points to 0 scoreGT.text = "0"; } // Update is called once per frame void Update() { if (SceneManager.GetActiveScene().name == "_Scene_2") { GetBotInput(); } else { GetPlayerInput(); } } void GetPlayerInput() { // Get the current screen position of the mouse from Input Vector3 mousePos2D = Input.mousePosition; // The Camera's z position sets how far to push the mouse into 3D mousePos2D.z = -Camera.main.transform.position.z; // Convert the point from 2D screen space into 3D game world space Vector3 mousePos3D = Camera.main.ScreenToWorldPoint(mousePos2D); // Move the x position of this Basket to the x position of the Mouse Vector3 pos = this.transform.position; pos.x = mousePos3D.x; this.transform.position = pos; } void GetBotInput() { float basketHeight = this.transform.position.y; float currentMin = 999; float directionToGo = this.transform.position.x; GameObject[] tAppleArray = GameObject.FindGameObjectsWithTag("Apple"); foreach (GameObject tGO in tAppleArray) { if (tGO.transform.position.y - basketHeight < currentMin) { currentMin = tGO.transform.position.y - basketHeight; if (tGO.transform.position.x > this.transform.position.x) { directionToGo = 1; } else { directionToGo = -1; } } } Vector3 pos = transform.position; pos.x += botSpeed * Time.deltaTime * directionToGo; transform.position = pos; } void OnCollisionEnter(Collision coll) { // Find out what hit this basket GameObject collidedWith = coll.gameObject; ApplePicker apScript = Camera.main.GetComponent(); switch (collidedWith.tag) { case "RottenApple": Destroy(collidedWith); if (SceneManager.GetActiveScene().name == "_Scene_2") { return; } apScript.RottenAppleDestroyed(); break; case "GoldenApple": Destroy(collidedWith); apScript.GoldenAppleDestroyed(); break; case "Apple": Destroy(collidedWith); if (SceneManager.GetActiveScene().name == "_Scene_2") { return; } // Parse the text of the scoreGT into an int int score = int.Parse(scoreGT.text); // Add points for catching the apple score += 100; // Convert the score back to a string and display it scoreGT.text = score.ToString(); // Track the high score if (score > HighScore.score) { HighScore.score = score; } break; default: break; } } }