作者yongb (火系见习魔法师 )
看板GameDesign
标题[请益] LayerMask+raycast问题
时间Sun Oct 23 21:08:13 2016
自学unity的时候碰到一点问题
还请各位大大不吝指点
小弟尝试用滑鼠点击物件
然後判断点击的东西
http://i.imgur.com/Cn4ICuy.png
目前有个问题是
第15行
已经+了layermask
结果点击的时候除了设定walllayer的物件
其他物件也有反应......
不晓得是哪里除了问题?
我有先尝试过单纯不用滑鼠点击,直接把walllayer的物件放在一个gameobject前面
没设定walllayer的都没反应
但改成滑鼠就全部有反应囧
还有一个问题就是第13行
ray起始位置只能从摄影机吗
有办法从一个gameobject吗?
我看网路上教学滑鼠点击判断物件的话,都是射线都从摄影机发出......
以上两个问题
先感谢点进来的大大看完这篇文章
如果有描述不清楚的地方烦请告知,我会尽快修正
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.168.81.240
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/GameDesign/M.1477228097.A.14C.html
1F:推 cjcat2266: 没有说一定要从摄影机啊,请查Ray说明文件 10/24 01:55
2F:→ cjcat2266: 而且你wallLayer没有起始值,应该是会触发未定义行为 10/24 01:58
3F:→ cjcat2266: 你感觉"正常运作"的情况应该只是刚好而已 10/24 01:58
完全找不到非摄影机的范例冏.....
我尝试
Vector3 Pos = gameObject.transform.
position;
Ray ray=new Ray(Pos,Input.mousePosition);
或是
Vector3 Pos = gameObject.transform.
localPosition;
Ray ray=new Ray(Pos,Input.mousePosition);
也不行T_T
是我理解Ray错误还是有打错甚麽
至於第15行的wallLayer我发现我在前面+个数字就好了......
Physics.Raycast(ray,out hit,100,wallLayer)).....
真是太谜了,那个100应该是射线长度吧?
还是大大所说的起始值? 我原本以为是wallLayer.value
※ 编辑: yongb (1.168.86.136), 10/24/2016 12:21:17
4F:推 skyabsence: 你的问题几乎都没去找api来看 10/25 08:55
第15行那个他API写不加值就自动预设无限长没错吧?
可是结果我还要给他100才能用@@
5F:推 laikyo: 换掉gameObject。我都绑在手上 10/25 09:13
我再多尝试看看
感谢楼上两位大大
※ 编辑: yongb (36.235.37.223), 10/25/2016 22:51:48