unity3d 2d游戏相关

本文介绍了一种用于2D游戏的边界计算方法,通过Unity3D的正交相机计算游戏视图的边界值,适用于不同分辨率下的Sprite绘制,并提供了一个具体的LevelHelper类实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

准备着手做款2d游戏。这两天在看各种资料。研究到ZenJect,一个unity3d下IOC的框架。解耦很厉害,但是一时有点难以接受,摸索中。研究其例子的时候,

看到一段代码,计算正交相机下,各边界的值。还是不错的,(如果用sprite制作2d游戏,这个值刚好方便判断各分辨率下上下左右的数值,单位非px)代码如下:

    public class LevelHelper
    {
        readonly Camera _camera;

        public LevelHelper(
            [Inject(Id = "Main")]
            Camera camera)
        {
            _camera = camera;
        }

        public float Bottom
        {
            get { return -ExtentHeight; }
        }

        public float Top
        {
            get { return ExtentHeight; }
        }

        public float Left
        {
            get { return -ExtentWidth; }
        }

        public float Right
        {
            get { return ExtentWidth; }
        }

        public float ExtentHeight
        {
            get { return _camera.orthographicSize; }
        }

        public float Height
        {
            get { return ExtentHeight * 2.0f; }
        }

        public float ExtentWidth
        {
            get { return _camera.aspect * _camera.orthographicSize; }
        }

        public float Width
        {
            get { return ExtentWidth * 2.0f; }
        }
    }

待补充....


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值