コード例 #1
0
 /// <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;
             }
         }
     }
 }
コード例 #2
0
    /// <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);
                }
            }
        }
    }
コード例 #3
0
    /// <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;
                }
            }
        }
    }
コード例 #4
0
    /// <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);
                }
            }
        }
    }
コード例 #5
0
    /// <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>();
                }
            }
        }
    }
コード例 #6
0
 /// <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);
 }