Example #1
0
    //=====================================================

    public void Refresh()
    {
        UnityEngine.Object model = null;
        // Update platform-model
        if (_type == eCollectable.KEY)
        {
            var keyId = ((int)_keyId < (int)ePuzzleKeyType.KEY_001) ? (int)_keyId : (int)ePuzzleKeyType.KEY_001;
            model = ResourcesCollectables.GetModel(_type, keyId);
        }
        else
        {
            model = ResourcesCollectables.GetModel(_type, _model);
        }

        if (model == null)
        {
            return;
        }

        var instance = Instantiate(model) as GameObject;

        Init(instance);
    }
Example #2
0
    //=====================================================

    private static void AddCollectableOfType(eCollectable type, ePuzzleKeyType keyType = ePuzzleKeyType.NULL)
    {
        var    pfb = ResourcesCollectables.GetPrefab();
        Object mdl = null;

        mdl = ResourcesCollectables.GetModel(type, (type == eCollectable.KEY) ? (int)keyType : 0);

        if (pfb == null)
        {
            return;
        }

        // Create containers for collectables if they don't already exist
        var container = GameObject.Find("Collectables");
        var gems      = GameObject.Find("Gems");
        var redGems   = GameObject.Find("RedGems");
        var keys      = GameObject.Find("Keys");

        if (container == null)
        {
            container = CreateContainer("Collectables");

            if (gems == null)
            {
                gems = CreateContainer("Gems", container);
            }

            if (redGems == null)
            {
                redGems = CreateContainer("RedGems", container);
            }

            if (keys == null)
            {
                keys = CreateContainer("Keys", container);
            }
        }

        var prefab = PrefabUtility.InstantiatePrefab(pfb) as GameObject;

        if (prefab == null)
        {
            return;
        }

        var script = prefab.GetComponent <Collectable>();

        switch (type)
        {
        case eCollectable.GEM:
            prefab.name             = "Gem";
            prefab.transform.parent = gems.transform;
            break;

        case eCollectable.RED_GEM:
            prefab.name             = "RedGem";
            prefab.transform.parent = redGems.transform;
            break;

        case eCollectable.KEY:
            switch (keyType)
            {
            default:
                prefab.name = "Key";
                break;

            case ePuzzleKeyType.KEY_GEM_RED:
                prefab.name = "Red Gem Key";
                break;

            case ePuzzleKeyType.KEY_GEM_100:
                prefab.name = "100 Gem Key";
                break;
            }

            prefab.transform.parent = keys.transform;
            break;
        }

        if (script != null)
        {
            script.Type = type;

            if (mdl != null)
            {
                var model = PrefabUtility.InstantiatePrefab(mdl) as GameObject;

                script.Init(model);

                if (type == eCollectable.KEY)
                {
                    switch (keyType)
                    {
                    default:
                        script.KeyId = ePuzzleKeyType.KEY_001;
                        break;

                    case ePuzzleKeyType.KEY_GEM_RED:
                        script.KeyId = ePuzzleKeyType.KEY_GEM_RED;
                        break;

                    case ePuzzleKeyType.KEY_GEM_100:
                        script.KeyId = ePuzzleKeyType.KEY_GEM_100;
                        break;
                    }
                }

                script.Refresh();
            }
        }

        PositionObjectAndSelect(prefab);
    }