Я занимаюсь новым проектом, в котором одна из моих основных механик - это крюк, в котором, если объект попал, он либо потянул, либо уничтожил.
Пока я просто пытаюсь заставить эту механику движения работать,Вот мой код:
public class Hook : MonoBehaviour
{ //Remember Couroutine is pretty much update()
public Transform Target;
private float Thrust; // Int for motion
public Rigidbody rb;
public float HookTravelTime = 5f; //Define float for seconds
private bool moving = false; //Are we currently moving?
public int time;
// Use this for initialization
void Start()
{
Thrust = 75f;
rb = GetComponent<Rigidbody>();
print("working");
}
void OnCollisionEnter(Collision col)
{
if (col.gameObject.name == "enemy")
{
print("xd");
Destroy(col.gameObject);
}
}
void ThrowHook()
{
if (Input.GetKeyDown(KeyCode.H) && !moving)
{
moving = true;
var moveIncrement = new Vector3(Thrust, 0, 0 * Time.deltaTime); // setting values? difference between var and int?
while (time <= HookTravelTime)
{
time = Time.deltaTime + 1;// I want the int time to increase by 1 every "second". Cannot impicitly convert type float to iny. An explicit conversion exists.???
// How do I put VAR MOVEINCREMENT into here? I still don't understand what a var is. Why can't I just make a void()
}
if (time >= HookTravelTime)
{
transform.position = Vector3.MoveTowards(transform.position, Target.position, Thrust); // return to empty object which is in front of player.
}
}
}
// Update is called once per frame
void Update()
{
ThrowHook();
}
}
Проблемы заключаются в том, что я аннотировал в коде, тем не менее я их рассмотрю.
В Void ThrowHook () я пытаюсь уменьшитьИнт (время) до +1 за каждую секунду, прошедшую в игре.Я попытался синхронизировать это с Time.Delta Time, но это, однако, не работает.Я понятия не имею, что я здесь делаю.
Прямо над циклом while в ThrowHook () мне сказали создать переменную для хранения в ней информации (Var MoveIncrement).Я пытался вставить в него код постоянного движения, но понятия не имею, как его вызвать.Если возможно, не могли бы вы сказать мне, если эта строка кода неверна
Пожалуйста, пока игнорируйте Bool Moving, поскольку я снова не был последовательным, пытаясь разобраться в этой проблеме.
Надеюсь, я сделалэти проблемы проясняются, извините, если это не так, я тороплюсь заниматься регби.
TLDR: я хочу, чтобы крюк имел постоянное усилие вперед, пока «время» не прошло 5секунд пока нет.Если это так, то крюк возвращается в целевую позицию перед игроком.
Спасибо: P