Плагин Ruby on Rails для показа номеров строки в журнале для SQL-запросов

Посмотрите скриншот сцены . Просто создайте пользовательский интерфейс с EventSystem. Создайте кнопку в вашем пользовательском интерфейсе. Присоедините EventTrigger к вашей кнопке. Теперь создайте два события на вашем EventTrigger: (1) Указатель вниз (будет вызываться, когда кнопка нажата.) (2) Указатель вверх (будет вызываться, когда кнопка отпущена).

Присоедините Сценарий в конце этого ответа в качестве компонента для вашего игрока или куба или что вы хотите переместить. Теперь вы можете видеть на скриншоте, что открытый метод MoveCube.MoveLeft get вызывается при каждом нажатии MoveLeftButton. Всякий раз, когда он выпущен, вызывается MoveCube.StopMovingLeft. Шутка о буле, который будет переключаться с ложного на истинный и обратно. Фактическое движение происходит в обновлении, которое по существу следует той же логике, что и предоставленный вами скрипт. Надеюсь, это поможет.

private bool moveLeft, moveRight;

void Start ()
{
    // Get Rigidbody or CC or whatever you use to move your object.
}

void Update ()
{
    if (moveLeft)
    {
        // Move Left
        Debug.Log("Moving Left");
    }
}

public void MoveLeft()
{
    moveLeft = true;
}

public void StopMovingLeft()
{
    moveLeft = false;
}

РЕДАКТИРОВАТЬ: Очень важно - я только что увидел, что вы используете transform.position + = Vector3 для перемещения объекта. У вас будут большие проблемы с точным столкновением, так как ваша функция буквально телепортирует ваш игровой объект на новую позицию. Чтобы избежать плохого столкновения, вы должны использовать Rigidbody.AddForce или, если вы хотите использовать transform, вы можете легко использовать transform.Translate:

Из документов Unity: transform.Translate (Vector3.forward * Time.deltaTime); [116 ]

РЕДАКТИРОВАТЬ 2: Вот код, который вы запросили в комментарии к этому ответу. Просто скопируйте скрипт, он должен работать нормально.

private bool moveLeft, moveRight;

// Create the rigidbody and the collider
private Rigidbody rb;
private Collider col;

// Create a variable you can change in inspector window for speed
[SerializeField]
private float speed;

void Start ()
{
    // You can either use a CC (Character Controller) or a Rigidbody. Doesn't make that much of a difference.
    // Important thing is, if you use a rigidbody, you will need a collider as well. Collider detect collision
    // but rigidbodies do the actual work with regards to physics. In this case we use rigidbody/collider

    // Get the rigidbody
    // If you are making a 2D game, you should use Rigidbody2D
    // The rigidbody will simulate actual physics. I tested this script, the 
    // rigibody will accelerate and will need time to slow down upon breaking
    // You can change it's mass and stuff
    rb = GetComponent();

    // Now in this case we just get any collider. You can be more specific, if you know which collider your gameobjects has
    // e.g. BoxCollider or SphereCollider
    // If you are making a 2D game, you should use Collider2D
    col = GetComponent();
}


void Update ()
{
    if (moveLeft)
    {
        // If you make a 2D game, use Vector2
        rb.AddForce(Vector3.left * speed);
    }
}

public void MoveLeft()
{
    moveLeft = true;
}

public void StopMovingLeft()
{
    moveLeft = false;
}

7
задан Yojik 7 November 2008 в 03:23
поделиться

1 ответ

Этот плагин помещает отслеживание стека в Ваши журналы. Поскольку Daniel упоминает, что это было бы хитро для определения строки, которую Вы хотели, но я подозреваю, что Вы могли разработать что-то, и сама трассировка может быть достаточно хорошей.

https://github.com/ruckus/active-record-query-trace

Будьте осторожны для установки его так, можно включить и выключить его. Я использовал это некоторое время, и, в то время как полезный для того, чтобы разыскать определенные ошибки, это свело меня с ума, если это шло все время.

9
ответ дан 7 December 2019 в 03:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: