#c# #unity3d
#c# #unity3d
Вопрос:
Есть проигрыватель, который должен перемещаться к целевому объекту при нажатии кнопки.
Теперь я использую просто onClick в моей кнопке на функции Shoot()
; и он запускается, когда targetMenu.help == 2
, но объект проходит один кадр в секунду, и мне нужно щелкнуть по нему несколько раз, чтобы это достигло цели.
С другой стороны, если я помещу Shoot();
в обновление, все пройдет гладко, но до того, как я нажму кнопку, потому что targetMenu.help == 2
уже.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class moveTowards : MonoBehaviour
{
float speed = 5.0f;
public Transform target;
public void Update()
{
}
public void Shoot()
{
if (targetMenu.help == 2)
{
transform.LookAt(target);
transform.position = transform.forward * speed * Time.deltaTime;
Debug.Log(targetMenu.help);
}
if (targetMenu.help == 4)
{
transform.LookAt(target);
transform.position = transform.forward * speed * Time.deltaTime;
targetMenu.help = 5;
Debug.Log(targetMenu.help);
}
}
}
Комментарии:
1. в чем ваш вопрос?
Ответ №1:
Вам нужно использовать сопрограмму и запустить свой код оттуда или сделать обновление условным.
Фрагмент для условного обновления
bool isButtonPressed = false;
public void Update()
{
if(isButtonPressed)
Shoot();
}
public void PressedButton()
{
isButtonPressed = true;
}