2016-03-04 36 views
0

我正在使用來自資產商店的相當複雜和全面的第三人控制器包。 https://www.assetstore.unity3d.com/en/#!/content/27438第三人控制器動作

我需要在控制器中更改此行(或可能添加新代碼),以便在按下向前移動鍵時使角色朝着角色面對的方向移動。

這是默認的行,但性格有關移動到相機,而不是獨立的爲:

m_LookRotation = m_CameraTransform.rotation; 

而且接下來是被建議更換該行實現的目標行:

m_LookRotation = Quaternion.Euler(PlayerInput.GetAxisRaw(Constants.YawInputName), 0, 0); 

然而,用這條線代替原來的東西,向前移動鍵會導致角色在一個特定的方向上移動,而不管他面對的是哪個方向。例如:如果我向右轉,然後按下前進鍵,在前行前,角色將回到原來的方向。

[以下是完整的控制器腳本: https://docs.google.com/document/d/1B4sstqtCqRMCLuHuxEuA9I7tO_3W4aHqEZwr73uFDjY/edit?pref=2&pli=1]

回答

0

你可以只繁殖特點和前進矢量的旋轉,即:

Vector3 targetForward = characterRotation * Vector3.forward; 
+0

感謝您的答覆。在我提供的完整代碼中,我會在哪裏放置該行而不會破壞某些內容,因爲該包相當複雜,並且有很多部分/腳本等。 – Xeritan

+0

@ Xeritan在將運動矢量應用於玩家之前,在Update()或FixedUpdate()中,將targetForward矢量應用於角色。 –

+0

嗯,我似乎無法得到它的工作... – Xeritan