【问题标题】:Character moves in unity after some time一段时间后角色统一移动
【发布时间】:2021-01-16 06:56:38
【问题描述】:

我有 2 个角色和一辆车。我想在汽车到达某个 z 位置(如 -0.02 或 0.02)时执行此操作。角色需要开始行走。在那个角色会停在那个地方之前。

有谁知道我该如何统一处理这个想法?

“所有角色都是用 Fuse 和 mixamo 软件制作的”。

谢谢。

【问题讨论】:

    标签: c# unity3d animation character


    【解决方案1】:

    嗯,一种方法是检测更新中的位置,然后在 Cinemachine 中,您可以为停止时靠近汽车的摄像机设置动画,然后在 Timeline 中打开车门并为角色设置动画,使其离开汽车站起来,稍作停顿,然后在 Timeline 中开始行走动画,同时在 Cinemachine 中移动到不同的摄像机。

    【讨论】:

    • 我可以这样做,但角色不同,角色需要出现在车前。所以,汽车会撞到那个人。
    • 同样的原则也适用。如果这是一个动画,你可以通过 Timeline 和 Cinemachine 来驱动它。
    【解决方案2】:

    角色以 0 的初始速度开始

    private Transform car;
    
    private void Update()
    {
        if(car.transform.position.z > - 0.02 || car.transform.position.z < 0.02)
        {
            StartMovingCharacter();
        }
    }
    
    private void StartMovingCharacter()
    {
        // Changes the velocity of the Character which would make the Character move
    }
    
    

    这样的事情就可以了。

    【讨论】:

    • 在角色移动中,我没有移动角色的脚本。但实际上,这是一个很好的脚本,但我应该在 StartMovingCharater() 函数中写什么?在移动角色时,我会对所有内容进行动画处理。
    • 动画在 StartMovingCharater() 函数中开始,它将开始移动角色。
    • 我使用这种“youtube.com/watch?v=MXCZ-n5VyJc&ab_channel=GameDevGuide”类型的路标来进入角色。
    • 我试试这个代码 if (car.transform.position.z >= 0.34936 || car.transform.position.z
    • 但它不起作用。如果汽车不是那个位置的角色还在走路。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多