A system for detecting user-object interaction in a mixed-reality environment, the system comprising: one or more processors; one or more computer-readable media having stored computer-executable instructions that are operable, when executed by the one or more processors, to cause the system to perform the following: detect a controller gesture of a controller in the mixed-reality environment, wherein the controller gesture has an associated controller orientation and the controller comprises a user's hand; determine an interaction region for the controller gesture, wherein the interaction region defines a set of virtual objects as candidates for becoming the subject of an interaction triggered by the controller gesture; identify the set of virtual objects within the interaction region, wherein each virtual object of the set of virtual objects has an associated orientation affinity, the orientation affinity defining an orientation parameter that the controller must conform to in order to interact with the virtual objects; determine an orientation similarity score between the controller orientation and the orientation affinity for each virtual object of the set of virtual objects within the interaction region; and in response to determining that at least one orientation similarity score exceeds a predetermined threshold, execute an interaction between the controller and a particular virtual object of the set of virtual objects that has a greatest orientation similarity score out of all orientation similarity scores determined for each virtual object of the set of virtual objects; wherein the interaction region is configured to have a size that is determined based on a detected pose of the user's hand. one or more processors; one or more computer-readable media having stored computer-executable instructions that are operable, when executed by the one or more processors, to cause the system to perform the following: detect a controller gesture of a controller in the mixed-reality environment, wherein the controller gesture has an associated controller orientation and the controller comprises a user's hand; determine an interaction region for the controller gesture, wherein the interaction region defines a set of virtual objects as candidates for becoming the subject of an interaction triggered by the controller gesture; identify the set of virtual objects within the interaction region, wherein each virtual object of the set of virtual objects has an associated orientation affinity, the orientation affinity defining an orientation parameter that the controller must conform to in order to interact with the virtual objects; determine an orientation similarity score between the controller orientation and the orientation affinity for each virtual object of the set of virtual objects within the interaction region; and in response to determining that at least one orientation similarity score exceeds a predetermined threshold, execute an interaction between the controller and a particular virtual object of the set of virtual objects that has a greatest orientation similarity score out of all orientation similarity scores determined for each virtual object of the set of virtual objects; wherein the interaction region is configured to have a size that is determined based on a detected pose of the user's hand. detect a controller gesture of a controller in the mixed-reality environment, wherein the controller gesture has an associated controller orientation and the controller comprises a user's hand; determine an interaction region for the controller gesture, wherein the interaction region defines a set of virtual objects as candidates for becoming the subject of an interaction triggered by the controller gesture; identify the set of virtual objects within the interaction region, wherein each virtual object of the set of virtual objects has an associated orientation affinity, the orientation affinity defining an orientation parameter that the controller must conform to in order to interact with the virtual objects; determine an orientation similarity score between the controller orientation and the orientation affinity for each virtual object of the set of virtual objects within the interaction region; and in response to determining that at least one orientation similarity score exceeds a predetermined threshold, execute an interaction between the controller and a particular virtual object of the set of virtual objects that has a greatest orientation similarity score out of all orientation similarity scores determined for each virtual object of the set of virtual objects; wherein the interaction region is configured to have a size that is determined based on a detected pose of the user's hand.