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_Game Physics_Game Development - Fatal编程技术网

限制玩家移动到地图的某个区域,暂时统一游戏开发C#

限制玩家移动到地图的某个区域,暂时统一游戏开发C#,c#,unity3d,game-physics,game-development,C#,Unity3d,Game Physics,Game Development,当我的玩家游戏对象与另一个游戏对象发生碰撞时,我希望阻止玩家离开另一个游戏对象周围的一小块区域,直到玩家击败敌人。换句话说,在敌人被对付之前限制游戏的移动。我只是不知道如何将运动暂时限制在最初碰撞发生的地方的一小部分空间 我认为可能的解决方案是钳制变换,或者创建另一个游戏对象,使用刚体和碰撞器将玩家保持在这个区域 我的播放器控制的移动现在是简单的Input.GetAxis,用于垂直和水平输入,并使用transform.translate 谢谢你阅读我的问题。任何帮助都将不胜感激,即使是你可能认为

当我的玩家游戏对象与另一个游戏对象发生碰撞时,我希望阻止玩家离开另一个游戏对象周围的一小块区域,直到玩家击败敌人。换句话说,在敌人被对付之前限制游戏的移动。我只是不知道如何将运动暂时限制在最初碰撞发生的地方的一小部分空间

我认为可能的解决方案是钳制变换,或者创建另一个游戏对象,使用刚体和碰撞器将玩家保持在这个区域

我的播放器控制的移动现在是简单的Input.GetAxis,用于垂直和水平输入,并使用transform.translate


谢谢你阅读我的问题。任何帮助都将不胜感激,即使是你可能认为显而易见的事情,我对此还是新手。非常感谢。

在不知道游戏的任何细节(2D、3D等)的情况下,我最初的想法是在玩家和他们碰撞的敌人周围生成隐形墙游戏对象。像《魔鬼呐喊》这样的动作游戏可以做到很多,除非它们有预先定义的关卡,墙将在那里生成


当玩家击败敌人时,你可以删除城墙。

这就是我处理这些要求的方式。谢谢@Alex。我可能太新了,无论如何都不会尝试任何新奇的东西。你会使用默认的游戏对象,让它们不可见,然后使用代码让它们生成一个圆圈或任何你想要的形状吗?是的,这就是我要开始的。你还可以告诉看不见的墙对象忽略来自除玩家+敌人之外的所有物体的碰撞,以允许火箭/子弹之类的东西逃离该区域(如果它们在看不见的墙上无缘无故地爆炸,看起来会很奇怪!)。这将通过Unity的物理层/过滤系统实现,抱歉,我不能更具体地说,因为我还没有深入研究Unity的物理。