Trail渲染器行为不正确

时间:2018-04-06 20:49:47

标签: unity3d

我有一段时间遇到这个问题,我找不到解决方法来修复它。我设法用小径射击子弹。为此,我创建一个子弹预制件并为其添加一个轨迹渲染器。我按照以下步骤在另一个士兵游戏对象中射击子弹:

加载子弹预制件:

private void Awake()
{
    bulletPrefab = Resources.Load<GameObject>("Enemy/Bullet");

从bullet预制件中实例化项目符号:

private void shoot(){
  bullet = Instantiate(bulletPrefab);

bullet.transform.position = this.transform.position;
  ...
  }

然后我根据计算的角度和子弹速度更新子弹位置。问题是,当我射击子弹时,子弹将投射两条路径,一条路径朝向我在脚本中设置的目标,另一条路径指向我在Awake功能中加载的子弹预制件。似乎从资源文件夹加载的子弹预制件不会在场景中显示。然而,它影响了从它实例化的子弹,使它们指向它的踪迹。

如何解决此问题?

2 个答案:

答案 0 :(得分:0)

我自己解决了这个问题。这个问题的原因实际上非常简单。我应该选择Instantiate(Object original, Vector3 position, Quaternion rotation)而不是Instantiate(Object original)

instantiate的第一个版本在给定位置创建项目符号;使用第二个版本后重新定位预制件将呈现不需要的路径。

答案 1 :(得分:0)

您也可以使用 0 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 1 1 选项。

只需在默认情况下将发射设置为 false,并在触发之前使用 0 0 0 1 1 1 0 1 1 1 0 0 1 0 1 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 1 1 1 1 0 0 0 1 1 0 1 0 0 0 1 0 0

将其更改为 true