2015-11-25 3 views
0

Я новичок в единстве 3D-игры. Я создаю игру с головоломкой из дерева. Я хочу перемещать небольшие части дерева в соответствии с положением мыши. Я использую rigidbody2D. Во время движения я также хочу обнаружить столкновение с другими деревянными частями и любым другим препятствием. Пожалуйста, помогите мне.Move Rigidbody2D, когда мышь перетащить

+2

Привет и добро пожаловать в SO. Просьба представить код с тем, что вы пробовали до сих пор. –

+0

Что произойдет, если игрок попытается переместить что-то в другой объект? –

ответ

0

Вы сценарий вероятно, будет выглядеть примерно так (это зависит от конкретной функциональности, которую вы ищете):

#pragma strict 

private var moveWithMouse : boolean = false; 
private var lastMousePosition : Vector3; 

function Update() 
{ 
    var changeInMousePosition : Vector3 = Vector3(0,0,0); 
    if (lastMousePosition != null) 
    { 
     changeInMousePosition = Input.mousePosition-lastMousePosition; 
    } 
    lastMousePosition = Input.mousePosition; 
    if (moveWithMouse) 
    { 
     transform.position += Camera.main.ScreenToWorldPoint(changeInMousePosition) - Camera.main.ScreenToWorldPoint(Vector3(0,0,0)); 
    } 
} 

function OnMouseDown() 
{ 
    moveWithMouse = true; 
} 

function OnMouseUp() 
{ 
    moveWithMouse = false; 
} 

Здесь все страницы документации, которые объясняют орнаментальные части кода выше.

http://docs.unity3d.com/ScriptReference/MonoBehaviour.OnMouseDown.html http://docs.unity3d.com/ScriptReference/MonoBehaviour.OnMouseUp.html http://docs.unity3d.com/ScriptReference/Input-mousePosition.html http://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html

Если есть что-то в коде, который до вас, и не распространяется на страницах документации (например, Vector3, Transform, функция обновления и т.д ..) то вам будет полезно посетить руководство для новичков до единства, прежде чем пытаться выполнить проект.

https://unity3d.com/learn/tutorials/modules/beginner/live-training-archive/coding-for-the-absolute-beginner


Для того, чтобы использовать мой сценарий, должен:

  • Создать GameObject (тот, который вы хотите быть перетаскиваемым)
  • Добавить спрайт визуализатор к нему (и выберите изображение, которое вы хотите для него)
  • Добавить 2d коллайдер (polygon2d для точности , Circle2d или Box2D для скорости)
  • Создайте новый скрипт и добавить его в GameObject

обучения, как использовать редактор Юнити может быть даже более важным, чем само программирование, когда речь идет о создании и настройке самостоятельно игры, поэтому, если вы не знаете, как это сделать (создайте GameObject и добавьте Компоненты), вы должны обратиться к руководству для новичков в редакторе Unity.

Вот набор обучающих страниц о редакторе Unity в: http://docs.unity3d.com/Manual/UnityBasics.html

Вот страница я думаю, самое главного: http://docs.unity3d.com/Manual/UnityBasics.html


Надеется, что это помогает. Cheers

+0

Помните, что код не проверен. Я не знаю, будет ли это работать, но вам нужно начать. Свяжитесь со мной, если у вас есть непоправимые проблемы –

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