好的,所以我打算将多人游戏放入我的游戏中,并且会有多个带有自己相机的玩家对象。

每个玩家应该能够通过光线投射而不是其他玩家对象来点击场景中他们自己的可选对象。

如果允许进行光线投射的播放器的摄像机选择对象,我将如何比较?

我可能正在接近多人游戏和摄影机,而这些全都错了,所以如果有人知道并且可以指出这一点,那就太好了。

如果我要说的话没有道理,请随时问我,我很乐于阐述。

最佳答案

可能是我误会了你,但是,

当您进行光线投射时,您只需“发出光线”即可。

(实际上,它可能在任何地方-可能与相机无关。例如,当您悬挂汽车时,由于某些原因,您发出的光线指向地面向下-您知道吗?)

因此,您的问题的答案很简单,对于X摄像机,您确实使光线来自该摄像机!

https://docs.unity3d.com/Manual/CameraRays.html

希望这就是你的意思。

简单地从Unity示例中...

   RaycastHit hit;
    Ray ray = camera.ScreenPointToRay(Input.mousePosition);

    if (Physics.Raycast(ray, out hit)) {
        Transform objectHit = hit.transform;

        // Do something with the object that was hit by the raycast.
    }


我认为您只是想向被击中的对象发送消息。很简单的:

假设您在命中对象上有一个名为“ Robot.cs”的脚本。

Robot hitRobot = objectHit.GetComponent<Robot>();


现在,您在命中的对象上具有该组件。

假设在Robot.cs中有一个函数“ IWasHit()”

所以下一步就是

hitRobot.IWasHit();

你看?简单! :)

请享用

关于c# - 我如何检测哪个摄像机发出了光线?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54847399/

10-15 00:37