如何改变模型本身的方向?

问题描述 投票:0回答:1

我从TurboSquid下载了一个子弹模型。

但是子弹是指向左边的(负X轴)。

所以需要在Y轴上把整个东西转90度,使其面向 "前方"(Z轴)。

我正在做一个第一人称射击游戏,所以我需要子弹正好面对摄像机的位置。

所以如果我简单地设置

bullet.gameObject.transform.rotation = Camera.main.transform.rotation;

子弹只会朝向 "左边"!

我试着在旋转分配后做一个额外的旋转,如下所示。

bullet.gameObject.transform.Rotate(Camera.main.transform.up,90);

如果视线与地平线平行,它就能正常工作。 但如果你是向上或向下射击,它就会开始朝向一些奇怪的方向!

但如果你向上或向下射击,它将开始朝向一些奇怪的方式!

我还试着创建一个空的父GameObject,然后把子弹作为它的子对象扔进去,并设置父对象的旋转。

现在它 "总是 "面向 "前方"(Z轴)! 无论我把相机转到哪里,都是如此

有人能不能这么好心,教我如何解决这个问题!?

非常感谢!

unity3d
1个回答
0
投票

把你的模型包裹在一个父对象中,像这样。

Like this

然后你就可以旋转 BulletModel 90度,并将移动对象的脚本附加到。ParentBullet. 这应该是个好办法。

一般来说,将模型和逻辑对象分开是个不错的做法。


0
投票

我用了一些奇怪的方法解决了这个问题!我只是把它的前部设置为摄像机的右边,而它的右边则是摄像机的后部。

我只是把它的前部设置在摄像机的右侧,而它的右侧设置在摄像机的后部。

bullet.gameObject.transform.forward = Camera.main.transform.right;
bullet.gameObject.transform.right = -Camera.main.transform.forward;

但我还是不知道为什么空父GameObject的技巧不工作!?

© www.soinside.com 2019 - 2024. All rights reserved.