- Home /
How to share large image (Texture2d) across photon network?
In my mobile game, one user takes a picture and then shares it with all other players so that the image can be saved to the raw image on everyone's phones so they can vote on that image. I am doing this by converting the image to byte[] and calling an RPC for all that applies the texture to the raw image. However, the image seems to be too large of a file to share and it crashes the room and does not send. I am trying to find a solution to this by maybe saving the image to the cloud and loading it on other devices or serializing the raw image but I don't know how to do this. Can anyone please help me out to share the image across the network?
Here are the relevant parts of my script,
     public class PlayerInfo : MonoBehaviourPun
     {
     public Text elimSelectText;
     public Player selectedPlayer;
     private Transform choosePlayersContainer;
     public AspectRatioFitter sharePhotoAspectFitter;
     public  NatSuite.Examples.MiniCam cam;
     public RawImage photoPanel;
     public PhotonView votePView;
     public Texture2D receivedTexture;
     public RawImage sharePhotoPanel;
     public GameObject voteElimPanel;
     private GameObject chooseListingPrefab;
 
       private void Update(){
              if(cam.isCapturing){            
             cam.isCapturing=false;
             openElimSelect();
         }  
         }
         
         public void openElimSelect(){
             photoPanel.texture = cam.previewTexture;
             photoAspectFitter.aspectRatio = cam.previewTexture.width / (float)cam.previewTexture.height;
             elimSelectHold.SetActive(true);
             listPlayersToChoose();
         }
 
 
  public void openElimSelect(){
         photoPanel.texture = cam.previewTexture;
         photoAspectFitter.aspectRatio = cam.previewTexture.width / (float)cam.previewTexture.height;
 
         elimSelectHold.SetActive(true);
         listPlayersToChoose();
     }
     void listPlayersToChoose(){
         foreach(Player player in PhotonNetwork.PlayerList){
            if(getAlive(player)){
                 GameObject tempListing = Instantiate(chooseListingPrefab, choosePlayersContainer);
                 Text tempText = tempListing.transform.GetChild(0).GetComponent<Text>();
                 tempText.text = player.NickName;
                 Button button= tempListing.gameObject.GetComponent<Button>();
                 button.onClick.AddListener(()=>{
                     votePView.RPC("selectedPlayerForVote", RpcTarget.All, player, cam.previewTexture.EncodeToPNG(), cam.previewTexture.width, cam.previewTexture.height);
                     elimSelectHold.SetActive(false);
                     ClearElimSelectPlayerListings();
                     Texture2D.Destroy(cam.previewTexture);
                 });    
             }   
         }
     }
 [PunRPC]
     private void selectedPlayerForVote(Player player, byte[] receivedByte, int width, int height){
         selectedPlayer = player;
         receivedTexture = new Texture2D(1, 1);
         receivedTexture.LoadImage(receivedByte);        
         sharePhotoPanel.texture =  receivedTexture;
         sharePhotoAspectFitter.aspectRatio = width / (float)height;
         isVoting = true;
         elimSelectText.text = "Is this " + player.NickName + "?";
         voteElimPanel.SetActive(true);
     }
Thank you in advance!
Yes, I have been trying to do this for so long please anyone?
Your answer
 
 
             Follow this Question
Related Questions
hi i need help with code 1 Answer
RPC in unity with Photon not working 2 Answers
Photon RPC problem... 3 Answers
PhotonView with ID has no method marked with the [PunRPC](C#) property! BUT IT HAS ??? 1 Answer
Unity multiplayer solutions: Photon, Unity Networking - what else and in what way is good? 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                