Я знаю, что об этом спрашивали несколько раз, но я верю, что мой вопрос может быть решен без особых проблем (надеюсь!) И является несколько уникальным.Я пишу сценарий мини-гольфа, который стреляет в мяч, предназначенный для стрельбы из камеры.Я не могу заставить это сделать, однако.Я уверен, что это как-то связано с camera.transform, но не уверен.Я абсолютный нуб к кодированию в Unity.Мне просто нужен простой и простой способ заставить этот чертов мяч для гольфа двигаться по прямой в любом направлении, в котором стоит камера.Пожалуйста, помогите!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class HitBall2 : MonoBehaviour
{
Rigidbody rigidBody;
bool StartedShot;
Vector3 shotStart;
Vector3 shotEnd;
Vector3 direction;
public float distance;
public float forceAdjust = 0.05f;
void Start()
{
rigidBody = this.GetComponent<Rigidbody>();
StartedShot = false;
}
void Update()
{
if (Input.GetMouseButtonUp(1))
{
rigidBody.velocity = Vector3.zero;
this.transform.position = Vector3.zero;
StartedShot = false;
}
// Starting shot
if (!StartedShot && Input.GetMouseButtonDown(0))
{
StartedShot = true;
shotStart = Input.mousePosition;
}
// Ending shot
if (StartedShot && Input.GetMouseButtonUp(0))
{
shotEnd = Input.mousePosition;
direction = Camera.main.transform.forward - shotEnd;
float distance = direction.magnitude;
StartedShot = false;
Vector3 shootDirection = new Vector3(direction.x, 0.0f, direction.y);
rigidBody.AddForce(shootDirection * rigidBody.mass * forceAdjust, ForceMode.Impulse);
}
}
}