예제 #1
0
        private void AddRDBFlat(DFBlock.RdbObject obj, Transform parent)
        {
            int archive = obj.Resources.FlatResource.TextureArchive;
            int record  = obj.Resources.FlatResource.TextureRecord;

            // Spawn billboard gameobject
            GameObject go = GameObjectHelper.CreateDaggerfallBillboardGameObject(archive, record, parent, true);
            Vector3    billboardPosition = new Vector3(obj.XPos, -obj.YPos, obj.ZPos) * MeshReader.GlobalScale;

            // Add RDB data to billboard
            DaggerfallBillboard dfBillboard = go.GetComponent <DaggerfallBillboard>();

            dfBillboard.SetResourceData(obj.Resources.FlatResource);

            // Set transform
            go.transform.position = billboardPosition;

            // Handle supported editor flats
            if (dfUnity.Option_ImportEnemies && archive == 199)
            {
                switch (record)
                {
                case 10:                            // Start marker
                    startMarkers.Add(go);
                    break;

                case 15:                            // Random enemy
                    AddRandomRDBEnemy(obj);
                    go.SetActive(false);
                    break;

                case 16:                            // Fixed enemy
                    AddFixedRDBEnemy(obj);
                    go.SetActive(false);
                    break;
                }
            }

            // Add torch burning sound
            if (dfUnity.Option_DefaultSounds && archive == 210)
            {
                switch (record)
                {
                case 0:
                case 1:
                case 6:
                case 16:
                case 17:
                case 18:
                case 19:
                case 20:
                    AddTorchAudioSource(go);
                    break;
                }
            }
        }
예제 #2
0
        private static GameObject AddFlat(DFBlock.RdbObject obj, Transform parent)
        {
            int archive = obj.Resources.FlatResource.TextureArchive;
            int record  = obj.Resources.FlatResource.TextureRecord;

            // Spawn billboard gameobject
            GameObject go = GameObjectHelper.CreateDaggerfallBillboardGameObject(archive, record, parent, true);
            Vector3    billboardPosition = new Vector3(obj.XPos, -obj.YPos, obj.ZPos) * MeshReader.GlobalScale;

            // Add RDB data to billboard
            DaggerfallBillboard dfBillboard = go.GetComponent <DaggerfallBillboard>();

            dfBillboard.SetResourceData(obj.Resources.FlatResource);

            // Set transform
            go.transform.position = billboardPosition;

            // Disable enemy flats
            if (archive == TextureReader.EditorFlatsTextureArchive && (record == 15 || record == 16))
            {
                go.SetActive(false);
            }

            // Add torch burning sound
            if (archive == TextureReader.LightsTextureArchive)
            {
                switch (record)
                {
                case 0:
                case 1:
                case 6:
                case 16:
                case 17:
                case 18:
                case 19:
                case 20:
                    AddTorchAudioSource(go);
                    break;
                }
            }

            return(go);
        }