我想從這個無效的外部訪問區域變數 raycastHit ,這可能嗎?
private void HandleHookShotStart()
{
if (TestInputDownHookShot())
{
if (Physics.Raycast(Shoulder.transform.position, cam.transform.forward, out RaycastHit raycastHit))
{
//Hit Something
debugHitpointTransform.position = raycastHit.point;
hookshotPosition = raycastHit.point;
hookShotSize = 0f;
HookShotTransform.gameObject.SetActive(true);
HookShotTransform.localScale = Vector3.zero;
state = State.HookShotThrown;
}
}
}
uj5u.com熱心網友回復:
通常你會有一個RaycastHit變數作為類變數。將其設為私有,您可以從類中的任何代碼部分訪問它,并從任何地方將其設為公開。在這兩種情況下,您都可以從 void 方法外部訪問 raycastHit 變數。
public RaycastHit raycastHit;
private void HandleHookShotStart()
{
if (TestInputDownHookShot())
{
if (Physics.Raycast(Shoulder.transform.position, cam.transform.forward, out raycastHit)) //type RaycastHit removed in the call
{
//Hit Something
debugHitpointTransform.position = raycastHit.point;
hookshotPosition = raycastHit.point;
hookShotSize = 0f;
HookShotTransform.gameObject.SetActive(true);
HookShotTransform.localScale = Vector3.zero;
state = State.HookShotThrown;
}
}
}
請注意,out您不是在創建變數。“ out 關鍵字導致引數通過參考傳遞”(docs)。因此,當您使用傳入的類變數呼叫 raycast 方法時,該值將被“填充”。“填充”值與可訪問性無關。您的變數將根據在變數中設定的訪問修飾符進行訪問宣告,公共/私人或其他。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/385946.html
上一篇:碰撞器和聲音
