2014-10-29 3 views
0

Я работаю над kinect V2, и я хотел бы сделать скрипт, который будет прикреплять позицию игрового объекта (перемещение с помощью основного трекера) и камеру моей сцены, чтобы создать иллюзию голограммы.Как установить положение/поворот объекта GameObject в положение/поворот камеры

Я обращаюсь к нему с камерой как к ребенку игрового объекта, смотрю на орбиту (вращение) камеры и матрицу проекции, чтобы камера перевернула некоторую ось камеры.

Но матрица проекции создает некоторые ошибки с текстурами и освещением моей сцены. Вот почему я хотел бы создать C# скрипта, которые говорят:

камера Положение = положение геймобжекты (х, у, -z)

Если позиция геймобжекты х> 0 Else камеры вращения у увеличения.

Если положение gameobject x < 0 Else rotation camera y уменьшение.

Если положение gameobject y> 0 Else rotation camera y уменьшается.

Если положение gameobject y < 0 Else rotation camera y увеличивается.

Ничего общего для вращения камеры z-оси.

Можете ли вы помочь мне получить это на C#?

Это не мой сценарий :), а только основная идея, которую я хотел бы сделать. Я надеюсь получить вашу помощь для начинающего разработчика!

Thank's много

+0

Кто-то, делающий этот скрипт, может работать, но вам нужно будет сделать хотя бы некоторые настройки minamum. Если вы планируете использовать Unity без каких-либо знаний по сценариям, я предлагаю посмотреть в PlayMaker http://www.hutonggames.com/. У вас, похоже, есть логика, и это позволит вам делать то, что вы хотите. Он использовался в игре Blizzards Hearthstone, чтобы вы знали, что она может быть мощной. – marsh

+0

Спасибо за ваш ответ! Я смотрю это. Но моя сцена готова, я начал сценарий, но я ищу в Unity API, где скрипт мог бы присоединить позицию между двумя объектами и как сделать условия (пример: если положение gameobject x> 0.) Можете ли вы дать мне пример, пожалуйста? – Juan

ответ

1

Это своего рода трудно сказать, что вы хотите. Вот какой-то код psuedo, который должен помочь вам на вашем пути. У меня нет единства, чтобы проверить его, и он не является полным. Но это даст вам основы, чтобы узнать, что вы пытаетесь сделать.

using UnityEngine; 
using System.Collections; 

public class TestScript: MonoBehaviour { 

    public GameObject camera; 
    public GameObject gameObject; 
    public int rotationAmount = 1; 
    // Update is called once per frame 
    void Update() { 

     Vector3 camera = new Vector3(gameObject.transform.position.x, gameObject.transform.position.y, -gameObject.transform.position.x); 

     if(gameObject.transform.position > 0) { 
      camera.x -= rotationAmount; 
     } 

     camera.transform.position = camera; 
    } 
} 

Вы должны назвать # скрипт C TestScript перетащить его на GameObject и перетащите камеру и геймобжекты в слотах. Если вы не знаете, как это сделать, я предлагаю вам больше читать в Unity.

+0

Идеально для меня! Я знаю, что прочитал и создаю базовый скрипт, но мне нужно больше работать. Я знаю Unity3D, поэтому с вашей помощью это может быть хорошо. Я дам вам отзывы. Большое спасибо!! – Juan

+0

Прохладный, дай мне верх, если это поможет. – marsh

+0

Привет! Я пробовал сценарий, но он сказал, что «Оператор'> 'не может применяться к операндам типа UnityEngine.Vector3 и 'int'. My Game Object - это ребенок, это проблема? Спасибо за все! – Juan

Смежные вопросы