Advertisement
Guest User

Untitled

a guest
Jul 17th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.95 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using System.IO;
  5. using System.Linq;
  6.  
  7. public class frame : MonoBehaviour {
  8.  
  9.     public string folderFrame = "Frame";
  10.     public string folderCSV = "C:/Users/JMonda/Desktop/New Unity Project/CSV/train_labels.csv";
  11.     public int frameRate = 1;
  12.     public int enabled = 1;
  13.  
  14.     public GameObject arma2;
  15.     public GameObject arma4;
  16.  
  17.     public Camera camara1;
  18.     public Camera camara2;
  19.     public Camera camara3;
  20.     public Camera camara4;
  21.  
  22.     void Start() {
  23.         //Time.captureFramerate = frameRate;
  24.         System.IO.Directory.CreateDirectory(folderFrame);
  25.     }
  26.  
  27.     void Update()
  28.     {
  29.         getCoordenadas(arma2);
  30.         getCoordenadas(arma4);
  31.     }
  32.  
  33.     private void getCoordenadas(GameObject objects){
  34.  
  35.                 //Guardo los frame
  36.                 string path = string.Format("{0}/{1:D04}.png", folderFrame, Time.frameCount);
  37.                 string name = string.Format("{0:D04}.png", Time.frameCount);
  38.                 ScreenCapture.CaptureScreenshot(path);
  39.  
  40.                 //Obtengo las propiedades de las armas
  41.                 Renderer meshRenderer = objects.GetComponent<Renderer>();
  42.  
  43.                 //Creo un cubo en la posicion central de la pistola y con el tamaño de la pistola
  44.                 /*GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
  45.                 cube.transform.position =  meshRenderer.bounds.center;
  46.                 cube.transform.localScale = meshRenderer.bounds.size;*/
  47.  
  48.                 //Obtengo los 8 puntos
  49.                 Vector3 a =  new Vector3(
  50.                     meshRenderer.bounds.center[0] - (meshRenderer.bounds.size[0]/2),
  51.                     meshRenderer.bounds.center[1] - (meshRenderer.bounds.size[1]/2),
  52.                     meshRenderer.bounds.center[2] - (meshRenderer.bounds.size[2]/2));
  53.  
  54.                 Vector3 b =  new Vector3(
  55.                     meshRenderer.bounds.center[0] - (meshRenderer.bounds.size[0]/2),
  56.                     meshRenderer.bounds.center[1] - (meshRenderer.bounds.size[1]/2),
  57.                     meshRenderer.bounds.center[2] + (meshRenderer.bounds.size[2]/2));
  58.  
  59.                 Vector3 c =  new Vector3(
  60.                     meshRenderer.bounds.center[0] - (meshRenderer.bounds.size[0]/2),
  61.                     meshRenderer.bounds.center[1] + (meshRenderer.bounds.size[1]/2),
  62.                     meshRenderer.bounds.center[2] - (meshRenderer.bounds.size[2]/2));
  63.  
  64.                 Vector3 d =  new Vector3(
  65.                     meshRenderer.bounds.center[0] - (meshRenderer.bounds.size[0]/2),
  66.                     meshRenderer.bounds.center[1] + (meshRenderer.bounds.size[1]/2),
  67.                     meshRenderer.bounds.center[2] + (meshRenderer.bounds.size[2]/2));
  68.  
  69.                 Vector3 e =  new Vector3(
  70.                     meshRenderer.bounds.center[0] + (meshRenderer.bounds.size[0]/2),
  71.                     meshRenderer.bounds.center[1] + (meshRenderer.bounds.size[1]/2),
  72.                     meshRenderer.bounds.center[2] + (meshRenderer.bounds.size[2]/2));
  73.  
  74.                 Vector3 f =  new Vector3(
  75.                     meshRenderer.bounds.center[0] + (meshRenderer.bounds.size[0]/2),
  76.                     meshRenderer.bounds.center[1] + (meshRenderer.bounds.size[1]/2),
  77.                     meshRenderer.bounds.center[2] - (meshRenderer.bounds.size[2]/2));
  78.  
  79.                 Vector3 g =  new Vector3(
  80.                     meshRenderer.bounds.center[0] + (meshRenderer.bounds.size[0]/2),
  81.                     meshRenderer.bounds.center[1] - (meshRenderer.bounds.size[1]/2),
  82.                     meshRenderer.bounds.center[2] - (meshRenderer.bounds.size[2]/2));
  83.  
  84.                 Vector3 h =  new Vector3(
  85.                     meshRenderer.bounds.center[0] + (meshRenderer.bounds.size[0]/2),
  86.                     meshRenderer.bounds.center[1] - (meshRenderer.bounds.size[1]/2),
  87.                     meshRenderer.bounds.center[2] + (meshRenderer.bounds.size[2]/2));
  88.  
  89.                 //Los obtengo en la coordenada 2D
  90.                 Vector3 coorA = new Vector3(),coorB = new Vector3(),coorC = new Vector3(),coorD = new Vector3(),coorE = new Vector3(),coorF = new Vector3(),coorG = new Vector3(),coorH = new Vector3();
  91.                 if(camara1.enabled == true){
  92.                     coorA = camara1.WorldToScreenPoint(a);
  93.                     coorB = camara1.WorldToScreenPoint(b);
  94.                     coorC = camara1.WorldToScreenPoint(c);
  95.                     coorD = camara1.WorldToScreenPoint(d);
  96.                     coorE = camara1.WorldToScreenPoint(e);
  97.                     coorF = camara1.WorldToScreenPoint(f);
  98.                     coorG = camara1.WorldToScreenPoint(g);
  99.                     coorH = camara1.WorldToScreenPoint(h);
  100.                 }else if(camara2.enabled == true){
  101.                     coorA = camara2.WorldToScreenPoint(a);
  102.                     coorB = camara2.WorldToScreenPoint(b);
  103.                     coorC = camara2.WorldToScreenPoint(c);
  104.                     coorD = camara2.WorldToScreenPoint(d);
  105.                     coorE = camara2.WorldToScreenPoint(e);
  106.                     coorF = camara2.WorldToScreenPoint(f);
  107.                     coorG = camara2.WorldToScreenPoint(g);
  108.                     coorH = camara2.WorldToScreenPoint(h);
  109.                 }else if(camara3.enabled == true){
  110.                     coorA = camara3.WorldToScreenPoint(a);
  111.                     coorB = camara3.WorldToScreenPoint(b);
  112.                     coorC = camara3.WorldToScreenPoint(c);
  113.                     coorD = camara3.WorldToScreenPoint(d);
  114.                     coorE = camara3.WorldToScreenPoint(e);
  115.                     coorF = camara3.WorldToScreenPoint(f);
  116.                     coorG = camara3.WorldToScreenPoint(g);
  117.                     coorH = camara3.WorldToScreenPoint(h);
  118.                 }else if(camara4.enabled == true){
  119.                     coorA = camara4.WorldToScreenPoint(a);
  120.                     coorB = camara4.WorldToScreenPoint(b);
  121.                     coorC = camara4.WorldToScreenPoint(c);
  122.                     coorD = camara4.WorldToScreenPoint(d);
  123.                     coorE = camara4.WorldToScreenPoint(e);
  124.                     coorF = camara4.WorldToScreenPoint(f);
  125.                     coorG = camara4.WorldToScreenPoint(g);
  126.                     coorH = camara4.WorldToScreenPoint(h);
  127.                 }
  128.  
  129.                 //Lista con todos los puntos para posteriormente obtener xmin,xmax,ymin,ymax
  130.                 List<Vector3> myList = new List<Vector3>();
  131.                 myList.Add(coorA);
  132.                 myList.Add(coorB);
  133.                 myList.Add(coorC);
  134.                 myList.Add(coorD);
  135.                 myList.Add(coorE);
  136.                 myList.Add(coorF);
  137.                 myList.Add(coorG);
  138.                 myList.Add(coorH);
  139.  
  140.                 int xMin = (int) myList.Min(x => x.x);
  141.                 int xMax = (int) myList.Max(x => x.x);
  142.                 int yMin = (int) myList.Min(x => x.y);
  143.                 int yMax = (int) myList.Max(x => x.y);
  144.        
  145.     }
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement