【发布时间】:2020-01-22 00:27:05
【问题描述】:
所以我的游戏有点像一个 3D 自上而下的射击游戏,所以我希望我的枪在鼠标所在的任何地方射击,除非我击落,否则它不会射向鼠标。如果您看过名为 Ball Wars 的 brackyes 游戏,我会尝试复制一个类似的游戏,但弹丸的射击方式不正确。
我从 blackthornprods 远程战斗教程中获得了我的脚本(这是 2d 的,所以也许这就是问题,但我不知道如何解决它):
public float speed;
public float lifeTime;
private void Start()
{
Invoke("DestoryProjectile", lifeTime);
}
private void Update()
{
transform.Translate(transform.up * speed * Time.deltaTime);
}
void DestroyProjectile()
{
Destroy(gameObject);
}
感谢任何人尝试!
这是我的另一个脚本: 摄像头主摄像头;
public GameObject projectile;
public Transform shotPoint;
private float timeBtwShots;
public float startTimeBtwShots;
void Awake()
{
mainCam = Camera.main;
}
void Update()
{
float objectDepthFromCamera = Vector3.Dot(
transform.position - mainCam.transform.position,
mainCam.transform.forward);
Vector3 cursorWorldPosition = mainCam.ScreenToWorldPoint(Input.mousePosition
+ Vector3.forward * objectDepthFromCamera);
Vector3 localUpNeeded = Vector3.Cross(Vector3.forward,
cursorWorldPosition - transform.position);
transform.rotation = Quaternion.LookRotation(Vector3.forward, localUpNeeded);
if(timeBtwShots <= 0)
{
if (Input.GetMouseButtonDown(0))
{
Instantiate(projectile, shotPoint.position, transform.rotation);
timeBtwShots = startTimeBtwShots;
}
}
else
{
timeBtwShots -= Time.deltaTime;
}
}
【问题讨论】:
-
您是否尝试在代码的其他任何地方添加
Input.mousePosition,或者这是您的整个射弹类? -
问题在于产生子弹的代码。我们需要那个代码。
-
我编辑了我的问题,你应该在那里找到它