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);
 | 
						|
 | 
						|
                   
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |