在Unity3D中更改playerCharacter面向的方向

时间:2016-03-10 23:21:36

标签: unity3d rotation unityscript

我正在尝试(用于学习目的)制作门户网站游戏。我有基本的工作,我可以放置两个门户,在一个对撞机内行走让我传送到另一个,但是我似乎无法让面向方向/旋转起作用。 我想在传送后从新门户面向外面。

我尝试过以下操作,但没有成功: var angle = thisPortalCamera.transform.rotation.eulerAngles.y - otherPortalCamera.transform.rotation.eulerAngles.y; playerChar.transform.Rotate(Vector3.up,angle);

我的想法是,只有y轴旋转才真正重要,我想我应该通过两个门户之间的轴差来旋转玩家。这可能非常简单,但我对Unity来说还是个新手。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

最简单的方法之一是使用变换的函数LookAt()和Rotate()。此函数采用一个参数,即对象必须查看的位置。

transform.LookAt(portal.position);
tranform.Rotate(new Vector3(0,180,0);

这将使你的角色面对门户的反面方式。

答案 1 :(得分:0)

最简单的方法是设置门户网站,使其前方是您希望玩家拥有的方向。然后你就去:

player.transform.rotation = portal.transform.rotation;
player.transform.position = portal.transform.position;

目的是让门户的蓝色箭头指向正确的方向。