Unity3d自学记录 动态控制SpriteRendered的Order in Layer

2D游戏精灵Orderinlayer动态控制
本文探讨了2D游戏中角色与敌人的交互问题,特别是在控制精灵前后顺序(Orderinlayer)方面。通过利用角色的position.y属性,动态调整sortingOrder参数,实现了角色与背景及其他元素间的正确叠加效果。
  • 问题

2D游戏角色控制精灵,经常与其他诸如敌人呀什么的进行交互,那,谁在前谁在后就成了问题,这个时候需要进行动态控制Order in layer。

  •  思路

通过他们的position.y进行动态控制sortingOrder

  • 代码实现 

void spriteOrder_Controller()
{
    //*100是为了使取值区间增大,减少或避免重合的问题
    sortingOrder = Mathf.RoundToInt(this.transform.position.y * 100);

    //给该角色的所有精灵进行赋值
    for (int i = 0; i < m_SpriteGroup.Length; i++)
    {
        //当然,每个层级之间还是要区分的,只有同一层级的才会按照次序比较
        m_SpriteGroup[i].sortingOrder = sortingOrderOrigine - sortingOrder;

    }

}
  • 出处

该游戏源码来自AssetStore,Free_Pack。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值