unity 怎么让一个范围只能出不能进

juziguantou 2019-02-01 01:20:25
我想用unity实现一个功能,就是在一个范围内,玩家只能从这个范围的里面出来,但是不能从外面进去就像一个防护罩一样,求怎么实现。
...全文
788 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qixiang1243 2020-02-24
  • 打赏
  • 举报
回复
新手有个看法不知道行不行,利用导航来实现。 角色通过“Nav Mesh Agent(导航代理)”来移动,防护罩添加“触发器”及“Nav Mesh Obstacle(导航障碍)”。 生成防护罩时,若触发器触发则导航障碍关闭,若不触发则导航障碍开启。 优点:因为导航障碍本身没有碰撞,这样应该就行实现多重防护罩相交时单独判断是否可进了。 缺点:目前导航障碍只有盒型跟胶囊型可选,胶囊可以勉强做出球形,不能自定义形状。 其他意见请大神帮忙补充下。
日常迷糊 2019-07-16
  • 打赏
  • 举报
回复
利用触发器啊。进去之前是触发器。检测到进去后,再把触发器改为碰撞器就行了
战斗猴 2019-02-11
  • 打赏
  • 举报
回复
一个Bool值,初始值为true,就是可以出去,出去后为false
juziguantou 2019-02-05
  • 打赏
  • 举报
回复
引用 1 楼 qq_42008399 的回复:
身为初学者,提个我暂时想到的.
利用改变gameobject.layer以及设定Project Setting - physics -Layer Collision Matrix
在player出护盾的时候判断,并且
gameobject.layer = 12 ;// 12为layer int
把物体切换到和护盾产生物理碰撞那一层就可以了.

这个方法能行,但是会有bug,就是护盾这种东西是可以重合或者相交的。
也就是说两个护盾相交时,当人在其中一个护盾时应该进不去另一个的护盾。
那么这种办法就实现不了。
qq_42008399 2019-02-02
  • 打赏
  • 举报
回复
身为初学者,提个我暂时想到的. 利用改变gameobject.layer以及设定Project Setting - physics -Layer Collision Matrix 在player出护盾的时候判断,并且 gameobject.layer = 12 ;// 12为layer int 把物体切换到和护盾产生物理碰撞那一层就可以了.

2,535

社区成员

发帖
与我相关
我的任务
社区描述
Unity3D相关内容讨论专区
游戏unity 技术论坛(原bbs)
社区管理员
  • Unity3D
  • 芝麻粒儿
  • 「已注销」
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

Unity3D社区公告:

  1. 社区致力于解决各种Unity3D相关的“疑难杂症”。
  2. 社区不允许发布与Unity3D或相关技术无关内容。
  3. 社区版主邀请各位一道为打造优秀社区不懈努力。

试试用AI创作助手写篇文章吧