Вторник, 26 Ноября 2024, 15:43

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
2D Прыжок
MadMaxДата: Воскресенье, 16 Июня 2013, 17:30 | Сообщение # 1
\o
Сейчас нет на сайте
Начал изучать юнити и C#, в качестве обучения, захотел сделать платформер. Столкнулся с проблемой, а именно прыжок. Я сделал сам прыжок, но им можно пользоваться бесконечно в воздухе. как можно сделать так, чтобы прыгать можно было только один раз от поверхности? isGrounded не работает в этом случае. вот код контроллера игрока

Код
using UnityEngine;

public class PlayerController : MonoBehaviour {
  void Update(){
  transform.Translate(Input.GetAxis("Horizontal"),0,0);

   if (Input.GetKeyDown("space")){
    rigidbody.AddForce (0, 300, 0);}
   }

    
}


[Gamiron #10] Prison Break
[2D] Revenge [iOS, Android]


ЛевшаДата: Воскресенье, 16 Июня 2013, 17:42 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
Засечь прыжок

X.cor.R (Prologue)

Сообщение отредактировал Левша - Воскресенье, 16 Июня 2013, 17:43
MadMaxДата: Воскресенье, 16 Июня 2013, 18:16 | Сообщение # 3
\o
Сейчас нет на сайте
Левша, isGrounded не работает. а по другому там никак. вот как делаю
Код
using UnityEngine;

public class PlayerController : MonoBehaviour {
  void Update(){
   
  transform.Translate(Input.GetAxis("Horizontal"),0,0);

   if (Input.GetKeyDown("space")){
    if (isGrounded()){
    rigidbody.AddForce (0, 300, 0);}
   }
  }

    
}


ошибка
Assets/PlayerController.cs(9,29): error CS0103: The name `isGrounded' does not exist in the current context


[Gamiron #10] Prison Break
[2D] Revenge [iOS, Android]




Сообщение отредактировал MadMax - Воскресенье, 16 Июня 2013, 18:23
allodsДата: Воскресенье, 16 Июня 2013, 19:53 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
Используй контроллер для isGrounded

controller.isGrounded


Сообщение отредактировал allods - Воскресенье, 16 Июня 2013, 19:57
ЛевшаДата: Воскресенье, 16 Июня 2013, 20:00 | Сообщение # 5
почти ветеран
Сейчас нет на сайте
Цитата (MadMax)
isGrounded не работает

В смысле не работает ? Это метод компонента CharacterController.

Код

var ctrl : CharacterController;
private var grounded : boolean = false;

function Update () {
       if (grounded) {}       
           var flag = ctrl.Move(transform.forward * curSpd * Time.deltaTime);     
           grounded = (flag & CollisionFlags.CollidedBelow) != 0;
}


Ну можно еще в ногах небольшой триггер прицепить и отлавливать отрыв от грунта через OnTriggerExit()


X.cor.R (Prologue)

Сообщение отредактировал Левша - Воскресенье, 16 Июня 2013, 20:05
дабл-аккДата: Воскресенье, 16 Июня 2013, 20:18 | Сообщение # 6
уже был
Сейчас нет на сайте


Ты не хочешь знать, что гений это я
Ты же мой футляр, ты платье для меня!
AlexSДата: Суббота, 22 Июня 2013, 15:37 | Сообщение # 7
был не раз
Сейчас нет на сайте
Это тебе в помощь http://docs.unity3d.com/Documentation/ScriptReference/CharacterController.Move.html
SarCasmДата: Суббота, 22 Июня 2013, 16:21 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте
И да, советую сделать силу rigidbody.AddForce (0, 300, 0) как импулься

Моя игра Gamiron#11 - Тема Скачать
  • Страница 1 из 1
  • 1
Поиск:

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