Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by jeppe79 · Feb 03, 2020 at 09:20 AM · uicanvasraycastingrendertextureportal

UI interaction via RenderTexture

Hello,

I have a scene set up like this:

  • Main Camera(With PhysicsRaycast component attached to be able to raycast on the Quad)

  • Quad with RenderTexture

  • UICamera

  • Canvas (Worldspace with UICamera targeted) + (GraphicsRaycaster and one button attached)

My code below lets me extract the texture position of the RenderTexture hit, but I am stuck on how to convert this to a GraphicRaycast to project the ray on the same position on the actual UI to click the button.

Any help with this would be much appreciated! -Jesper

    { using System.Collections;
     using System.Collections.Generic;
     using UnityEngine;
     using UnityEngine.EventSystems;
     using UnityEngine.UI;
 }
     
     public class RaycastRenderTexture : MonoBehaviour
     {
     
         public Camera mainCamera;
         public Camera uiCamera;
     
         // used to determine how many texture hitpoints the gameObject has
         public RenderTexture renderTexture;
     
         // used to determine distance between renderTextureObject and canvas
         public Canvas canvas;
         public GameObject renderTextureObject;
     
     
         // Start is called before the first frame update
         void Start()
         {
             // Calculate distance from Canvas to RenderTexture Object (quad) to adjust raycast X value
             float distanceFromCanvasToRT = renderTextureObject.transform.position.x - canvas.transform.position.x;
             Debug.Log(distanceFromCanvasToRT);
         }
     
         // Update is called once per frame
         void Update()
         {
             if (Input.GetMouseButtonDown(0))
             {
                 RaycastHit hit;
                 Ray ray = mainCamera.ScreenPointToRay(Input.mousePosition);
                 Debug.Log("RAY: " + ray);
     
                 if (Physics.Raycast(ray, out hit))
                 {
                     // Get hit at texture pixel position of RenderTexture on Quad
                     float texturePositionX = hit.textureCoord.x * renderTexture.width;
                     float texturePositionY = hit.textureCoord.y * renderTexture.height;
     
                     Vector2 pixelHit = new Vector2(Mathf.Floor(texturePositionX), Mathf.Floor(texturePositionY));
     
                     Debug.Log("TEXTURE HIT: " + pixelHit);
     
                     // Get world coordinates
                     Debug.Log("TRANSFORM_POS: " + hit.collider.gameObject.transform.position);
                     // Get local coordinates of object's position inside parent
                     Debug.Log("TRANSFORM_LOCALPOS: " + hit.collider.gameObject.transform.localPosition);
     
                 }
             }     
         }
     }










Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

210 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Weird Image Flickering Behavior on UI Canvas When Using RT Material 1 Answer

Tutorial dark overlay with cutouts 0 Answers

Display canvas on in game monitor 1 Answer

Use the canvas scaler to resize UI on a RenderTexture's resolution ? 0 Answers

Using a Canvas with a Render Texture 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges