Example #1
0
    public Mesh SelectMesh(QuestObject_SO QuestObject)
    {
        Dictionary <ColliderType, Mesh> ColliderMeshPairs = new Dictionary <ColliderType, Mesh>();

        GameObject Cube     = GameObject.CreatePrimitive(PrimitiveType.Cube);
        GameObject Capsule  = GameObject.CreatePrimitive(PrimitiveType.Capsule);
        GameObject Sphere   = GameObject.CreatePrimitive(PrimitiveType.Sphere);
        GameObject Cylinder = GameObject.CreatePrimitive(PrimitiveType.Cylinder);

        ColliderMeshPairs[ColliderType.Cube]     = Cube.GetComponent <MeshFilter>().sharedMesh;
        ColliderMeshPairs[ColliderType.Capsule]  = Capsule.GetComponent <MeshFilter>().sharedMesh;
        ColliderMeshPairs[ColliderType.Sphere]   = Sphere.GetComponent <MeshFilter>().sharedMesh;
        ColliderMeshPairs[ColliderType.Cylinder] = Cylinder.GetComponent <MeshFilter>().sharedMesh;
        ColliderMeshPairs[ColliderType.Mesh]     = QuestObject.mesh;

        if (Application.isPlaying)
        {
            Destroy(Cube);
            Destroy(Capsule);
            Destroy(Sphere);
            Destroy(Cylinder);
        }
        if (Application.isEditor)
        {
            DestroyImmediate(Cube);
            DestroyImmediate(Capsule);
            DestroyImmediate(Sphere);
            DestroyImmediate(Cylinder);
        }
        return(ColliderMeshPairs[QuestObject.colliderType]);
    }
Example #2
0
    private void HandleInteraction(InteractableIdentifier id)
    {
        if (id.interactionType == InteractionType.QuestObject && !_hasItem)
        {
            // Acquired questItem
            _hasItem            = true;
            _holdingItem        = id.GetComponent <DisplayQuestObject>().MyQuestObject;
            _pathCreator.Target = _db.PrefabDB[_holdingItem.QuestNpc.ToString()].transform;
            if (!AcquiredQuestObjectProjectionParent.transform.HasChild())
            {
                id.GetComponent <InteractableIdentifier>().MyUIElement.gameObject.SetActive(false);

                GameObject questObjectSpriter = GameObject.Instantiate(id.gameObject, AcquiredQuestObjectProjectionParent.transform, false);
                questObjectSpriter.transform.Reset();

                questObjectSpriter.transform.Rotate(_holdingItem.RotateEulers);

                dialogManagement.InteractWithQuestObject(_holdingItem.QuestNpc);
                id.gameObject.SetActive(false);
            }
        }
        if (id.interactionType == InteractionType.Npc)
        {
            DisplayQuestObject displayQuestObject = id.GetComponent <DisplayQuestObject>();
            if (!displayQuestObject)
            {
                Npc_SO npc = id.GetComponent <NpcDisplay>().MyNPC;
                if (_hasItem)
                {
                    // Item Dialogs
                    QuestTracker.questObjectTracker[(QuestTracker.CurrentPhaseName, _holdingItem.KeyName)] = true;