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]); }
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;