unity 实战图片挖洞Mask(转载)

转载转载

https://www.cnblogs.com/j349900963/p/8340571.html

截取里面俩代码,可以实现图片挖洞的需求

注意:

hole image 需要 将图片的透明度调整为1

public class Hole : Mask
{
    public override bool IsRaycastLocationValid(Vector2 sp, Camera eventCamera)
    {
        if (!isActiveAndEnabled)
            return true;
 
        return !RectTransformUtility.RectangleContainsScreenPoint(rectTransform, sp, eventCamera);
    }
}

  

public class HoleImage : Image {
    public override Material GetModifiedMaterial(Material baseMaterial)
    {
        var toUse = baseMaterial;
 
        if (m_ShouldRecalculateStencil)
        {
            var rootCanvas = MaskUtilities.FindRootSortOverrideCanvas(transform);
            m_StencilValue = maskable ? MaskUtilities.GetStencilDepth(transform, rootCanvas) : 0;
            m_ShouldRecalculateStencil = false;
        }
 
        // if we have a enabled Mask component then it will
        // generate the mask material. This is an optimisation
        // it adds some coupling between components though :(
        Mask maskComponent = GetComponent<Mask>();
        if (m_StencilValue > 0 && (maskComponent == null || !maskComponent.IsActive()))
        {
            var maskMat = StencilMaterial.Add(toUse, (1 << m_StencilValue) - 1, StencilOp.Keep, CompareFunction.NotEqual, ColorWriteMask.All, (1 << m_StencilValue) - 1, 0);
            StencilMaterial.Remove(m_MaskMaterial);
            m_MaskMaterial = maskMat;
            toUse = m_MaskMaterial;
        }
        return toUse;
    }
}

 

转载于:https://www.cnblogs.com/leilei-weapon/p/10415274.html

Unity物理挖洞是指在Unity游戏引擎中,通过使用物理引擎来实现角色或物体在地面上挖洞的效果。 在Unity物理挖洞中,通常使用的是物理引擎组件,如Mesh Collider和Rigidbody。首先,我们需要给需要挖洞的地面添加Mesh Collider组件,这样地面就具备了物理碰撞功能。然后,给挖洞的工具(例如玩家手中的镐子)添加Rigidbody组件,以便让挖洞工具受到物理引擎的影响。 接下来,我们可以使用Raycast或者Collider.Raycast来检测挖洞的位置。当挖洞工具与地面发生碰撞时,我们可以通过修改地面的网格顶点来模拟挖洞的效果。具体地,我们可以根据挖洞工具的位置和半径,找到所有在工具半径内的顶点,并将它们的高度调整为地面下沉的深度值。 为了实现连续挖洞的效果,我们可以在每次挖洞前将新的地面拷贝一份,并在新的地面上进行挖洞操作。这样,我们就可以实现实时更新地面和连续挖洞的效果。 需要注意的是,Unity物理挖洞需要合理设置物理材质、碰撞体积和刚体参数,以达到符合游戏设计的物理表现效果。此外,挖洞操作也可能会对游戏性能造成一定影响,因此在实现挖洞功能时需要进行适当的优化。 总的来说,Unity物理挖洞是利用物理引擎和碰撞检测技术实现的一种在游戏中让角色或物体能够实时挖掘地面的效果,通过调整地面网格顶点的位置来模拟挖洞的视觉效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值