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.
		
		
		
		
		
			
		
			
				
	
	
		
			62 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
using System.Collections;
 | 
						|
using System.Collections.Generic;
 | 
						|
using UnityEngine;
 | 
						|
using UnityEngine.Rendering;
 | 
						|
 | 
						|
namespace Autohand{
 | 
						|
    //This script is used to hide rigidbody physics instabilitites by
 | 
						|
    //putting the hand where it visually should be on prerender
 | 
						|
    //and putting it where it physically should be on post render
 | 
						|
    [DefaultExecutionOrder(-5)]
 | 
						|
    public class HandStabilizer : MonoBehaviour{
 | 
						|
        public HandBase hand = null;
 | 
						|
 | 
						|
        void Start(){
 | 
						|
            if (!GetComponent<Camera>().enabled || hand == null)
 | 
						|
                enabled = false;
 | 
						|
        }
 | 
						|
 | 
						|
        void OnEnable(){
 | 
						|
            if(GraphicsSettings.renderPipelineAsset != null){
 | 
						|
                RenderPipelineManager.beginCameraRendering += OnPreRender;
 | 
						|
                RenderPipelineManager.endCameraRendering += OnPostRender;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        void OnDisable(){
 | 
						|
            if(GraphicsSettings.renderPipelineAsset != null){
 | 
						|
                RenderPipelineManager.beginCameraRendering -= OnPreRender;
 | 
						|
                RenderPipelineManager.endCameraRendering -= OnPostRender;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        private void Update() {
 | 
						|
            if(hand == null)
 | 
						|
                enabled = false;
 | 
						|
        }
 | 
						|
 | 
						|
        private void OnPreRender() {
 | 
						|
            if (hand.gameObject.activeInHierarchy)
 | 
						|
                hand.OnPreRender();
 | 
						|
        }
 | 
						|
 | 
						|
        private void OnPostRender() {
 | 
						|
            if(hand.gameObject.activeInHierarchy)
 | 
						|
                hand.OnPostRender();
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
 | 
						|
        private void OnPreRender(ScriptableRenderContext src, Camera cam) {
 | 
						|
            if (hand.gameObject.activeInHierarchy)
 | 
						|
                hand.OnPreRender();
 | 
						|
        }
 | 
						|
 | 
						|
        private void OnPostRender(ScriptableRenderContext src, Camera cam) {
 | 
						|
            if (hand.gameObject.activeInHierarchy)
 | 
						|
                hand.OnPostRender();
 | 
						|
        }
 | 
						|
        
 | 
						|
    }
 | 
						|
}
 |