Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 前进是不断变化的_C#_Unity3d_Vector_Transform_Raycasting - Fatal编程技术网

C# 前进是不断变化的

C# 前进是不断变化的,c#,unity3d,vector,transform,raycasting,C#,Unity3d,Vector,Transform,Raycasting,因此,我正在开发一个开门系统,通过光线投射检查用户是否将屏幕中央的焦点对准门把手。以下是我的代码中不起作用的部分: private void Update() { if (Physics.Raycast(Camera.transform.position, Camera.transform.forward, out rayHit, Distance)) { Debug.DrawRay(Camera.transform.position, Camera.transf

因此,我正在开发一个开门系统,通过光线投射检查用户是否将屏幕中央的焦点对准门把手。以下是我的代码中不起作用的部分:

private void Update()
{
    if (Physics.Raycast(Camera.transform.position, Camera.transform.forward, out rayHit, Distance))
    {
        Debug.DrawRay(Camera.transform.position, Camera.transform.forward, Color.blue);
        Collider col = rayHit.collider;
        if (col.tag == DoorKnopTag)
        {
            DoorIndicator.SetActive(true);
        }
        else
        {
            DoorIndicator.SetActive(false);
        }
    }
    else
        DoorIndicator.SetActive(false);
}
所以我没有把代码放在检查当玩家选择门把手时是否点击鼠标上,但我确信这不是问题所在

问题是,当我检查场景中的光线时,线条闪烁得非常厉害。我进行了一点调试,得出的结论是,
Camera.transform.forward
不断变化,即使我不改变
Camera.transform.position
。当我将
physical.Raycast
的方向更改为恒定矢量3时,它不再闪烁,因此我认为问题出在
transform.forward
中。但是我看不出如何修复它。

尝试使用FixedUpdate()而不是Update()

对于物理事件,应使用FixeUpdate(), 对于图形事件,应使用Update()


光线投射闪烁的原因大部分是由对撞机投射光线投射引起的。检查是否在光线投射原点上有对撞机。

如果你旋转相机,对撞机也会改变,不仅仅是当你改变相机的位置时。最奇怪的是,在我的游戏场景1中对撞机工作正常,但在场景3中,对撞机会变得很奇怪。但是当我制作游戏时,它会在场景1中闪烁,所以。。。也许这是一个性能问题??我的评论只是针对
transform.forward
changing而不是闪烁。您可能需要上传gif或链接视频以显示闪烁的问题是门指示灯的门把手对象部分,您可以启用/禁用它吗?否,门指示灯是手的图像。好的,我试试。但是经过一些检查,我得出结论,这也与我的比赛表现有关。例如,我将所有灯光设置为实时。这使得它非常慢。所以,在我把一些改成混合和烘烤后,表演变得更好了,闪烁的声音消失了。但我一定会尝试你的建议,让它变得更好