unity transform 常用操作

1.寻找物体

1.1 寻找满足条件的子物体

` public static Transform FindObj(Transform transform, Func<Transform, bool> condition, bool isGrandsonObj = false)
{
Transform[] allChilds = transform.GetComponentsInRealChildren(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 FindObjs(Transform transform, Func<Transform, bool> condition, bool isGrandsonObj = false)
{
Transform[] allChilds = transform.GetComponentsInRealChildren(isGrandsonObj);
List list = new List();

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

public static List 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 action)
{
AddActionObjects(transform, (t) => true, action);
}

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

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

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

posted @ 2019-02-02 12:59  CDCDDCDC  阅读(1500)  评论(0)    收藏  举报