protected virtual void Reset() { if (point == null) { point = GetComponentInParent <SgtFloatingPoint>(); } }
public static SgtPosition CalculatePosition(SgtFloatingPoint parentPoint, double radius, double angle, Vector3 tilt, float oblateness) { if (parentPoint != null) { var rotation = parentPoint.transform.rotation * Quaternion.Euler(tilt); var r1 = radius; var r2 = radius * (1.0f - oblateness); var localX = System.Math.Sin(angle * Mathf.Deg2Rad) * r1; var localY = 0.0; var localZ = System.Math.Cos(angle * Mathf.Deg2Rad) * r2; Rotate(rotation, ref localX, ref localY, ref localZ); var position = parentPoint.Position; position.LocalX += localX; position.LocalY += localY; position.LocalZ += localZ; position.SnapLocal(); return(position); } return(default(SgtPosition)); }
public void RegisterPoint() { #if UNITY_EDITOR if (point == null) { point = GetComponentInParent <SgtFloatingPoint>(); } #endif if (point != null) { point.OnPositionChanged += UpdatePosition; } }
protected override void OnDisable() { base.OnDisable(); // Revert CurrentPoint? if (FirstInstance != null) { CurrentPoint = FirstInstance.cachedPoint; } else { CurrentPoint = null; CurrentPointSet = false; } }
protected override void OnEnable() { if (InstanceCount > 0) { Debug.LogWarning("Your scene already contains an instance of SgtFloatingOrigin!", FirstInstance); } base.OnEnable(); cachedPoint = GetComponent <SgtFloatingPoint>(); // Make this the current point CurrentPoint = cachedPoint; CurrentPointSet = true; }
protected override void OnDisable() { base.OnDisable(); cachedPoint.OnPositionChanged -= UpdatePosition; // Revert CurrentPoint? if (FirstInstance != null) { currentPoint = FirstInstance.cachedPoint; } else { currentPoint = null; currentPointSet = false; } }
public void RegisterPoint() { #if UNITY_EDITOR if (Point == null) { var point = GetComponentInParent <SgtFloatingPoint>(); if (point != null) { Point = point; } } if (Point == null) { return; } #endif Point.OnPositionChanged += PointPositionChanged; }
protected virtual void OnEnable() { if (cachedPointSet == false) { cachedPoint = GetComponent <SgtFloatingPoint>(); cachedPointSet = true; } #if UNITY_EDITOR if (parentPoint == null) { var parent = transform.parent; if (parent != null) { parentPoint = GetComponent <SgtFloatingPoint>(); } } #endif RegisterParentPoint(); }
protected virtual void OnEnable() { cachedPoint = GetComponent <SgtFloatingPoint>(); }