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
уже был
Сейчас нет на сайте
Цитата (MadMax )
Начал изучать юнити и C#
Вай, поздравляю!!! +1 школоло в рядах юнити...
Ты не хочешь знать, что гений это я Ты же мой футляр, ты платье для меня!
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 - Тема Скачать