如何利用屏幕宽度/高度--Unity3d

如何利用屏幕宽度/高度--Unity3d,unity3d,Unity3d,我试图在Unity2D中随机实例化屏幕中的内容 我试着使用屏幕。宽度和屏幕。高度,但物体出现在远离屏幕的地方。我意识到这是因为Screen.width/height返回以像素为单位的长度,而unity以其自身的单位表示 例如,这不起作用。炸弹出现在离屏幕很远的地方 var randomX = Random.Range(-Screen.width/2, Screen.width/2); var randomY = Random.Range(-Screen.height/2, Screen.heig

我试图在Unity2D中随机实例化屏幕中的内容

我试着使用屏幕。宽度和屏幕。高度,但物体出现在远离屏幕的地方。我意识到这是因为Screen.width/height返回以像素为单位的长度,而unity以其自身的单位表示

例如,这不起作用。炸弹出现在离屏幕很远的地方

var randomX = Random.Range(-Screen.width/2, Screen.width/2);
var randomY = Random.Range(-Screen.height/2, Screen.height.2);
var spawnPoint:Vector2 = new Vector3(randomX , randomY);
Instantiate( bomb, spawnPoint, Quaternion.identity );
有办法将像素转换为单位吗?

当然有,请使用

请注意,API会通知您屏幕左下角为0,0,因此您需要相应地更改随机X/Y。

Vector3 worldToScreen = Camera.main.WorldToScreenPoint(transform.position);

var randomX = Random.Range(-worldToScreen.x , worldToScreen.x);
var randomY = Random.Range(-worldToScreen.y , worldToScreen.y);
var spawnPoint:Vector2 = new Vector3(randomX , randomY);
Instantiate( bomb, spawnPoint, Quaternion.identity );