找回密码
 注册帐号

扫一扫,访问微社区

脚本 如何获取一个模型的对应屏幕像素的宽度

13
回复
649
查看
[ 复制链接 ]
7日久生情
1524/5000
排名
3219
昨日变化

53

主题

488

帖子

1524

积分

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

UID
149133
好友
20
蛮牛币
799
威望
0
注册时间
2016-5-19
在线时间
524 小时
最后登录
2020-7-3
2019-11-18 18:14:17 显示全部楼层 阅读模式
25蛮牛币
test.png   我想知道怎么样可以计算出  这个 cube 他对应屏幕分辨率的 长 和宽   比如 摄像机是正交的  分辨率是   1920*1080  那么 怎么计算 这个cube  宽是多少像素   请求大神的帮忙。  谢谢

回复

使用道具 举报

7日久生情
3143/5000
排名
416
昨日变化

19

主题

150

帖子

3143

积分

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

UID
72075
好友
6
蛮牛币
4606
威望
0
注册时间
2015-1-30
在线时间
1292 小时
最后登录
2020-7-4
2019-11-19 09:36:46 显示全部楼层
Vector3 _screen_Point = Camera.main.WorldToViewportPoint(_target.position);
        _screen_Point.x *= Screen.width * 1f / Screen.height * 1f;
回复

使用道具 举报

7日久生情
1524/5000
排名
3219
昨日变化

53

主题

488

帖子

1524

积分

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

UID
149133
好友
20
蛮牛币
799
威望
0
注册时间
2016-5-19
在线时间
524 小时
最后登录
2020-7-3
楼主 2019-11-19 17:29:49 显示全部楼层
LM904111371 发表于 2019-11-19 09:36
Vector3 _screen_Point = Camera.main.WorldToViewportPoint(_target.position);
        _screen_Point.x  ...

为啥我计算出来是 。 0.8888
.
回复

使用道具 举报

7日久生情
3143/5000
排名
416
昨日变化

19

主题

150

帖子

3143

积分

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

UID
72075
好友
6
蛮牛币
4606
威望
0
注册时间
2015-1-30
在线时间
1292 小时
最后登录
2020-7-4
2019-11-20 08:59:08 显示全部楼层
刘彦磊 发表于 2019-11-19 17:29
为啥我计算出来是 。 0.8888
.

0-1的一个值 转换一下就行了
回复

使用道具 举报

7日久生情
1524/5000
排名
3219
昨日变化

53

主题

488

帖子

1524

积分

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

UID
149133
好友
20
蛮牛币
799
威望
0
注册时间
2016-5-19
在线时间
524 小时
最后登录
2020-7-3
楼主 2019-11-23 15:55:15 显示全部楼层
LM904111371 发表于 2019-11-20 08:59
0-1的一个值 转换一下就行了

再乘以屏幕的宽度吗??
回复

使用道具 举报

5熟悉之中
851/1000
排名
5712
昨日变化

17

主题

203

帖子

851

积分

Rank: 5Rank: 5

UID
89846
好友
5
蛮牛币
863
威望
0
注册时间
2015-4-7
在线时间
391 小时
最后登录
2020-7-3
QQ
2019-11-26 18:04:36 显示全部楼层
方块距离相机越近,占的像素越多,由此可见楼上的第二句是有问题的。思路应该是根据当前位置求左右两边的点(方块面向屏幕这个面,可以是上面两个点,也可以是下面两个点),然后各求出两个点的屏幕坐标,相减得到占的屏幕像素值。
回复

使用道具 举报

0

主题

29

帖子

31

积分

Rank: 1

UID
331927
好友
0
蛮牛币
-1
威望
0
注册时间
2019-9-18
在线时间
2 小时
最后登录
2019-12-5
2019-12-5 18:20:11 显示全部楼层
不知道啊
回复

使用道具 举报

7日久生情
3174/5000
排名
780
昨日变化

61

主题

800

帖子

3174

积分

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

UID
69941
好友
2
蛮牛币
10436
威望
0
注册时间
2015-1-20
在线时间
1079 小时
最后登录
2020-6-15
2019-12-8 20:31:03 显示全部楼层
这个不错 发表于 2019-11-26 18:04
方块距离相机越近,占的像素越多,由此可见楼上的第二句是有问题的。思路应该是根据当前位置求左右两边的点 ...

你说的是相机模式是透视吧,相机是正交的话,不是离的远近都不影响显示大小吗,就是2d相机,1f=100像素直接换算就行了吧
比如一个cube,宽19.2 ,高10.8,就是正好填充了屏幕
回复

使用道具 举报

5熟悉之中
851/1000
排名
5712
昨日变化

17

主题

203

帖子

851

积分

Rank: 5Rank: 5

UID
89846
好友
5
蛮牛币
863
威望
0
注册时间
2015-4-7
在线时间
391 小时
最后登录
2020-7-3
QQ
2019-12-9 10:49:43 显示全部楼层
煮粥侠 发表于 2019-12-8 20:31
你说的是相机模式是透视吧,相机是正交的话,不是离的远近都不影响显示大小吗,就是2d相机,1f=100像素直 ...

clipboard.png   看成了透视,不好意思。想问一下 1:100怎么来的呢,我将方块宽度修改为19.2,并没有重合
回复

使用道具 举报

7日久生情
3174/5000
排名
780
昨日变化

61

主题

800

帖子

3174

积分

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

UID
69941
好友
2
蛮牛币
10436
威望
0
注册时间
2015-1-20
在线时间
1079 小时
最后登录
2020-6-15
2019-12-9 23:18:20 显示全部楼层
这个不错 发表于 2019-12-9 10:49
看成了透视,不好意思。想问一下 1:100怎么来的呢,我将方块宽度修改为19.2,并没有重合
...

1:100是默认值,1unity单位和100像素的换算关系是unity决定的。
为什么没重合:你看你相机设置,size是5 。相机的size是啥意思:屏幕高度的一半。

你当前是5,5是unity单位,那么换算成像素就是500,所以你当前屏幕高度等于500x2 =1000,不是1080。
想要1920x1080显示的话:计算正确的相机size
(1080/2/100=5.4)   你要改成5.4,然后长宽比是16:9 的话才是1920x1080.
回复

使用道具 举报

7日久生情
3174/5000
排名
780
昨日变化

61

主题

800

帖子

3174

积分

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

UID
69941
好友
2
蛮牛币
10436
威望
0
注册时间
2015-1-20
在线时间
1079 小时
最后登录
2020-6-15
2019-12-9 23:30:07 显示全部楼层
本帖最后由 煮粥侠 于 2019-12-10 00:10 编辑
这个不错 发表于 2019-12-9 10:49
看成了透视,不好意思。想问一下 1:100怎么来的呢,我将方块宽度修改为19.2,并没有重合
...

另外提醒一下,2d模式下想要的画面分辨率不是Game视窗里直接选择就行的,这个选择的只是一个“在不同屏幕上的模拟”。
决定2d画面大小的是你的2d相机设置,也就是size。调整这个值,才能真正决定视口的大小。

(相机size对于2d游戏至关重要。一张1920x1080的背景图,如果放在这个场景里,就看不全了!所以一定要根据需要的分辨率,先把2d工程的相机size设置好,画面才能如预期的显示。)


回复

使用道具 举报

5熟悉之中
851/1000
排名
5712
昨日变化

17

主题

203

帖子

851

积分

Rank: 5Rank: 5

UID
89846
好友
5
蛮牛币
863
威望
0
注册时间
2015-4-7
在线时间
391 小时
最后登录
2020-7-3
QQ
2019-12-10 11:26:06 显示全部楼层
煮粥侠 发表于 2019-12-9 23:30
另外提醒一下,2d模式下想要的画面分辨率不是Game视窗里直接选择就行的,这个选择的只是一个“在不同屏幕 ...

嗯,学到了  那么这个题目答案应该是
   
[AppleScript] 纯文本查看 复制代码
 void Start()
    {
        Debug.Log(Camera.main.orthographicSize * 2 * ((float)Screen.width / Screen.height));
    }
回复

使用道具 举报

3偶尔光临
277/300

1

主题

209

帖子

277

积分

Rank: 3Rank: 3Rank: 3

UID
341351
好友
0
蛮牛币
516
威望
0
注册时间
2020-2-27
在线时间
67 小时
最后登录
2020-7-5
2020-3-1 18:17:04 显示全部楼层
6666666666666
回复

使用道具 举报

7日久生情
2221/5000
排名
887
昨日变化

45

主题

383

帖子

2221

积分

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

UID
5833
好友
13
蛮牛币
3356
威望
0
注册时间
2013-10-17
在线时间
615 小时
最后登录
2020-6-17
2020-3-2 15:19:07 显示全部楼层
煮粥侠 发表于 2019-12-9 23:18
1:100是默认值,1unity单位和100像素的换算关系是unity决定的。
为什么没重合:你看你相机设置,size是5  ...

学习了,多谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则