作者cjcat2266 (CJ Cat)
看板GameDesign
标题Re: [请益]Unity射线包覆在物体内能够打到collider吗
时间Sat Sep 20 02:02:22 2014
※ 引述《fifi82726 ()》之铭言:
: 附图: http://ppt.cc/ne1G
依照你这个图看来
已经知道射线的方向了
想要取得这个方向上,离摄影机固定距离上的一个点
用射线投射在球体collider上似乎是overkill
令设线方向V,摄影机位置C,球体半径R
那你要的点位置P就是:
P = C + R * Normalize(V)
不知我是否有误解你的意思?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 160.33.43.15
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/GameDesign/M.1411149745.A.BB5.html
1F:→ fifi82726: 会想要打在球上原本是想解决 因为打在墙面上的时候 09/20 02:59
2F:→ fifi82726: 当摄影机上下左右越远离中心时 09/20 02:59
3F:→ fifi82726: 相同角度会移动越长的距离问题,但是如果依照你的方式 09/20 02:59
4F:→ fifi82726: 来做的话,瞄准依旧是用打到墙面的点来计算,没办法解 09/20 02:59
5F:→ fifi82726: 决 09/20 02:59
6F:→ fifi82726: 不过还是感谢你 09/20 02:59
7F:→ bearkitten: 这解法?错啊,我理解的也是这个意思 09/20 04:19
8F:→ kyopolo: 因为在球里面的面是反的 碰撞体不会被算成打到 所以如果 09/20 10:02
9F:→ kyopolo: 你一定要用射线打点的话 可以调整mesh资料把面反转 或是 09/20 10:02
10F:→ kyopolo: 请美术出个反面的球 不过这篇讲的应该就够解决这问题了 09/20 10:02
11F:推 akilight: 看了下,cjcat的解法没问题阿,原po为何一定要用射线XD 09/20 10:20
12F:→ akilight: 只是想取得在球面上的座标,用这篇的算法就好了 09/20 10:20
13F:→ akilight: 我看不出来有一定要用raycast的理由,raycast还比较贵.. 09/20 10:21
14F:→ tomnelson: 我认为cjcat的解法是正解,用raycast很贵的! 09/20 11:10
15F:→ cowbaying: 会不会连移动向量都有问题 XDDDDD 09/20 11:47
16F:→ cjcat2266: 瞄准点并不是打到墙上的点啊 09/20 12:28
17F:→ cjcat2266: R * Normalize(V) 就会把向量锁定到球面上了 09/20 12:29
18F:推 fifi82726: 我解决了xd 用cj的方法 感谢各位 原来是我误会了 09/20 14:12
19F:推 elfkiller: 官网文件有写 Raycast不能打到包含起点的collider 09/23 22:58
20F:→ elfkiller: 用CJ大的方法是对的 效能也比较好 09/23 22:59