void Walk(string loc, string expr, object value, string path, WalkCallback callback) { if (_system.IsPrimitive(value)) { return; } if (_system.IsArray(value)) { var list = (IList)value; for (int i = 0; i < list.Count; i++) { callback?.Invoke(i, loc, expr, value, path); } } else { if (_system.IsObject(value)) { foreach (string key in _system.GetMembers(value)) { callback?.Invoke(key, loc, expr, value, path); } } } }
void Walk(List <GameObject> _roots, WalkCallback _fn) { for (int i = 0; i < _roots.Count; ++i) { GameObject gameObject = _roots[i]; RecurseNode(gameObject, _fn); } }
void RecurseNode(GameObject _go, WalkCallback _fn, bool excludeSelf = false) { if (!excludeSelf) { bool walkChildren = _fn(_go); if (!walkChildren) { return; } } foreach (Transform child in _go.transform) { RecurseNode(child.gameObject, _fn); } }
public static bool Walk(string node, WalkCallback cb) { if (Directory.Exists(node)) { List <string> subNodes = new List <string>(); subNodes.AddRange(Directory.GetFiles(node, "*.*", SearchOption.TopDirectoryOnly)); subNodes.AddRange(Directory.GetDirectories(node, "*", SearchOption.TopDirectoryOnly)); if (subNodes.Count == 0) { return(cb(node, null, WalkReportType.Root)); } else { foreach (string subNode in subNodes) { if (cb(node, subNode, WalkReportType.ForwardsWalk)) { return(true); } if (Walk(subNode, cb)) { return(true); } if (cb(node, subNode, WalkReportType.BackwardsWalk)) { return(true); } } return(false); } } else if (File.Exists(node)) { return(cb(node, null, WalkReportType.Root)); } else { return(false); } }
void Walk(string loc, string expr, object value, string path, WalkCallback callback) { if (_system.IsPrimitive(value)) { return; } if (_system.IsArray(value)) { var list = (IList)value; for (var i = list.Count - 1; i >= 0; i--) { callback(i, loc, expr, value, path); } } else if (_system.IsObject(value)) { foreach (var key in _system.GetMembers(value).Reverse()) { callback(key, loc, expr, value, path); } } }
public static extern int AcpiGetDevices(string HID, WalkCallback UserFunction, void *UserContext, void **ReturnValue);
private void Walk(string loc, string expr, object value, string path, WalkCallback callback) { if (system.IsPrimitive(value)) return; if (system.IsArray(value)) { IList list = (IList)value; for (int i = 0; i < list.Count; i++) callback(i, loc, expr, value, path); } else if (system.IsObject(value)) { foreach (string key in system.GetMembers(value)) callback(key, loc, expr, value, path); } }