46 lines
1.2 KiB
C#
46 lines
1.2 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class WellController : MonoBehaviour
|
|
{
|
|
public GameObject node;
|
|
public int numberOfNodes = 5;
|
|
|
|
private Transform player;
|
|
|
|
private Vector3 right;
|
|
private Vector3 up;
|
|
|
|
private void Awake()
|
|
{
|
|
|
|
}
|
|
|
|
public void StartMinigame()
|
|
{
|
|
player = GameObject.FindGameObjectWithTag("MainCamera").transform;
|
|
Vector3 nodeSpawn = player.transform.position + (player.forward * 0.5f);
|
|
nodeSpawn.y = player.transform.position.y;
|
|
up = player.transform.up;
|
|
right = player.transform.right;
|
|
StartCoroutine(SpawnNode(nodeSpawn, 0));
|
|
}
|
|
|
|
IEnumerator SpawnNode(Vector3 nodeSpawn, int i)
|
|
{
|
|
if(i == numberOfNodes) yield break;
|
|
|
|
GameObject tempNode = Instantiate(node, nodeSpawn, Quaternion.identity);
|
|
tempNode.GetComponent<AudioSource>().pitch += (i * (1f / numberOfNodes));
|
|
nodeSpawn = nodeSpawn + right * 0.2f + Random.Range(-0.2f, 0.2f) * up;
|
|
yield return new WaitForSeconds(2f);
|
|
StartCoroutine(SpawnNode(nodeSpawn, i+1));
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
transform.Rotate(0.5f, 0.5f, 0.5f);
|
|
}
|
|
}
|