You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C#
		
	
using UnityEngine;
 | 
						|
using System.Collections;
 | 
						|
using RootMotion.FinalIK;
 | 
						|
 | 
						|
namespace RootMotion.FinalIK
 | 
						|
{
 | 
						|
 | 
						|
    /// <summary>
 | 
						|
    /// Simple VRIK LOD level controller based on renderer.isVisible and camera distance.
 | 
						|
    /// </summary>
 | 
						|
    public class VRIKLODController : MonoBehaviour
 | 
						|
    {
 | 
						|
 | 
						|
        public Renderer LODRenderer;
 | 
						|
        public float LODDistance = 15f;
 | 
						|
        public bool allowCulled = true;
 | 
						|
 | 
						|
        private VRIK ik;
 | 
						|
 | 
						|
        void Start()
 | 
						|
        {
 | 
						|
            ik = GetComponent<VRIK>();
 | 
						|
        }
 | 
						|
 | 
						|
        void Update()
 | 
						|
        {
 | 
						|
            ik.solver.LOD = GetLODLevel();
 | 
						|
        }
 | 
						|
 | 
						|
        // Setting LOD level to 1 saves approximately 20% of solving time. LOD level 2 means IK is culled, with only root position and rotation updated if locomotion enabled.
 | 
						|
        private int GetLODLevel()
 | 
						|
        {
 | 
						|
            if (allowCulled)
 | 
						|
            {
 | 
						|
                if (LODRenderer == null) return 0;
 | 
						|
                if (!LODRenderer.isVisible) return 2;
 | 
						|
            }
 | 
						|
 | 
						|
            // Set LOD to 1 if too far from camera
 | 
						|
            float sqrMag = (ik.transform.position - Camera.main.transform.position).sqrMagnitude;
 | 
						|
            if (sqrMag > LODDistance * LODDistance) return 1;
 | 
						|
 | 
						|
            return 0;
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |