public CheckPointData CreateCheckPoint(CheckPointInformation info, Action <CheckPointInformation> moveIntoAction, Action <CheckPointInformation> leaveAction = null) { if (!info || !info.IsValid || info.Scene != ZetanUtility.ActiveScene.name) { return(null); } CheckPointData checkPointData = new CheckPointData(info); checkPointData.AddListener(moveIntoAction, leaveAction); foreach (var position in info.Positions) { checkPointData.Entities.Add(CreateCheckPointEntity(checkPointData, position)); } return(checkPointData); }