团结 - Vector3错误

时间:2018-06-06 13:39:03

标签: c# unity3d

  

问题出在哪里? :在武器代码中。

     

错误: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);
        }

我做错了什么?

2 个答案:

答案 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返回QuaternionPhysics.Raycast方法将第一个参数Vector3作为参数。尝试将第一个参数更改为fpscam.transform.position

观看https://docs.unity3d.com/ScriptReference/Physics.Raycast.html