Solution for Problem with a trigger in the Trail Renderer in unity
is Given Below:
Good evening.I am trying to repeat the game of fruit ninja, in this game you must to cut the flying fruit with a blade, the blade is Trail Renderer, the fruit is an object. There was a problem with a trigger in the Trail Renderer. The trigger doesn’t work with Trail Renderer. Help please where I went wrong. Below is the Trail Renderer setting, object on which the trigger should run, the trigger code and code Trail Renderer.
Trail Renderer settings,
Object settings,
Trail Renderer code:
public GameObject bladeTrailPrefab;
public float minCuttingVelocity = .001f;
bool isCutting = false;
Vector2 previousPosition;
GameObject currentBladeTrail;
Rigidbody rb;
Camera cam;
CapsuleCollider capsuleCollider;
void Start ()
{
cam = Camera.main;
rb = GetComponent<Rigidbody>();
capsuleCollider = GetComponent<CapsuleCollider>();
}
// Update is called once per frame
void Update () {
if (Input.GetMouseButtonDown(0))
{
StartCutting();
} else if (Input.GetMouseButtonUp(0))
{
StopCutting();
}
if (isCutting)
{
UpdateCut();
}
}
void UpdateCut ()
{
Vector2 newPosition = cam.ScreenToWorldPoint(Input.mousePosition);
rb.position = newPosition;
float velocity = (newPosition - previousPosition).magnitude * Time.deltaTime;
if (velocity > minCuttingVelocity)
{
capsuleCollider.enabled = true;
} else
{
capsuleCollider.enabled = false;
}
previousPosition = newPosition;
}
void StartCutting ()
{
isCutting = true;
currentBladeTrail = Instantiate(bladeTrailPrefab, transform);
previousPosition = cam.ScreenToWorldPoint(Input.mousePosition);
capsuleCollider.enabled = false;
}
void StopCutting ()
{
isCutting = false;
currentBladeTrail.transform.SetParent(null);
Destroy(currentBladeTrail, 2f);
capsuleCollider.enabled = false;
}
Trigger object code:
private void OnTriggerEnter(Collider col)
{
Debug.Log("Work");
}