与delphi相比,Unity非常困难.在delphi中你可以说:
Rectangle1.Position.Y := 0;
Rectangle1.Position.X := screen.Width - Rectangle1.Width;
这只会将矩形的位置更改为屏幕的右上角.但在Unity中,要做到这一点还有很多东西需要学习,我不知道从哪里开始.有人可以向我简化这个吗?我只想在屏幕的右上角创建一个对象,包括智能手机和个人电脑.
我正在使用Unity2D
这是我用来在屏幕上创建对象的代码:
实例化(objectName,new Vector3(0,0,0),Quaternion.identity);
解决方法:
摄像机的屏幕坐标与世界坐标不同(一个具有2个维度,另一个具有3.一个使用像素和其他Unity单位).
对文档进行评论:
Camera.ScreenToWorldPoint(position: Vector3) Transforms position from screen space into world space.
Screenspace is defined in pixels. The bottom-left of the screen is (0,0); the right-top is (pixelWidth,pixelHeight). The z position is in world units from the camera.
因此,以与您描述的方式类似的方式将您的矩形放在角落(使用伪代码C#mix):
Vector3 p = camera.ScreenToWorldPoint(new Vector3(0, Screen.height, HowFarFromCamera));
Rectangle1.position = new Vector3(p.x + Rectangle1.Width/2,p.y - Rectangle1.Height/2,p.z);
点p是世界坐标的角(这是重要的事情).假设您的矩形的枢轴位于中间,我按宽度/ 2和高度/ 2移动.
注意:您可以使用Bounds.size获取宽度或高度(Renderer和SpriteRenderer都可用的结构)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。