OnMouseEnter() function stops working when I set the canvas render mode to: Camera Overlay












1














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?










share|improve this question
























  • 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
    yesterday
















1














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?










share|improve this question
























  • 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
    yesterday














1












1








1







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?










share|improve this question















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#






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited yesterday

























asked yesterday









ClaudioA

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
    yesterday


















  • 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
    yesterday
















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
yesterday




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
yesterday










1 Answer
1






active

oldest

votes


















3














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.
}
}





share|improve this answer























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


    }
    });














    draft saved

    draft discarded


















    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









    3














    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.
    }
    }





    share|improve this answer




























      3














      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.
      }
      }





      share|improve this answer


























        3












        3








        3






        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.
        }
        }





        share|improve this answer














        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.
        }
        }






        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited yesterday

























        answered yesterday









        DMGregory

        58.8k13105167




        58.8k13105167






























            draft saved

            draft discarded




















































            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.




            draft saved


            draft discarded














            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





















































            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







            Popular posts from this blog

            1300-talet

            1300-talet

            Display a custom attribute below product name in the front-end Magento 1.9.3.8