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.
		
		
		
		
		
			
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
using UnityEngine;
 | 
						|
using System.Collections;
 | 
						|
using UnityEngine.SceneManagement;
 | 
						|
 | 
						|
namespace Valve.VR.InteractionSystem.Sample
 | 
						|
{
 | 
						|
    public class ProceduralHats : MonoBehaviour
 | 
						|
    {
 | 
						|
        public GameObject[] hats;
 | 
						|
 | 
						|
        public float hatSwitchTime;
 | 
						|
 | 
						|
        private void Start()
 | 
						|
        {
 | 
						|
            SwitchToHat(0);
 | 
						|
        }
 | 
						|
 | 
						|
        private void OnEnable()
 | 
						|
        {
 | 
						|
            StartCoroutine(HatSwitcher());
 | 
						|
        }
 | 
						|
 | 
						|
        private IEnumerator HatSwitcher()
 | 
						|
        {
 | 
						|
            while (true)
 | 
						|
            {
 | 
						|
                yield return new WaitForSeconds(hatSwitchTime);
 | 
						|
                //delay before trying to switch
 | 
						|
 | 
						|
                Transform cam = Camera.main.transform;
 | 
						|
                while (Vector3.Angle(cam.forward, transform.position - cam.position) < 90)
 | 
						|
                {
 | 
						|
                    //wait for player to look away
 | 
						|
                    yield return new WaitForSeconds(0.1f);
 | 
						|
                }
 | 
						|
 | 
						|
                ChooseHat();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        private void ChooseHat()
 | 
						|
        {
 | 
						|
            SwitchToHat(Random.Range(0, hats.Length));
 | 
						|
        }
 | 
						|
 | 
						|
        private void SwitchToHat(int hat)
 | 
						|
        {
 | 
						|
            for (int hatIndex = 0; hatIndex < hats.Length; hatIndex++)
 | 
						|
            {
 | 
						|
                hats[hatIndex].SetActive(hat == hatIndex);
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |