/// <summary> /// /// </summary> /// <param name="carScript"></param> /// <param name="sfxs"></param> private static void ConfigureWheelSFX(IRailroadCar carScript, List <GameObject> sfxs) { if (sfxs != null && sfxs.Count > 0) { foreach (var item in sfxs) { AudioSource wheelSFX = item.GetComponent <AudioSource>(); if (wheelSFX != null) { carScript.WheelsSFX = wheelSFX; } } } }
/// <summary> /// /// </summary> /// <param name="carScript"></param> /// <param name="lights"></param> private static void ConfigureExternalLights(IRailroadCar carScript, List <GameObject> lights) { if (lights != null && lights.Count > 0) { carScript.ExternalLights = new List <Light>(); foreach (var item in lights) { Light light = item.GetComponent <Light>(); if (light != null) { carScript.ExternalLights.Add(light); } } } }
/// <summary> /// /// </summary> /// <param name="parent"></param> /// <param name="carScript">wagon or locomotive script</param> /// <param name="couplers"></param> private static void ConfigureBackCoupler(Rigidbody parent, IRailroadCar carScript, List <GameObject> couplers) { ConnectHingeAnchor(parent, couplers); if (couplers != null && couplers.Count > 0) { foreach (var item in couplers) { Rigidbody rigid = item.GetComponent <Rigidbody>(); if (rigid != null) { carScript.BackJoint = rigid; } } } }
/// <summary> /// /// </summary> /// <param name="carScript"></param> /// <param name="wheels"></param> private static void ConfigureWheels(IRailroadCar carScript, List <GameObject> wheels) { carScript.Wheels = new List <TrainWheel_v3>(); foreach (var item in wheels) { foreach (Transform t in item.transform) { TrainWheel_v3[] wheelScripts = t.GetComponentsInChildren <TrainWheel_v3>(); if (wheelScripts != null) { carScript.Wheels.AddRange(wheelScripts); } } } }
/// <summary> /// /// </summary> /// <param name="carScript"></param> /// <param name="sensors"></param> private static void ConfigureSensors(IRailroadCar carScript, List <GameObject> sensors) { if (sensors != null && sensors.Count > 0) { carScript.Sensors = new Sensors(); for (int i = 0; i < sensors.Count; i++) { if (i % 2 == 0) { carScript.Sensors.leftSensor = sensors[i].GetComponent <RailSensor>(); } else { carScript.Sensors.rightSensor = sensors[i].GetComponent <RailSensor>(); } } } }
/// <summary> /// /// </summary> /// <param name="parent"></param> /// <param name="wheels"></param> private static void ConfigurePhysicsWheels(Rigidbody parent, IRailroadCar carScript, List <GameObject> wheels) { ConnectHingeAnchor(parent, wheels); ConfigureWheels(carScript, wheels); }