Feb 122015
 

Das Script auf das Objekt ziehen, dann hat man mitthis. die Objekt-Eigenschaften.
Beispiel:

// Update is called once per frame
void Update () {
this.transform.Rotate (Vector3.left, rotationSpeed * Time.deltaTime, Space.World);
}

Hat ein Objekt dieses Script, dann dreht sich das Objekt.

Wie kann man ein anderes Objekt ändern?

Wie bekommt man ein anderes Objekt instantiiert? Über FIndByTag oder ähnliche Methoden?

Es ist einfacher!

Das Script bekommt ein public Property

public GameObject gameObject;

Nun kann man direkt von Unity darauf zugreifen und das Objekt, dass im Code benötigt wird benutzen. Beim Starten der Anwendung werden die Objekte dann injekted.
Im Beispiel soll sich nun ein anderes Objekt drehen, hier der Code

public GameObject gameObject;

public float rotationSpeed=60f;
 // Use this for initialization
 void Start () {
 }
 // Update is called once per frame
 void Update () {
 gameObject.transform.Rotate (Vector3.left, rotationSpeed * Time.deltaTime, Space.World);
 }

Und hier der Screenshot. Ein Objekt in der Welt hat das Script und das Objekt B wurde per Drag and Drop hinzugefügt.

Vorher
Bildschirmfoto 2015-02-12 um 21.26.32

Nachher
Bildschirmfoto 2015-02-12 um 21.25.44

 

Feb 112015
 

Es ist hilfreich, wenn man die VR One auch mit der Tastatur bewegen kann. Dadurch erspart man sich jedes Mal ein Deployen.

Nachfolgendes Script einfach auf VROneSDK ziehen und schon lässt dich die VR One mit der Tastatur bedienen.


using UnityEngine;
using System.Collections;

public class SImpleMove : MonoBehaviour {

public float schritt = 0.2f;
// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {
if (Input.GetKeyDown(KeyCode.LeftArrow))
{
Vector3 position = this.transform.position;
position.x =position.x-schritt;
this.transform.position = position;
}
if (Input.GetKeyDown(KeyCode.RightArrow))
{
Vector3 position = this.transform.position;
position.x=position.x+schritt;
this.transform.position = position;
}
if (Input.GetKeyDown(KeyCode.UpArrow))
{
Vector3 position = this.transform.position;
position.y=position.y+schritt;
this.transform.position = position;
}
if (Input.GetKeyDown(KeyCode.DownArrow))
{
Vector3 position = this.transform.position;
position.y=position.y-schritt;
this.transform.position = position;
}
}
}

Wer die Kamera nicht nach rechts und links bewegen, sondern drehen will, ändert den Code für rechts und links auf:

if (Input.GetKeyDown(KeyCode.LeftArrow))
{
transform.Rotate (Vector3.up, -schritt * rotationSpeed * Time.deltaTime);
}
if (Input.GetKeyDown(KeyCode.RightArrow))
{
transform.Rotate (Vector3.up, schritt * rotationSpeed * Time.deltaTime);
}

Empfohlen mit
public float rotationSpeed = 60.0f;
public float schritt = 10f;

Public, damit es beim Testen von aussen änderbar ist!