59 lines
1.4 KiB
C#
59 lines
1.4 KiB
C#
using System;
|
|
using UnityEngine;
|
|
|
|
namespace NBF
|
|
{
|
|
public class LureController : MonoBehaviour
|
|
{
|
|
[SerializeField] private Rigidbody rBody;
|
|
[SerializeField] private ConfigurableJoint joint;
|
|
public Rigidbody RBody => rBody;
|
|
|
|
public ConfigurableJoint Joint => joint;
|
|
|
|
private void Start()
|
|
{
|
|
RBody.detectCollisions = true;
|
|
RBody.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic;
|
|
RBody.interpolation = RigidbodyInterpolation.Interpolate;
|
|
}
|
|
|
|
public void SetJoint(Rigidbody rb)
|
|
{
|
|
joint.connectedBody = rb;
|
|
}
|
|
|
|
|
|
public void EnableCollision(bool enable)
|
|
{
|
|
if (rBody == null)
|
|
{
|
|
rBody = GetComponent<Rigidbody>();
|
|
}
|
|
|
|
// rBody.detectCollisions = enable;
|
|
}
|
|
|
|
public void SetKinematic(bool value)
|
|
{
|
|
rBody.isKinematic = value;
|
|
}
|
|
|
|
public void SetJointDistance(float limit)
|
|
{
|
|
joint.linearLimit = new SoftJointLimit
|
|
{
|
|
limit = limit
|
|
};
|
|
}
|
|
|
|
private void OnCollisionEnter(Collision other)
|
|
{
|
|
Debug.Log($"OnCollisionEnter:{other.gameObject.name}");
|
|
}
|
|
private void OnCollisionExit(Collision other)
|
|
{
|
|
Debug.Log($"OnCollisionExit:{other.gameObject.name}");
|
|
}
|
|
}
|
|
} |