using UnityEngine; namespace Models { public class VirtualSkeleton : Bond { private readonly GameObject _virtualSkeleton; public VirtualSkeleton(GameObject start,GameObject end,float scale) : base(start,end,scale) { _virtualSkeleton = GameObject.CreatePrimitive(PrimitiveType.Cylinder); _virtualSkeleton.transform.localScale = new Vector3(scale/2, scale/2, scale/2); _virtualSkeleton.GetComponent().material.color = Color.white; } /// /// 覆盖基类的更新方法 /// public new void UpdateBond() { var startPos = Start.transform.position; var endPos = End.transform.position; var rightPosition = (startPos + endPos) / 2; var rightRotation = endPos - startPos; var lThickness = 0.2f; _virtualSkeleton.transform.position = rightPosition; _virtualSkeleton.transform.rotation = Quaternion.FromToRotation(Vector3.up, rightRotation); _virtualSkeleton.transform.localScale = new Vector3(lThickness, lThickness, lThickness); } } }