I am building an unlimited running car game and for this, I have to spawn other cars randomly. Here is my default installer code:
using UnityEngine;
using Zenject;
public class DefaultInstaller : MonoInstaller
{
//Total Car Objects
public GameObject[] cars;
public GameObject road;
public override void InstallBindings()
{
//Binding assets
Container.Bind<GameObject[]>().FromInstance(cars).AsSingle();
Container.Bind<GameObject>().FromInstance(road).AsSingle();
//Bindng Manager
Container.Bind<GameManager>().AsSingle();
Container.Bind<CarManager>().AsSingle();
}
}
Here cars[] have total 8 cars, I want to spawn random car from there using Factory method. Can anyone help pls?
I am currently using MonoBehavior Instantiate but I want to use zenject factory code for proper zenject implemention. Here what I am currently doing `
using UnityEngine;
public class Factory : MonoBehaviour
{
// Start is called before the first frame update
public static GameObject Create(GameObject carObject)
{
return Instantiate(carObject);
}
public static GameObject Create(GameObject road, Vector3 position)
{
return Instantiate(road, position, Quaternion.identity);
}
public static GameObject Create(GameObject carObject, Vector3 postion, Quaternion rotation)
{
return Instantiate(carObject, postion, rotation);
}
public static void CreateStartRoad(GameObject road)
{
Instantiate(road, new Vector3(12, 0, 0), Quaternion.identity).SetActive(true);
Instantiate(road, new Vector3(6, 0, 0), Quaternion.identity).SetActive(true);
Instantiate(road, new Vector3(0, 0, 0), Quaternion.identity).SetActive(true);
Instantiate(road, new Vector3(-6, 0, 0), Quaternion.identity).SetActive(true);
Instantiate(road, new Vector3(-12, 0, 0), Quaternion.identity).SetActive(true);
Instantiate(road, new Vector3(-18, 0, 0), Quaternion.identity).SetActive(true);
//starting road movement
GameManager.RunCar = true;
}
}
`