예제 #1
0
    public void SpawnAircraftLive(LiveAcmiDataReciever.ACMIdata liveData)
    {
        //DICTIONARY KA KAM
        var        key = liveData.TailID;
        GameObject aircraft;

        var hasObject = aircrafts.TryGetValue(key, out aircraft);

        if (hasObject == false)
        {
            //instantiate new
            aircraft = InstantiateAircraft(liveData);
            aircrafts.Add(key, aircraft);

            //List with Active Tail ids
            AllActivetailIds.Add(key.ToString());
        }
        else
        {
            // update lat long on aircraft gameobject
            SetAircraftsPosition(liveData, aircraft);
        }

        aircraft.GetComponent <AircraftDataManager>().liveDataPacket = liveData;

        //For ALL Refrences
        foreach (GameObject reference in DropDownReferences)
        {
            reference.GetComponent <Dropdown>().ClearOptions();
            reference.GetComponent <Dropdown>().AddOptions(AllActivetailIds);
        }
    }
예제 #2
0
    public GameObject InstantiateAircraft(LiveAcmiDataReciever.ACMIdata liveData)
    {
        var        aircraftType         = liveData.AircraftType;
        var        tailId               = liveData.TailID;
        GameObject instantiatedAirCraft = null;

        switch (aircraftType)
        {
        case 1:
            instantiatedAirCraft = Instantiate(F16Prefab, transform.position, Quaternion.identity) as GameObject;
            instantiatedAirCraft.transform.parent = AirCraftParent.transform;
            instantiatedAirCraft.name             = "F16 " + tailId;
            break;

        case 3:
            instantiatedAirCraft = Instantiate(MiragePrefab, transform.position, Quaternion.identity) as GameObject;
            instantiatedAirCraft.transform.parent = AirCraftParent.transform;
            instantiatedAirCraft.name             = "Mirage " + tailId;
            break;

        case 5:
            instantiatedAirCraft = Instantiate(JF17Prefab, transform.position, Quaternion.identity) as GameObject;
            instantiatedAirCraft.transform.parent = AirCraftParent.transform;
            instantiatedAirCraft.name             = "JF-17 " + tailId;
            break;

        case 8:
            instantiatedAirCraft = Instantiate(C130Prefab, transform.position, Quaternion.identity) as GameObject;
            instantiatedAirCraft.transform.parent = AirCraftParent.transform;
            instantiatedAirCraft.name             = "C130 " + tailId;
            break;

        default:
            instantiatedAirCraft = Instantiate(F7Prefab, transform.position, Quaternion.identity) as GameObject;
            instantiatedAirCraft.transform.parent = AirCraftParent.transform;
            instantiatedAirCraft.name             = "F7 " + tailId;
            break;
        }


        return(instantiatedAirCraft);
    }
예제 #3
0
 public void liveDataRecieved(LiveAcmiDataReciever.ACMIdata liveData)
 {
     if (LiveAcmiDataReciever.receivingUdpClient.Available > 0)
     {
         Time         = liveData.Time;
         TailID       = liveData.TailID;
         AircraftType = liveData.AircraftType;
         Latitude     = liveData.Latitude;
         Longitude    = liveData.Longitude;
         Altitude     = liveData.Altitude;
         Roll         = liveData.Roll;
         Pitch        = liveData.Pitch;
         Heading      = liveData.Heading;
         MachNo       = liveData.MachNo;
         Speed        = liveData.Speed;
         G            = liveData.G;
         Aoa          = liveData.Aoa;
         SpawnAircraftLive(liveData);
     }
 }
예제 #4
0
    public void SetAircraftsPosition(LiveAcmiDataReciever.ACMIdata liveData, GameObject aircraft)
    {
        float[] xzy = MathCalculations.Convert(liveData.Latitude, liveData.Longitude, liveData.Altitude);

        float x = xzy[0];
        float z = xzy[1];
        float y = xzy[2];

        updatedPosition = new Vector3(x, y, z);
        aircraft.transform.localPosition = updatedPosition;


        float roll    = liveData.Roll;
        float pitch   = liveData.Pitch;
        float heading = liveData.Heading;

        heading         = heading - 180;
        updatedRotation = Quaternion.Euler(pitch, heading, -roll);
        aircraft.transform.localRotation = updatedRotation;
    }