OnMouseEnter() function stops working when I set the canvas render mode to: Camera Overlay
Basically the title says it all. I have a OnMouseEnter() function that works fine when I have the canvas render mode on Worldspace but stops working when I change it to Camera Overlay.
Before, it would work with just the script with the mouse functions on it attached to the image object. Now to work I need to use an event trigger and add the script to another object to put it into the trigger.
Any idea why?
unity c#
add a comment |
Basically the title says it all. I have a OnMouseEnter() function that works fine when I have the canvas render mode on Worldspace but stops working when I change it to Camera Overlay.
Before, it would work with just the script with the mouse functions on it attached to the image object. Now to work I need to use an event trigger and add the script to another object to put it into the trigger.
Any idea why?
unity c#
Before, it would work with just the script with the mouse functions on it attached to the image object. Now to work I need to use an event trigger and add the script to another object to put it into the trigger.
– ClaudioA
2 days ago
add a comment |
Basically the title says it all. I have a OnMouseEnter() function that works fine when I have the canvas render mode on Worldspace but stops working when I change it to Camera Overlay.
Before, it would work with just the script with the mouse functions on it attached to the image object. Now to work I need to use an event trigger and add the script to another object to put it into the trigger.
Any idea why?
unity c#
Basically the title says it all. I have a OnMouseEnter() function that works fine when I have the canvas render mode on Worldspace but stops working when I change it to Camera Overlay.
Before, it would work with just the script with the mouse functions on it attached to the image object. Now to work I need to use an event trigger and add the script to another object to put it into the trigger.
Any idea why?
unity c#
unity c#
edited 2 days ago
ClaudioA
asked 2 days ago
ClaudioAClaudioA
2317
2317
Before, it would work with just the script with the mouse functions on it attached to the image object. Now to work I need to use an event trigger and add the script to another object to put it into the trigger.
– ClaudioA
2 days ago
add a comment |
Before, it would work with just the script with the mouse functions on it attached to the image object. Now to work I need to use an event trigger and add the script to another object to put it into the trigger.
– ClaudioA
2 days ago
Before, it would work with just the script with the mouse functions on it attached to the image object. Now to work I need to use an event trigger and add the script to another object to put it into the trigger.
– ClaudioA
2 days ago
Before, it would work with just the script with the mouse functions on it attached to the image object. Now to work I need to use an event trigger and add the script to another object to put it into the trigger.
– ClaudioA
2 days ago
add a comment |
1 Answer
1
active
oldest
votes
OnMouseEnter is a MonoBehaviour message that's fired by rays cast in the 3D game world (including hit-testing 2D colliders in that 3D game world too).
Once you set your UI to Overlay, it's no longer in the 3D game world. It exists as a pure UI layer painted over-top by a separate pass at the end.
To catch mouse events in this pure UI world, you need to use the UI's event system approach:
public class UIMouseOverExample : MonoBehaviour, IPointerEnterHandler {
public void OnPointerEnter(PointerEventData eventData)
{
// Do your stuff.
}
}
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
});
});
}, "mathjax-editing");
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "53"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgamedev.stackexchange.com%2fquestions%2f166804%2fonmouseenter-function-stops-working-when-i-set-the-canvas-render-mode-to-came%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
OnMouseEnter is a MonoBehaviour message that's fired by rays cast in the 3D game world (including hit-testing 2D colliders in that 3D game world too).
Once you set your UI to Overlay, it's no longer in the 3D game world. It exists as a pure UI layer painted over-top by a separate pass at the end.
To catch mouse events in this pure UI world, you need to use the UI's event system approach:
public class UIMouseOverExample : MonoBehaviour, IPointerEnterHandler {
public void OnPointerEnter(PointerEventData eventData)
{
// Do your stuff.
}
}
add a comment |
OnMouseEnter is a MonoBehaviour message that's fired by rays cast in the 3D game world (including hit-testing 2D colliders in that 3D game world too).
Once you set your UI to Overlay, it's no longer in the 3D game world. It exists as a pure UI layer painted over-top by a separate pass at the end.
To catch mouse events in this pure UI world, you need to use the UI's event system approach:
public class UIMouseOverExample : MonoBehaviour, IPointerEnterHandler {
public void OnPointerEnter(PointerEventData eventData)
{
// Do your stuff.
}
}
add a comment |
OnMouseEnter is a MonoBehaviour message that's fired by rays cast in the 3D game world (including hit-testing 2D colliders in that 3D game world too).
Once you set your UI to Overlay, it's no longer in the 3D game world. It exists as a pure UI layer painted over-top by a separate pass at the end.
To catch mouse events in this pure UI world, you need to use the UI's event system approach:
public class UIMouseOverExample : MonoBehaviour, IPointerEnterHandler {
public void OnPointerEnter(PointerEventData eventData)
{
// Do your stuff.
}
}
OnMouseEnter is a MonoBehaviour message that's fired by rays cast in the 3D game world (including hit-testing 2D colliders in that 3D game world too).
Once you set your UI to Overlay, it's no longer in the 3D game world. It exists as a pure UI layer painted over-top by a separate pass at the end.
To catch mouse events in this pure UI world, you need to use the UI's event system approach:
public class UIMouseOverExample : MonoBehaviour, IPointerEnterHandler {
public void OnPointerEnter(PointerEventData eventData)
{
// Do your stuff.
}
}
edited 2 days ago
answered 2 days ago
DMGregory♦DMGregory
58.8k13105167
58.8k13105167
add a comment |
add a comment |
Thanks for contributing an answer to Game Development Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgamedev.stackexchange.com%2fquestions%2f166804%2fonmouseenter-function-stops-working-when-i-set-the-canvas-render-mode-to-came%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Before, it would work with just the script with the mouse functions on it attached to the image object. Now to work I need to use an event trigger and add the script to another object to put it into the trigger.
– ClaudioA
2 days ago