点击TrailRenderer的起始点

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

我按照Brackeys的教程,如何创建一个水果忍者副本(YouTube但在创建刀片时,我得到的行为并不完全相同。

预期的行为

实际行为

不同的是,在 实际行为踪迹从上次播放时停止的地方开始。负责这个问题的代码与视频中的代码完全相同。

public class BladeController : MonoBehaviour
{
    bool isCutting = false;
    public GameObject bladeTrailPrefab;
    GameObject currentBlade;

    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0)) {
            StartCutting();
        } else if (Input.GetMouseButtonUp(0)) {
            StopCutting();
        }

        if (isCutting) {
            UpdateCut();
        }
    }

    void UpdateCut()
    {
        GetComponent<Rigidbody2D>().position = Camera.main.ScreenToWorldPoint(Input.mousePosition);
    }

    void StartCutting()
    {
        isCutting = true;
        this.currentBlade = Instantiate(bladeTrailPrefab, transform);
    }

    void StopCutting()
    {
        isCutting = false;
        Destroy(currentBlade, 1f);
    }
}

在理解了这段代码后,我认为问题在于 我在将刀片移动到新的位置之前就实例化了 bladeTrail,但我试着将刀片移动到了新的位置 Instantiate 办法 UpdateCut 改变位置后,只有在 this.currentBlade == null.

我找了很多关于这个的资料,甚至找到了一些... ... 其他职位 与同样的问题,但没有答案。

unity3d
1个回答
0
投票

貌似实例化是使用最后一个鼠标位置来实例化预制件。

也许用..:

Instantiate(bladeTrailPrefab, Camera.main.ScreenToWorldPoint(Input.mousePosition), Quaternion.identity)
© www.soinside.com 2019 - 2024. All rights reserved.