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#
6 months 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);
|
||
|
}
|
||
|
}
|
||
|
}
|