使用transform.rotate镜像一个字符

时间:2015-10-14 09:39:29

标签: unity3d

我试图找出如何使用transform.rotation简单地将角色旋转180度,就好像角色坐在镜子前面一样。

最初,我使用以下方法将角色模型设置为它所附加的游戏对象,效果很好:

target = gameObject.transform;
origPos = target;
target.transform.rotation = transform.rotation;

现在,我想转过身来反映它的动作。我该怎么做?

作为第一次愚蠢的尝试,我尝试在rotation之前加一个减号,认为它会否定4的所有w, x, y, z值,但当然这只是愚蠢的,因为我在这里不能使用这样的操作数。

这样做最简单的方法是什么?

3 个答案:

答案 0 :(得分:4)

transform.scale应该能够对它进行排序,只需在你需要的轴上乘以-1即可

>>> items = [{'name':'a'},{'name':'b'},{'name':'c'}] >>> ','.join([i['name'] for i in items]) 'a,b,c'

将在y轴上镜像

http://docs.unity3d.com/ScriptReference/Transform-localScale.html

答案 1 :(得分:0)

使用euler角度值旋转内容使用Quaternion.Euler

target.transform.rotation = Quaternion.Euler(x, y, z);

答案 2 :(得分:0)

target.transform.rotation = Quaternion.AngleAxis(180, transform.up);