问题出在哪里? :在武器代码中。
错误:Vector3
哪款游戏引擎? :Unity
我正在制作在线FPS游戏。这是我的武器代码:
using UnityEngine;
public class silah : MonoBehaviour {
public float damage = 10f;
public float range = 100f;
public Camera fpscam;
// Update is called once per frame
void Update () {
if (Input.GetButtonDown("Fire1"))
{
Shoot();
}
void Shoot()
{
RaycastHit hit;
if (Physics.Raycast(fpscam.transform.rotation, fpscam.transform.forward out hit, range))
{
Debug.Log(hit.transform.name);
}
}
}
}
但是在这部分它给了我Vector3错误:
RaycastHit hit;
if (Physics.Raycast(fpscam.transform.rotation, fpscam.transform.forward out hit, range))
{
Debug.Log(hit.transform.name);
}
我做错了什么?
答案 0 :(得分:2)
你已经在<{strong> Shoot
内定义了Update
函数,你错过了@DaisyShipton指出的昏迷
void Update ()
{
if (Input.GetButtonDown("Fire1"))
{
Shoot();
}
}
void Shoot()
{
RaycastHit hit;
if (Physics.Raycast(fpscam.transform.position, fpscam.transform.forward, out hit, range))
{
Debug.Log(hit.transform.name);
}
}
编辑:@Alexey指出了Physics.Raycast
答案 1 :(得分:0)
fpscam.transform.rotation
返回Quaternion
。 Physics.Raycast
方法将第一个参数Vector3
作为参数。尝试将第一个参数更改为fpscam.transform.position
观看https://docs.unity3d.com/ScriptReference/Physics.Raycast.html