apple-picker/Assets/Scripts/AppleTree.cs
2024-02-08 03:30:36 -06:00

54 lines
1.5 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AppleTree : MonoBehaviour
{
[Header("Set in Inspector")]
// Prefab for instantiating apples
public GameObject applePrefab;
// Speed at which the AppleTree moves
public float speed = 1f;
// Distance where AppleTree turns around
public float leftAndRightEdge = 10f;
// Chance that the AppleTree will change directions
public float chanceToChangeDirections = 0.1f;
// Rate at which Apples will be instantiated
public float secondsBetweenAppleDrops = 1f;
// Start is called before the first frame update
void Start()
{
// Dropping apples every second
Invoke("DropApple", 2f);
}
void DropApple() {
GameObject apple = Instantiate<GameObject>(applePrefab);
apple.transform.position = transform.position;
Invoke("DropApple", secondsBetweenAppleDrops);
}
// Update is called once per frame
void Update()
{
// Basic Movement
Vector3 pos = transform.position;
pos.x += speed * Time.deltaTime;
transform.position = pos;
// Changing Direction
if (pos.x < -leftAndRightEdge) {
speed = Mathf.Abs(speed);
} else if (pos.x > leftAndRightEdge) {
speed = -Mathf.Abs(speed);
}
}
// Update exactly 50 times per second
void FixedUpdate()
{
if (Random.value < chanceToChangeDirections) {
speed *= -1;
}
}
}