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,我把Terria做得像个游戏,我有个问题。因此,二维世界是由正方形块生成的。当我移动时,我必须按空格键并跳过所有的块,但是当我接近它时,如何使我的角色自动进入一个长度块?我试着让这些木块不是完全成正方形,而是有倾斜的角,但当我爬上它时,我的速度变慢了。我能做什么?您可以尝试创建一个足够大的盒碰撞器(作为触发器),以覆盖盒子的所有侧面,但不能覆盖顶部。您可以通过在Unity编辑器(Inspector)内设置长方体碰撞器的“大小”属性来实现这一点 然后在脚本中执行以下操作 public class

我把Terria做得像个游戏,我有个问题。因此,二维世界是由正方形块生成的。当我移动时,我必须按空格键并跳过所有的块,但是当我接近它时,如何使我的角色自动进入一个长度块?我试着让这些木块不是完全成正方形,而是有倾斜的角,但当我爬上它时,我的速度变慢了。我能做什么?

您可以尝试创建一个足够大的盒碰撞器(作为触发器),以覆盖盒子的所有侧面,但不能覆盖顶部。您可以通过在Unity编辑器(Inspector)内设置长方体碰撞器的“大小”属性来实现这一点

然后在脚本中执行以下操作

public class Block : MonoBehaviour
{
    [SerializeField]
    private Climber climber;

    private float height;

    private void Awake()
    {
      this.height = this.GetComponent<MeshRenderer>.mesh.bounds.size.y;
    }

    private void OnTriggerEnter()
    {
       climber.Climb(this.height);
    }
}

<>如果你想使运动平稳,考虑使用矢量3.MoviPosits()

,你可以尝试创建一个框碰撞器(触发器),它足够大地覆盖盒子的所有边<强>但不是顶部< /强>。您可以通过在Unity编辑器(Inspector)内设置长方体碰撞器的“大小”属性来实现这一点

然后在脚本中执行以下操作

public class Block : MonoBehaviour
{
    [SerializeField]
    private Climber climber;

    private float height;

    private void Awake()
    {
      this.height = this.GetComponent<MeshRenderer>.mesh.bounds.size.y;
    }

    private void OnTriggerEnter()
    {
       climber.Climb(this.height);
    }
}

如果你想让运动平稳,考虑使用矢量3.MoviPosits()

如果我理解得很好,你想要的是:如果玩家在一个块上直接前进,他会自动超过它,形成一个“梯子”系统。 我会做以下事情:看下面的图片。绿色框是玩家的对撞机,两条红线都是光线投射

如果底部光线投射返回true,表示脚上有一个阻挡,顶部光线投射返回false,表示头部前面没有阻挡,则玩家的Y向上


如果我理解得很好,你想要的是:如果玩家在一个方块上直截了当地走,他会自动走到上面,形成一个“阶梯”系统

我会做以下事情:看下面的图片。绿色框是玩家的对撞机,两条红线都是光线投射

如果底部光线投射返回true,表示脚上有一个阻挡,顶部光线投射返回false,表示头部前面没有阻挡,则玩家的Y向上