List <CornerInfo> PrepareCornerInfos(string undoLabel) { List <Transform> objs = selection.GetSelection(); error = ADError.None; // load edge info & store the orginal obj position for undo List <CornerInfo> cornerInfos = new List <CornerInfo>(); foreach (Transform obj in objs) { // make sure the Canvas is setup correctly CanvasRenderer canvasRenderer = obj.GetComponent <CanvasRenderer>(); if (canvasRenderer != null && state.context.type != ContextType.Canvas) { error = ADError.CanvasContext; return(null); } // make sure NGUI is setup correctly R2DC_NGUI.NGUIState nguiState = ngui.ValidateState(obj.gameObject); if (nguiState == R2DC_NGUI.NGUIState.InvalidContext) { error = ADError.NGUIContext; return(null); } else if (nguiState == R2DC_NGUI.NGUIState.ReflectionError) { error = ADError.NGUIReflection; return(null); } CornerInfo cornerInfo = new CornerInfo(); cornerInfo.transform = obj; Vector3[] corners = bounds.GetWorldCorners(obj, state.preferColliders); if (corners == null) { return(null); } cornerInfo.corners = corners; cornerInfos.Add(cornerInfo); Undo.RecordObject(obj.transform, undoLabel); } return(cornerInfos); }