2016-07-24 5 views
0

В основном, я пытаюсь создать игру, которая основана на автоматическом скачкообразном изменении, как только наступит земля. (Контроллер, который я использую, является предварительно сделанным, может быть импортировано) для того, чтобы сделать это, я убрал функцию перехода из сценария контроллера и добавил скрипт под названием «Куб», который гласит следующее:Jump OnCollision() Сценарий не работает

using UnityEngine; 
using System.Collections; 

public class Cube : MonoBehaviour { 

     void OnCollisionStay (Collision col) 
     { 
     if (col.gameObject.name == "Blue") { 
      Rigidbody rig; 
      rig= GetComponent<Rigidbody>(); 
      rig.velocity = new Vector3 (0, 8, 0); 

      print ("collison detected"); 
     } 
      } 
     } 

после выполнения этого, я ожидал, управляемый который прыгает, как только вы ударяете о землю из-за триггера «OnCollisionStay()». Однако вместо этого я получаю быстрый скачок, что происходит, даже когда я нахожусь в воздухе, который выглядит следующим образом:

https://youtu.be/ILtRac_RgLg

ответ

1

Прежде всего, отменить все изменения, внесенные вами в сценарий RigidbodyFirstPersonController. Если возможно, удалите его и повторно импортируйте чистый из Unity.

Выберите RigidBodyFPSController GameObject, посмотрите на сценарий RigidbodyFirstPersonController, прикрепленный к нему в редакторе. Под ним есть настройка под названием Дополнительные настройки. Под Дополнительные настройки, есть переменная, называемая Shell Offset. Изменение Смещение оболочки от значения по умолчанию 0 до 0.5. Повторите игру, и эта проблема не исчезнет. Если это не сработало, увеличьте его. Это должно решить вашу проблему.

enter image description here

+0

я пытался натыкаясь его всю дорогу до 10, все еще возникают проблемы обновления: им возможность прыгать и смотреть вокруг, но я не могу двигаться Update 2: должен был проверить air controll – SpikyCat

+0

@SpikyCat Предполагается, что сейчас прыгают .. Это прыгает? Если это так, в чем проблема? – Programmer

+0

Все было исправлено, мне нужно было просто включить управление воздухом на – SpikyCat

0

вы не в воздухе, гравитация осуществления на нем. Всякий раз, когда вы выходите из столкновения, ваша скорость вверх по оси Y не работает, и сила тяжести происходит вниз.

Отключить gravity в компоненте Rigidbody FPSController, если вы не хотите использовать гравитацию.

+0

Теперь FPSController не могу двигаться на всех – SpikyCat

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