Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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 SnubbleJr · Jan 07, 2014 at 04:40 PM · cameracoroutinetexture2dienumeratorreadpixels

Issue With Simultaneous ReadPixels Calls

Hi, first time asking, really couldn't find the answer I was looking for.

I have these entities called "torches" that receive a portion of the a camera's view port via ReadPixles, and uses it as it's texture.

It works, but I get into problems when I have multiple torches calling for a Screen Grab in the same frame. I have tried using co-routines, but when I do, I don't get a texture. I am probably doing it wrong.

If multiple calls are done in the same frame, the first call receives the texture, while the others get the default purple one.

How can I edit my code to make it readpixels multiple times in the same frame without having to attach a camera to each torch?

Attach is picture (I hope)

Thanks,

Ed

Code in Screen Grabber

 using UnityEngine;
 using System.Collections;
 
 public class ScreenGrabber : MonoBehaviour {
     private bool grab;
     private Renderer display;
     private Texture2D tex;
     private int pixelDiam;
     private int pixelX;
     private int pixelY;
 
     //Takes a picture of where it is, and then applies it to the object
     //due to screen dimensions and game dimensions being different, it has to calcualte what resolution it needs to be
 
     void OnPostRender() {
         if (grab) {
             tex = new Texture2D(pixelDiam, pixelDiam);
             tex.ReadPixels(new Rect(pixelX,pixelY,pixelDiam,pixelDiam),0,0);
             tex.Apply();
             display.material.mainTexture = tex;
             grab = false;
         }
     }
     
     public void setGrab(Renderer rend, int size, Transform target)
     {    
         //Finding the co ords on screen that are 0,0 for the texture;
         pixelX = (int)camera.WorldToScreenPoint (target.position + new Vector3 (size, 0, 0)).x;
         pixelY = (int)camera.WorldToScreenPoint (target.position - new Vector3 (0, size, 0)).y;
         //Finding the diametre in pixels of the cirlce, by getting the sccreen pos of either side of the cirlces centre
         pixelDiam = ((int)camera.WorldToScreenPoint(target.position - new Vector3 (size,0,0)).x - pixelX);
         display = rend;
         grab = true;
     }
 }


Code that calls it

         //getting the texture that will be applyed to it
         GameObject camera = GameObject.FindGameObjectWithTag ("MainCamera");
         camera.GetComponent<ScreenGrabber>().setGrab(renderer, (int)maxSize, transform);

alt text

rollhelp.png (94.7 kB)
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

18 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

Related Questions

Can a Texture2D be created at runtime from a snapshot of a RenderTexture? 3 Answers

Render a list of objects into a Texture2D array 0 Answers

Why is ReadPixels on my RenderTexture creating a pure gray texture? 1 Answer

Render Texture does not work on only IOS devices 0 Answers

yield return waitforseconds not waiting? 3 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