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