44 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
	
	
// Curved World <http://u3d.as/1W8h>
 | 
						|
// Copyright (c) Amazing Assets <https://amazingassets.world>
 | 
						|
 
 | 
						|
using UnityEngine;
 | 
						|
 | 
						|
 | 
						|
namespace AmazingAssets.CurvedWorld.Examples
 | 
						|
{
 | 
						|
    [ExecuteAlways]
 | 
						|
    public class TransformDynamicPosition : MonoBehaviour
 | 
						|
    {
 | 
						|
        public CurvedWorld.CurvedWorldController curvedWorldController;
 | 
						|
 | 
						|
        public Transform parent;
 | 
						|
 | 
						|
        public Vector3 offset;
 | 
						|
        public bool recalculateRotation;
 | 
						|
               
 | 
						|
 | 
						|
        void Start()
 | 
						|
        {
 | 
						|
            if (parent == null)
 | 
						|
                parent = transform.parent;
 | 
						|
        }
 | 
						|
        void Update()
 | 
						|
        {
 | 
						|
            if (parent == null || curvedWorldController == null)
 | 
						|
            {
 | 
						|
                //Do nothing
 | 
						|
            }
 | 
						|
            else 
 | 
						|
            {
 | 
						|
                //Transform position
 | 
						|
                transform.position = curvedWorldController.TransformPosition(parent.position + offset);
 | 
						|
 | 
						|
 | 
						|
                //Transform normal (calcualte rotation)
 | 
						|
                if (recalculateRotation)
 | 
						|
                    transform.rotation = curvedWorldController.TransformRotation(parent.position + offset, parent.forward, parent.right);
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |