Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当它是一个动态刚体时,玩家不会随着移动平台移动_C#_Unity3d - Fatal编程技术网

C# 当它是一个动态刚体时,玩家不会随着移动平台移动

C# 当它是一个动态刚体时,玩家不会随着移动平台移动,c#,unity3d,C#,Unity3d,我有一个移动的平台,它的刚体是运动的。我有我的球员,他也有一个动态的刚体。我将玩家手动添加到平台上,当平台移动时,我希望玩家也跟着移动。然而,我看到玩家的变换得到了更新,但实际上我没有看到他在游戏中移动。难道父母不应该强迫我的球员跟着它走吗?我还注意到,如果我将播放器更改为“运动学”或“禁用刺激”,效果会很好,但这不是一个选项,因为我仍然希望我的播放器表现得像一个动态对象。我使用下面的代码通过改变平台的速度来移动平台 this.GetComponent<Rigidbody2D>

我有一个移动的平台,它的刚体是运动的。我有我的球员,他也有一个动态的刚体。我将玩家手动添加到平台上,当平台移动时,我希望玩家也跟着移动。然而,我看到玩家的变换得到了更新,但实际上我没有看到他在游戏中移动。难道父母不应该强迫我的球员跟着它走吗?我还注意到,如果我将播放器更改为“运动学”或“禁用刺激”,效果会很好,但这不是一个选项,因为我仍然希望我的播放器表现得像一个动态对象。我使用下面的代码通过改变平台的速度来移动平台

    this.GetComponent<Rigidbody2D>().velocity = new Vector2(5, 0);
this.GetComponent().velocity=newvector2(5,0);

尝试将此脚本作为组件添加到播放机:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FollowPlatform : MonoBehaviour
{
    public Transform platform;
    public Vector2 offset;

    // Update is called once per frame
    void Update()
    { 
        transform.position = platform.position + offset;
    }
}
然后将平台对象拖放到脚本组件的平台属性(在Unity UI中),并根据需要更改偏移量


让我知道它是否成功,或者是否存在任何问题。

尝试将此脚本作为组件添加到您的播放器中:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FollowPlatform : MonoBehaviour
{
    public Transform platform;
    public Vector2 offset;

    // Update is called once per frame
    void Update()
    { 
        transform.position = platform.position + offset;
    }
}
然后将平台对象拖放到脚本组件的平台属性(在Unity UI中),并根据需要更改偏移量


让我知道它是否成功,或者是否有任何问题。

这可能取决于您的玩家控制器,因为这可能会覆盖正在发生的事情。在对象上使用动态刚体将覆盖几乎所有的家长效应。要么给你的平台增加摩擦力,要么用某种形式的物理连接直接影响动态Rb。@BugFinder:我实际上可以在没有玩家对象的情况下复制这个。我只是把一个简单的刚体2d和一个运动学的绑定在一起,它不会和它的父对象同时移动all@Immersive给我的平台增加摩擦力似乎没有什么帮助。有没有比自己做物理更简单的方法让移动平台工作?移动平台在2D platformer游戏中应该很常见,所以我认为会有一些更简单的方法,你能为附加到玩家的脚本显示代码吗?可能有什么东西阻止玩家每次更新都移动。这可能会影响到你的玩家控制器,因为这可能会覆盖正在发生的事情。在一个对象上有一个动态刚体将覆盖几乎所有的家长效应。要么给你的平台增加摩擦力,要么用某种形式的物理连接直接影响动态Rb。@BugFinder:我实际上可以在没有玩家对象的情况下复制这个。我只是把一个简单的刚体2d和一个运动学的绑定在一起,它不会和它的父对象同时移动all@Immersive给我的平台增加摩擦力似乎没有什么帮助。有没有比自己做物理更简单的方法让移动平台工作?移动平台在2D platformer游戏中应该很常见,所以我认为会有一些更简单的方法,你能为附加到玩家的脚本显示代码吗?可能有什么东西阻止玩家每次更新都移动。