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.3 KiB
		
	
	
	
		
			C#
		
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C#
		
	
| 
								 
											1 year ago
										 
									 | 
							
								using System.Collections;
							 | 
						||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						||
| 
								 | 
							
								using UnityEngine;
							 | 
						||
| 
								 | 
							
								using UnityEngine.Events;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace Autohand {
							 | 
						||
| 
								 | 
							
								    [HelpURL("https://app.gitbook.com/s/5zKO0EvOjzUDeT2aiFk3/auto-hand/extras/stickies")]
							 | 
						||
| 
								 | 
							
								    public class Stickable : MonoBehaviour{
							 | 
						||
| 
								 | 
							
								        [Header("Sticky Settings")]
							 | 
						||
| 
								 | 
							
								        public Rigidbody body;
							 | 
						||
| 
								 | 
							
								        [Tooltip("How strong the joint is between the stickable and this")]
							 | 
						||
| 
								 | 
							
								        public float stickStrength = 1;
							 | 
						||
| 
								 | 
							
								        [Tooltip("Multiplyer for required stick speed to activate")]
							 | 
						||
| 
								 | 
							
								        public float stickSpeedMultiplyer = 1;
							 | 
						||
| 
								 | 
							
								        [Tooltip("This index must match the sticky object to stick")]
							 | 
						||
| 
								 | 
							
								        public int stickIndex = 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        [Header("Event")]
							 | 
						||
| 
								 | 
							
								        public UnityEvent OnStick;
							 | 
						||
| 
								 | 
							
								        public UnityEvent EndStick;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Sticky stickSource;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        private void OnDrawGizmosSelected() {
							 | 
						||
| 
								 | 
							
								            if(!body && GetComponent<Rigidbody>())
							 | 
						||
| 
								 | 
							
								                body = GetComponent<Rigidbody>();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        public void Stick(Sticky source) {
							 | 
						||
| 
								 | 
							
								            stickSource = source;
							 | 
						||
| 
								 | 
							
								            OnStick?.Invoke();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        public void Unstick(Sticky source) {
							 | 
						||
| 
								 | 
							
								            stickSource = null;
							 | 
						||
| 
								 | 
							
								            EndStick?.Invoke();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        public void ForceReleaseStick() {
							 | 
						||
| 
								 | 
							
								            stickSource?.ForceRelease(this);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |