63 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			63 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
								 | 
							
								// Curved World <http://u3d.as/1W8h>
							 | 
						||
| 
								 | 
							
								// Copyright (c) Amazing Assets <https://amazingassets.world>
							 | 
						||
| 
								 | 
							
								 
							 | 
						||
| 
								 | 
							
								using UnityEngine;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace AmazingAssets.CurvedWorld.Examples
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    public class CarSpawner : MonoBehaviour
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        public GameObject[] cars;
							 | 
						||
| 
								 | 
							
								        public float spawnRate = 1;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        [Range(0f, 1f)]
							 | 
						||
| 
								 | 
							
								        public float spawnRandomizer = 0.5f;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        [Space(10)]
							 | 
						||
| 
								 | 
							
								        public Vector3 positionRandomizer = new Vector3(0, 0, 0);
							 | 
						||
| 
								 | 
							
								        public Vector3 rotation = new Vector3(0, 90, 0);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        [Space(10)]
							 | 
						||
| 
								 | 
							
								        public Vector3 moveDirection = new Vector3(1, 0, 0);
							 | 
						||
| 
								 | 
							
								        public Vector2 movingSpeed = new Vector2(3, 5);
							 | 
						||
| 
								 | 
							
								        
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        float deltaTime;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Start is called before the first frame update
							 | 
						||
| 
								 | 
							
								        void Start()
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        // Update is called once per frame
							 | 
						||
| 
								 | 
							
								        void Update()
							 | 
						||
| 
								 | 
							
								        {
							 | 
						||
| 
								 | 
							
								            deltaTime += Time.deltaTime;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            if(deltaTime > spawnRate)
							 | 
						||
| 
								 | 
							
								            {
							 | 
						||
| 
								 | 
							
								                deltaTime = 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                if(Random.value > spawnRandomizer)
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    int index = Random.Range(0, cars.Length);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    GameObject carObject = Instantiate(cars[index]);
							 | 
						||
| 
								 | 
							
								                    carObject.SetActive(true);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    carObject.transform.position = transform.position + Vector3.Scale(Random.insideUnitSphere, positionRandomizer);
							 | 
						||
| 
								 | 
							
								                    carObject.transform.rotation = Quaternion.Euler(rotation);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                    RunnerCar carScipt = carObject.GetComponent<RunnerCar>();
							 | 
						||
| 
								 | 
							
								                    carScipt.moveDirection = moveDirection;
							 | 
						||
| 
								 | 
							
								                    carScipt.movingSpeed = Random.Range(movingSpeed.x, movingSpeed.y);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                   
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |