首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储Raycast hit信息

存储Raycast hit信息
EN

Stack Overflow用户
提问于 2017-05-18 22:52:42
回答 1查看 456关注 0票数 0

在我的游戏中,玩家使用虚拟模拟来瞄准一个特定的对象,当他释放角色应该向该对象移动的模拟时。我想在变量中存储对象的位置(更像玩家应该根据对象的位置移动的方向),但前提是光线与之发生碰撞的最后一件事:

代码语言:javascript
复制
Vector3 targetPos;

RaycastHit hit;
if (Physics.Raycast (pos, dir, out hit, 10, targetLayer)) {

    Vector3 moveDir = (hit.point - transform.position).normalized;
    targetPos = moveDir;
} else {
    targetPos = Vector3.zero;   
}

通过这样做,targetPos变量在释放模拟之后总是返回到零,即使上次碰撞的对象是那个特定的对象。

编辑:基于@MukeshSaini评论解决。谢谢大家。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-19 12:20:32

我认为,即使在用户发布模拟之后,您仍在使用射线广播,这可能会返回Physics.Raycast的false,并在else块中将targetPos设置为Vector3.zero

只有当用户使用模拟时,才能将条件设置为raycast,这将在用户释放模拟后停止不必要的其他块执行,而targetPos将保留其正确的值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44058980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档