@Deathgar

Стрельба из лука, как реализовать выброс стрелы?

Есть код:

using UnityEngine;
using System.Collections;

public class Bow : MonoBehaviour {
	public Transform arrowPrefab; //префаб стрелы
	private bool checkArrow; //проверка создания стрелы(создана или нет)
	private Transform arrow; //созданная стрела в окне
	public float speedArrow; // скорость стрелы
	private Transform transformSpawners;//расположение лука
	// Use this for initialization
	void Start () {
		checkArrow = false;
		transformSpawners = gameObject.transform;
	}
	
	// Update is called once per frame
	void Update () {

		if (Input.GetMouseButtonDown(0) && checkArrow == false) {
			arrow = (Transform)Instantiate(arrowPrefab, 
			                    transformSpawners.position,
			                    Quaternion.identity);
			arrow.transform.rotation = transformSpawners.rotation;

			checkArrow = true;

		}		
		if (checkArrow && Input.GetMouseButton(0)) {
			arrow.transform.position = GameObject.Find ("Spawn").transform.position;
		}
		if(checkArrow && Input.GetMouseButtonUp(1))
		{
			Destroy(arrow.gameObject);
			checkArrow = false;
		}

		if(checkArrow && Input.GetMouseButtonUp(0))
		{	
			checkArrow = false;
		}
	}
}


Как в этом моменте реализовать стрельбу из лука, да ещё и по параболе?
Пробовал AddForce по разному менять, но ничего не вышло, пробовал просто изменять transform, так же ничего не вышло.

if(checkArrow && Input.GetMouseButtonUp(0))
		{	
			checkArrow = false;
		}
  • Вопрос задан
  • 2064 просмотра
Решения вопроса 1
MrMureno
@MrMureno Куратор тега Unity
VR for all
arrowPrefab у вас объект с Rigidbody ?
Отлично работает AddForce в случае наличия физического тела. Просто не забыть что тип силы бывает разный, для случая стрелы отлично подходит импульс.

как то так
arrow.AddForce(arrow.transform.forward * forcePower, ForceMode.Impulse);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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