Передвижение 2D в Unity

Содержание

Слайд 2

Прямолинейное нефизическое

Прямолинейное нефизическое

Слайд 3

transform.Translate(Vector2.направление );

Прямолинейно перемещает объект в нужном направлении. В 2д это: left,

transform.Translate(Vector2.направление ); Прямолинейно перемещает объект в нужном направлении. В 2д это: left, right,up,down.
right,up,down.

Слайд 4

Пример

using UnityEngine;
using System.Collections;
public class ExampleClass: MonoBehaviour
{
void

Пример using UnityEngine; using System.Collections; public class ExampleClass: MonoBehaviour { void Update
Update ()
{
// Переместить объект вперед по оси x вправо на 1 единицу в секунду.
transform.Translate(Vector2.right * Time.deltaTime);
// Перемещаем объект вверх в мировом пространстве на 1 единицу в секунду.
transform.Translate(Vector2.up * Time.deltaTime, Space.World);
}
}

Слайд 5

Из пункта а в пункт б (не физический)

Из пункта а в пункт б (не физический)

Слайд 6

Vector2.Lerp ( Vector2 a , Vector2 b , float t );

Линейно переходим

Vector2.Lerp ( Vector2 a , Vector2 b , float t ); Линейно
из пункта a в пункт b с шагом t.
Параметр t ограничен диапазоном [0, 1].
Когда t= 0 возвращается a (то есть остаемся в пункте а).
Когда t= 1 возврат b (телепартируемся в пункт б).
Когда t= 0,5 возвращает среднюю точку a и b.

Слайд 7

Пример

using UnityEngine;
public class Example : MonoBehaviour
{
public Vector2 destination;
void FixedUpdate()
{

Пример using UnityEngine; public class Example : MonoBehaviour { public Vector2 destination;
//Moves the GameObject from it's current position to destination over time
transform.position = Vector2.Lerp(transform.position, destination, Time.deltaTime);
}
}

Слайд 8

Телепортация (не физическое)

Телепортация (не физическое)

Слайд 9

Transform.position

Перемещает объект в указанные координаты.

Transform.position Перемещает объект в указанные координаты.

Слайд 10

Пример

void FixedUpdate()
{
Vector2 position = transform.position;
position.x = position.x +

Пример void FixedUpdate() { Vector2 position = transform.position; position.x = position.x +
0.1f;
transform.position = position;
}

Слайд 11

Движение в направлении с указанной скоростью

Движение в направлении с указанной скоростью

Слайд 12

Rigidbody2D.velocity

Линейная скорость твердого тела в единицах в секунду.
Скорость задается как вектор с

Rigidbody2D.velocity Линейная скорость твердого тела в единицах в секунду. Скорость задается как
компонентами в направлениях X и Y (в 2D-физике направление Z отсутствует). Значение обычно устанавливается не напрямую, а с помощью силы .

Слайд 13

Пример

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MoveVelocity : MonoBehaviour
{
public Rigidbody2D rb;
void

Пример using System.Collections; using System.Collections.Generic; using UnityEngine; public class MoveVelocity : MonoBehaviour
FixedUpdate()
{
rb.velocity = new Vector2(0.0f, 2.0f);
}
}

Слайд 14

Движение с ускорением (физическое)

Движение с ускорением (физическое)

Слайд 15

Rigidbody2D .AddForce

public void AddForce(Vector2 force, ForceMode2D mode = ForceMode2D.Force);
Примените силу к твердому

Rigidbody2D .AddForce public void AddForce(Vector2 force, ForceMode2D mode = ForceMode2D.Force); Примените силу
телу(как будто пнули мячик)
Сила задается как два отдельных компонента в направлениях X и Y (в 2D-физике нет направления Z). Объект будет ускоряться силой в соответствии с законом сила = масса * ускорение - чем больше масса, тем больше сила, необходимая для ускорения до заданной скорости.
Если вы не укажете ForceMode2D, будет использоваться значение по умолчанию. По умолчанию в этом случае используется ForceMode2D.Force, который добавляет силу с течением времени, используя массу.

Слайд 17

Пример 1

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Move : MonoBehaviour
{
public Vector2

Пример 1 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Move :
direction;
public Rigidbody2D rb2D;
private float thrust = 1f;
void FixedUpdate()
{
rb2D.AddForce(direction * thrust);
}
}
Имя файла: Передвижение-2D-в-Unity.pptx
Количество просмотров: 43
Количество скачиваний: 0