public static PBSpline CreateFromString(GameObject blockObj, string data) { if (string.IsNullOrEmpty(data) || blockObj.GetComponent <PBBlock>() == null) { return(null); } PBSpline spline = null; if (data.StartsWith("wire")) { spline = PBSplineWire.CreateNew(blockObj); } if (data.StartsWith("tube")) { spline = PBSplineTube.CreateNew(blockObj); } else if (data.StartsWith("track")) { spline = PBSplineTrack.CreateNew(blockObj); } if (spline != null) { spline.LoadString(data); } return(spline); }
public static void SwitchBlock(GameObject oldBlockObj, GameObject newBlockObj) { CreateFromString(newBlockObj, SaveToString(oldBlockObj)); if (oldBlockObj.name.Contains("gears")) { PBSplineTrack.SwitchCircle(oldBlockObj, newBlockObj); } }
public void SetSplineTrack(PBSplineTrack track) { splineTrack = track; curveType = track.CurveType; circleObjects = new List <GameObject>(); if (track.Circles != null && track.Circles.Length > 0) { foreach (PBCircle circle in track.Circles) { circleObjects.Add(circle.transform.gameObject); } } }
public static PBSpline CreateNew(GameObject blockObj, string blockType) { switch (blockType) { case "wire": return(PBSplineWire.CreateNew(blockObj)); case "tube": return(PBSplineTube.CreateNew(blockObj)); case "track": return(PBSplineTrack.CreateNew(blockObj)); } return(null); }
public static PBSplineTrack CreateNew(GameObject blockObj) { PBSplineTrack track = blockObj.GetComponent <PBSplineTrack>(); if (track == null) { track = blockObj.AddComponent <PBSplineTrack>(); } track.Prefab = blockObj.transform.Find("track").gameObject; #if UNITY_EDITOR track.ShowWindow = true; #endif return(track); }
private void OnEnable() { splineTrack = target as PBSplineTrack; }
/// <summary> /// 获取零件个数,默认1;履带特殊:由小零件组成一个完整的履带,需要计算小零件的个数 /// </summary> public static int GetBlockCount(GameObject blockObj) { PBSplineTrack track = blockObj.GetComponent <PBSplineTrack>(); return(track != null ? track.ChildCount : 1); }