福建31选7开奖结果: 射线碰撞后如何获取外侧点

11
回复
945
查看
打印 上一主题 下一主题
[ 复制链接 ]
排名
64921
昨日变化

福建体彩31选7开奖 www.jlh8.com.cn 1

主题

5

帖子

12

积分

Rank: 1

UID
286001
好友
0
蛮牛币
16
威望
0
注册时间
2018-6-15
在线时间
4 小时
最后登录
2018-6-21
5蛮牛币
可能描述的有点不清楚,看图

在线等
3偶尔光临
159/300
排名
12881
昨日变化

0

主题

34

帖子

159

积分

Rank: 3Rank: 3Rank: 3

UID
285839
好友
0
蛮牛币
320
威望
0
注册时间
2018-6-14
在线时间
57 小时
最后登录
2018-10-29
沙发
2018-6-20 15:28:28 只看该作者
使用Physics2D.RaycastAll获得所有点,再自己逻辑判断一下需要哪个点。
7日久生情
1730/5000
排名
1339
昨日变化

1

主题

67

帖子

1730

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
164137
好友
0
蛮牛币
1815
威望
0
注册时间
2016-8-25
在线时间
751 小时
最后登录
2019-4-19
板凳
2018-6-20 16:17:38 只看该作者
得到向量,反向射线
3偶尔光临
209/300
排名
13272
昨日变化

0

主题

39

帖子

209

积分

Rank: 3Rank: 3Rank: 3

UID
95973
好友
2
蛮牛币
14
威望
0
注册时间
2015-4-28
在线时间
104 小时
最后登录
2019-4-5
QQ
地板
2018-6-20 16:24:13 只看该作者
使用三角函数试试,已知碰撞体的宽度,射线发射角度  求一下斜边
排名
64921
昨日变化

1

主题

5

帖子

12

积分

Rank: 1

UID
286001
好友
0
蛮牛币
16
威望
0
注册时间
2018-6-15
在线时间
4 小时
最后登录
2018-6-21
5#
楼主 2018-6-20 16:24:52 只看该作者
cqy1992 发表于 2018-6-20 16:17
得到向量,反向射线

其实我也是这么想的,但是两个碰撞体有可能挨着,而且悬赏给的急了,二楼的达不到我要的效果,不过我碰撞体是方块,自己找了张纸复习勾股定理去了
排名
64921
昨日变化

1

主题

5

帖子

12

积分

Rank: 1

UID
286001
好友
0
蛮牛币
16
威望
0
注册时间
2018-6-15
在线时间
4 小时
最后登录
2018-6-21
6#
楼主 2018-6-20 16:25:56 只看该作者
Bleach 发表于 2018-6-20 16:24
使用三角函数试试,已知碰撞体的宽度,射线发射角度  求一下斜边

我也是这么想的哈哈
3偶尔光临
159/300
排名
12881
昨日变化

0

主题

34

帖子

159

积分

Rank: 3Rank: 3Rank: 3

UID
285839
好友
0
蛮牛币
320
威望
0
注册时间
2018-6-14
在线时间
57 小时
最后登录
2018-10-29
7#
2018-6-20 17:18:51 只看该作者
                RaycastHit2D hitFirst;
                Vector2 origionPt = Vector2.zero;
                Vector2 origionDir = Vector2.one.normalized;
                hitFirst = Physics2D.Raycast(origionPt, origionDir);
                if( hitFirst.collider != null )
                {
                        float mySquareLength = 100; // 这个是碰撞体的最大宽度|长度;也可以使用获得的collider.bounds算一下

                        Vector2 reverseOrigionPt = origionPt + origionDir * (hitFirst.distance + mySquareLength);

                        // 最后的distance也可以不加,加上无非就是提升一下效率,不用碰撞那么多
                        RaycastHit2D[] reverseHitAll = Physics2D.RaycastAll(reverseOrigionPt, -origionDir, hitFirst.distance + mySquareLength );
                        if( reverseHitAll != null && reverseHitAll.Length > 0 )
                        {
                                foreach( var oneReverseHit in reverseHitAll )
                                {
                                        if( oneReverseHit.collider == hitFirst.collider )
                                        {
                                                ;// get it.
                                        }
                                }
                        }
                }
3偶尔光临
159/300
排名
12881
昨日变化

0

主题

34

帖子

159

积分

Rank: 3Rank: 3Rank: 3

UID
285839
好友
0
蛮牛币
320
威望
0
注册时间
2018-6-14
在线时间
57 小时
最后登录
2018-10-29
8#
2018-6-20 17:21:21 只看该作者
用勾股定理去计算的话, 是需要根据入射点不同,情况不同的。反向射线计算比较简单直接一些。
排名
64921
昨日变化

1

主题

5

帖子

12

积分

Rank: 1

UID
286001
好友
0
蛮牛币
16
威望
0
注册时间
2018-6-15
在线时间
4 小时
最后登录
2018-6-21
9#
楼主 2018-6-21 11:52:39 只看该作者
zuoqifu 发表于 2018-6-20 17:21
用勾股定理去计算的话, 是需要根据入射点不同,情况不同的。反向射线计算比较简单直接一些。 ...

嗯,也是不错的办法,最早没想到这个,刚接触unity没几天,不知道有All这个方法
排名
48129
昨日变化

0

主题

9

帖子

21

积分

Rank: 1

UID
76520
好友
0
蛮牛币
26
威望
0
注册时间
2015-3-2
在线时间
8 小时
最后登录
2018-9-22
10#
2018-6-21 13:34:10 只看该作者
Bleach 发表于 2018-6-20 16:24
使用三角函数试试,已知碰撞体的宽度,射线发射角度  求一下斜边

形状不规则就完了
4四处流浪
442/500
排名
14228
昨日变化
1

5

主题

239

帖子

442

积分

Rank: 4

UID
77755
好友
0
蛮牛币
410
威望
0
注册时间
2015-3-7
在线时间
140 小时
最后登录
2019-2-25
QQ
11#
2018-6-21 15:22:51 只看该作者
规则物体:A点坐标,射线方向向量,物体厚度。不规则碰撞体就算了吧
6蛮牛粉丝
1208/1500
排名
1669
昨日变化

3

主题

104

帖子

1208

积分

Rank: 6Rank: 6Rank: 6

UID
43676
好友
0
蛮牛币
1971
威望
0
注册时间
2014-9-4
在线时间
323 小时
最后登录
2019-1-25
12#
2018-6-22 10:13:07 只看该作者
RaycastHit2D[] raycastHit2Ds = Physics2D.RaycastAll(startPoint, dir, 100);

判断下如果不为空 这个point就是碰撞点 raycastHit2Ds[0].point
您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

246| 543| 417| 969| 12| 800| 542| 745| 390| 970|