Пятница, 22 Ноября 2024, 11:28

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
[2D Нужна помощь] Перемещение объекта.
iWudsДата: Вторник, 18 Февраля 2014, 12:37 | Сообщение # 1
был не раз
Сейчас нет на сайте
Всем добрый день. Вообщем проблема следующая. Как бы только начал разбираться в C# и столкнулся с проблемой при написании скрипта передвижения. У меня при нажатии на W должен происходить прыжок. По сути прыгает, но слишком резко. Как можно сделать так чтобы медленнее и красивее прыжок шёл? А то такое чувство что тупо телепортируется вверх объект и всё. Ниже скрипт, там я пробывал двумя способами, но ни одним не вышло сделать красивше(

Код
using UnityEngine;
using System.Collections;

public class Move : MonoBehaviour {
  private GameObject player;
  public float speedJump = 5.0f;
  public float speedWalk = 0.1f;
  public int jump = 4;
  public float speed = 6;
   

  // Use this for initialization
  void Start () {
   player = (GameObject)this.gameObject;
   
  }
   
  // Update is called once per frame
  void Update () {
   if (Input.GetKeyDown(KeyCode.W)) {  
    // transform.Translate (new Vector2 (0.0f, speedJump) * Time.deltaTime);  
    player.transform.position += player.transform.up * jump * Time.deltaTime;
   }

   if (Input.GetKey(KeyCode.A)) { transform.Translate (new Vector2 (-speedWalk, 0.0f)); }

   if (Input.GetKey(KeyCode.D)) { transform.Translate (new Vector2 (speedWalk, 0.0f)); }
    
    
   
  }
}


Начал разработку игр на HGE. Также работаю в Ps.
lentinantДата: Вторник, 18 Февраля 2014, 13:19 | Сообщение # 2
ленивый программист
Сейчас нет на сайте
Цитата iWuds ()
По сути прыгает, но слишком резко. Как можно сделать так чтобы медленнее и красивее прыжок шёл? А то такое чувство что тупо телепортируется вверх объект и всё.

Потому что, по сути, ты его вверх и телепортируешь. Вообще, обычно прыжок делают с помощью rigidbody.AddForce


Когда-то тут будут ссылки на крутые проекты. Или нет.
IlyaKosДата: Вторник, 18 Февраля 2014, 14:51 | Сообщение # 3
участник
Сейчас нет на сайте
rigidbody.velocity+=transform.up*JumpForce;
iWudsДата: Вторник, 18 Февраля 2014, 18:10 | Сообщение # 4
был не раз
Сейчас нет на сайте
Цитата lentinant ()
Потому что, по сути, ты его вверх и телепортируешь. Вообще, обычно прыжок делают с помощью rigidbody.AddForce

Спасибо, буду знать.

IlyaKos,

А тебе отдельное спасибо за подробности, сейчас опробую.

Добавлено (18.02.2014, 18:10)
---------------------------------------------
Попробывал, ошибка:

"MissingComponentException: There is no 'Rigidbody' attached to the "player" game object, but a script is trying to access it.
You probably need to add a Rigidbody to the game object "player". Or your script needs to check if the component is attached before using it.
UnityEngine.Rigidbody.AddForce (Vector3 force) (at C:/BuildAgent/work/d3d49558e4d408f4/artifacts/EditorGenerated/NewDynamics.cs:671)
Move.Update () (at Assets/Move.cs:23)"


Начал разработку игр на HGE. Также работаю в Ps.
robertonoДата: Вторник, 18 Февраля 2014, 18:25 | Сообщение # 5
Чокнутый Кот
Сейчас нет на сайте
iWuds, английский то надо учить.. Тут самый элементарный английский. Английский тебе очень понадобится в жизни...\
There is no 'Rigidbody' attached to the "player" game object, but a script is trying to access it.
Здесь нету rigidbody прикрепленного к player, но скрипт пытается получить доступ к нему.
Ты забыл поместить на игрока rigidbody.
iWudsДата: Вторник, 18 Февраля 2014, 18:46 | Сообщение # 6
был не раз
Сейчас нет на сайте
robertono, хехех) в том то и дело, что на игрока изначально был помещён Rigidbody в инспекторе - RigidBody2D, до словно то я перевёл ошибку, но вот почему она вызывается я так и не понял. RigidBody то весит на игроке(

Начал разработку игр на HGE. Также работаю в Ps.
robertonoДата: Вторник, 18 Февраля 2014, 20:42 | Сообщение # 7
Чокнутый Кот
Сейчас нет на сайте
iWuds, именно 2D ? Я с ним не работал, но если через .rigidbody. не отзывается, а на объекте он есть то можно сделать GetComponent<Rigidbody2D> () . Так он точно найдёт (если всё правильно указать)
lentinantДата: Среда, 19 Февраля 2014, 06:37 | Сообщение # 8
ленивый программист
Сейчас нет на сайте
Цитата robertono ()
GetComponent<Rigidbody2D> ()

Не надо искать компонент, он встроен в MonoBehaviour также, как и обычный rigidbody.


Когда-то тут будут ссылки на крутые проекты. Или нет.
robertonoДата: Среда, 19 Февраля 2014, 18:24 | Сообщение # 9
Чокнутый Кот
Сейчас нет на сайте
lentinant, я ж говорю я с ним не работал. В любом случае если так не работает то можно и гет компонент попробовать.. Получить компонент можно только один раз и всё)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг