c# - 正确瞄准坦克
问题描述
嗨,我正试图让我的坦克着火,但它似乎不起作用。我的坦克的枪有一个发射点,用于发射物体。FirePoint 是激光束实例化的点。当我转动炮塔时,虽然点消失了。重点是炮塔的一个孩子。我需要做什么?如果我解释得不够清楚,请询问,我会尽力提供帮助。
这是我的播放器控制器脚本。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float Speed = 0;
public float MaxSpeed;
public float TurnSpeed;
public float AccelRate = 1;
public float BrakeSpeed = 1;
public GameObject LaserBeam;
public GameObject FirePoint;
public Vector3 Offset;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
// Increase forward when up arrow pressed
if (Input.GetKey(KeyCode.UpArrow))
{
Speed = Speed + AccelRate;
}
// Move backward when down arrow pressed
if (Input.GetKey(KeyCode.DownArrow))
{
Speed = Speed - AccelRate;
}
// Turn when left arrow pressed
if (Input.GetKey(KeyCode.LeftArrow))
{
transform.Rotate(Vector3.down * Time.deltaTime * TurnSpeed);
}
// Turn when right arrow pressed
if (Input.GetKey(KeyCode.RightArrow))
{
transform.Rotate(Vector3.up * Time.deltaTime * TurnSpeed);
}
// Reset vehicle rotation
if (Input.GetKey(KeyCode.Return))
{
transform.eulerAngles = new Vector3(0, 0, 0);
}
// Press the brakes
if (Input.GetKey(KeyCode.Space) && (Speed > 0 || Speed < 0))
{
Speed = Speed - BrakeSpeed;
if (Speed < 0) { Speed = 0; }
}
//Ensure vehicle does not pass the maxspeed
if (Speed > MaxSpeed)
{
Speed = MaxSpeed;
}
//Move vehicle
transform.Translate(Vector3.right * Time.deltaTime * Speed);
if (Input.GetKey(KeyCode.UpArrow) == false && Speed > 0)
{
Speed = Speed - AccelRate;
}
//Fire
if (Input.GetKeyDown(KeyCode.F))
{
Instantiate(LaserBeam, FirePoint.transform.position + Offset, FirePoint.transform.rotation);
}
}
}
解决方案
我修好了它!我只是将偏移量设置为 0,0,0 并且它起作用了。
推荐阅读
- python - 如何系统地将列表中的一个数字与列表的其余部分进行比较 [Python]
- javascript - 如何组合多个 observable、RxJS 的结果?
- vue.js - 具有代理和 IE11 兼容性的 VueJS v2.6+ 反应系统
- google-app-maker - 通过电子邮件从目录中获取 Appmaker 缩略图
- java - Java Jackson如何在自定义序列化程序中为对象使用默认序列化程序
- ruby-on-rails - 使用 strftime 的未定义方法
- bash - 使用 bash 或 awk 显示两个 csv 文件的数据差异
- ios - 在 Apple Store 上为公司分发 iOS 应用程序
- python - 从行中提取特定列并合并列
- corda - 使用 Corda OS RPC 客户端连接到 Corda Enterprise 节点