Jump to content
Unity Insider Forum

pcace

Members
  • Gesamte Inhalte

    33
  • Benutzer seit

  • Letzter Besuch

pcace's Achievements

Advanced Member

Advanced Member (3/3)

0

Ansehen in der Community

  1. pcace

    Bounds und localposition

    Hi, ich habe mal wieder eine bestimmt sehr einfache Programierfrage: ich habe hier ein script mit dem ich ein eine bounding box um ein Objekt mache, und diese nutze, um ein 2. Objekt so zu verschieben, dass es der skalierung des ersten entspricht. strasse = Street.transform.localScale; Street.transform.localScale =new Vector3 (pin_strasse_value, 1, 1); //Skalieren der Strasse mit Arduino PinA0 (MAPPED, SMOOTHED) Bounds bounds_strasse = new Bounds(Vector3.zero, Vector3.zero); //Boundingbox der Strasse erzeugen Collider[] colliders_strasse = Street.GetComponents<Collider>(); foreach (Collider collider1 in colliders_strasse) { bounds_strasse.Encapsulate(collider1.bounds); } // Debug.Log (bounds_strasse.size.x/2); //Debug log, x value bounding box der Strasse boardstein_l.transform.localPosition =new Vector3 (bounds_strasse.size.x/2, 0, 0); // Boardsteine an Strassenboundingbox anpinnen boardstein_r.transform.localPosition =new Vector3 (-bounds_strasse.size.x/2, 0, 0); Bounds bounds_fussweg_l = new Bounds(Vector3.zero, Vector3.zero); //Boundingbox der Strasse erzeugen Collider[] colliders_fussweg_l = fussweg_l.GetComponents<Collider>(); foreach (Collider collider2 in colliders_fussweg_l) { bounds_fussweg_l.Encapsulate(collider2.bounds); } Debug.Log (bounds_strasse.size.x/2); //Debug log, x value bounding box der Strasse Debug.Log (bounds_fussweg_l.size.x/2); //Debug log, x value bounding box der Strasse Debug.Log (fussweg_l.transform.localPosition.x); fussweg_l.transform.localPosition = new Vector3 (bounds_strasse.size.x / 2+5f, 0.15f, 0); das funktioniert so wie ich es oben gepostet habe ganz gut. In der letzten Zeile verschiebe ich fussweg_l auf der x Achse um die häfte der Strassenbreite + 5 (was die häflte des fußwegs ist). Damit sitzt der fußweg immer am rand der strasse. Ich möchte nun aber nicht das +5f haben. sonder dachte mir, ich kann einfach + hälfte der boundingbox des fußwegs nehmen fussweg_l.transform.localPosition = new Vector3 ((bounds_strasse.size.x / 2) + (bounds_fussweg_l.size.x / 2), 0.15f, 0); . Leider funktioniert das wiederum nicht, da dann mein fußweg immer weiter von der straße abrückt, je größer ich die strasse skaliere. Warum ist das so? Gruß Pcace
  2. Ok, ich habe es jetzt einfach so gelöst: http://www.uniduino.com/ kostet ein wenig, funktioniert aber ohne Probleme (jedenfalls bisher )
  3. Oh, natürlich, ich habe natürlich bei mir im Code nicht COM3 stehen... da steht /dev/tty.usbmodemfa131 (das ist der angeschlossene Arduino) das problem schein aber ein ganz anderes zu sein: Das jedenfalls habe ich in dem Verlinkten Thread gelesen... Ideen wie man das behben könnte? Gruß Pcace
  4. Hallo, ich versuche grad verzweifelt das gleiche auf einem Mac (10.9) zum laufen zu bekommen: Hier ist der Arduino Code: void setup() { Serial.begin(9600); } void loop() { Serial.println(1); Serial.flush(); delay(1000); Serial.println(2); Serial.flush(); delay(1000); } und hier der Unity c# code: using UnityEngine; using System.Collections; using System.IO.Ports; public class MoveSphere : MonoBehaviour { public float speed; private float amountToMove; SerialPort sp = new SerialPort("COM3", 9600); void Start (){ sp.Open (); sp.ReadTimeout = 1; } void Update (){ amountToMove = speed * Time.deltaTime; if (sp.IsOpen) { try { MoveObject(sp.ReadByte()); print(sp.ReadByte()); } catch (System.Exception){ } } } void MoveObject (int Direction) { if (Direction == 1){ gameObject.transform.localScale += new Vector3(0,0,0.1f); } if (Direction == 2){ gameObject.transform.localScale += new Vector3(0,0,-0.1f); } } } Ich bekomme leider immer IOException: No such file or directory. Ist das eine MacOSX sache oder mache ich irgendetwas komplett falsch? Gruß Pcace
×
×
  • Neu erstellen...