我对团结很陌生,但我有一个基本的FPS游戏,当拿着枪时,我想这样做,当你的玩家转动时,手中的物品旋转显示转动。例如,在玩任务时,当您旋转角色时,枪会旋转。这是我的代码,但它无法正常工作
void Update(){
this.rotateEquppedOnTurn();
}
private void rotateEquppedOnTurn(){
if(this.equippedItem != null){
InteractEquppableItem equip = this.equippedItem.gameObject.GetComponent<Interaction>() as InteractEquppableItem;
if(equip.rotatesWhenTurn){
float rotX = Input.GetAxis("Mouse X");
float rotY = Input.GetAxis("Mouse Y");
Quaternion tempRot = new Quaternion();
Quaternion tempCam = GameObject.Find("PlayerCamera").transform.rotation;
tempRot.x = tempCam.x + rotX;
tempRot.y = tempCam.y + rotY;
tempRot.z = tempCam.z;
this.equippedItem.gameObject.transform.rotation = tempRot;
}
}
}
当用这段代码转动角色时,枪只是以一种奇怪的方式旋转,这不是我对旋转脚本的预期
答案 0 :(得分:1)
答案 1 :(得分:0)
不要像这样直接指定旋转。
this.equippedItem.gameObject.transform.rotation = tempRot;
而不是使用像这样的东西
this.equippedItem.gameObject.transform.Rotate(new Vector3(x,y,z));
您可以使用鼠标移动来导出x,y,z