unity transform 常用操作

1.寻找物体

1.1 寻找满足条件的子物体

`    public static Transform FindObj(Transform transform, Func<Transform, bool> condition, bool isGrandsonObj = false)
{
    Transform[] allChilds = transform.GetComponentsInRealChildren<Transform>(isGrandsonObj);

    foreach (Transform child in allChilds)
    {
        if (condition(child))
        {
            return child;
        }
    }

    return transform;
}

public static Transform FindObj(Transform transform, string tag, bool isGrandsonObj = false)
{
    return FindObj(transform, (t) => t.tag.Equals(tag), isGrandsonObj);
}`

1.2 寻找一组满足条件的子物体

`    public static List<Transform> FindObjs(Transform transform, Func<Transform, bool> condition, bool isGrandsonObj = false)
{
    Transform[] allChilds = transform.GetComponentsInRealChildren<Transform>(isGrandsonObj);
    List<Transform> list = new List<Transform>();

    foreach (Transform child in allChilds)
    {
        if (condition(child))
        {
            list.Add(child);
        }
    }
    return list;
}

public static List<Transform> FindObjs(Transform transform, string tag, bool isGrandsonObj = false)
{
    return FindObjs(transform, (t) => t.tag.Equals(tag), isGrandsonObj);
}`

2. 操作一组物体

2.1 对一组满足条件物体进行操作

`    public static void AddActionObjects(Transform[] transform, Func<Transform, bool> condition, Action<Transform> action)
{
    foreach (Transform child in transform)
    {
        if (condition(child))
        {
            action(child);
        }
    }
}`

2.2 常用扩展方法

`    public static void AddActionObjects(Transform[] transform, Action<Transform> action)
{
    AddActionObjects(transform, (t) => true, action);
}

public static void AddActionObjects(Transform transform, Func<Transform, bool> condition, Action<Transform> action, bool isGrandsonObj = false)
{
    Transform[] allChilds = transform.GetComponentsInChildren<Transform>(isGrandsonObj);
    AddActionObjects(allChilds, condition, action);
}

public static void AddActionObjects(Transform transform, Action<Transform> action, bool isGrandsonObj = false)
{
    AddActionObjects(transform, (t) => true, action, isGrandsonObj);
}

public static void AddActionObjects(Transform transform, string tag, Action<Transform> action, bool isGrandsonObj = false)
{
    AddActionObjects(transform, (t) => t.tag.Equals(tag), action, isGrandsonObj);
}

`

转载于:https://www.cnblogs.com/programmingAdorableNew/p/10348234.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值