【问题标题】:Raycast BCE0044 found expecting ), found 'hit'Raycast BCE0044 发现期待),发现“命中”
【发布时间】:2015-03-18 23:46:16
【问题描述】:

我正在使用 Raycast 制作 RTS 动态相机,但它导致了以下问题:

 1. Assets/CameraMover.js(11,73): BCE0044: expecting ), found 'hit'.
 2. Assets/CameraMover.js(11,77): BCE0043: Unexpected token: ).

代码如下:

var RaycastHit : hit;
if(Physics.Raycast(Transform.position, -Transform.position, out hit)){
    curDistance = Vector3.Distance(Transform.position, hit.point);
}

if(curDistance != cameraDistance){
    var difference = cameraDistance - curDistance;
    Transform.position = Vector3.Lerp(Transform.position, Transform.position + new Vector3(0, difference, 0), Time.deltaTime);
}

【问题讨论】:

    标签: unity3d unityscript raycasting


    【解决方案1】:

    您将out hit 作为第三个参数传递给Physics.Raycast,但函数签名是:

    public static bool Raycast(Vector3 origin, Vector3 direction, float distance = Mathf.Infinity, int layerMask = DefaultRaycastLayers);
    

    实际上,您需要删除, out hit,或将其更改为表示您要进行射线测试的最大距离的浮点数。

    【讨论】:

      【解决方案2】:

      好的,我现在像 @Adam Harwood 那样做了,但是当位置稳定时它会振动。

      var hit : RaycastHit;
      var curDistance : float;
      if (Physics.Raycast(transform.position, -transform.position, hit)){
          curDistance = Vector3.Distance(transform.position, hit.point);
      }
      
      if(curDistance != cameraDistance){
          var difference = cameraDistance - curDistance;
          transform.position = Vector3.Lerp(transform.position, transform.position + new Vector3(0,difference,0), Time.deltaTime);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-11
        • 2017-11-19
        • 1970-01-01
        • 1970-01-01
        • 2021-11-08
        • 1970-01-01
        • 2022-01-23
        • 1970-01-01
        相关资源
        最近更新 更多