01-05-2019, 11:52 AM
(01-05-2019, 11:42 AM)Richard Wrote: I used code like this
However, I could not see "1" or "2" when the cloth is tore. I need another thing? How can I get input from obi tearable cloth?Code:using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Obi;
[RequireComponent(typeof(ObiTearableCloth))]
public class ClothTornEvent : MonoBehaviour
{
void Start()
{
this.GetComponent<ClothTornEvent>().enabled = false;
}
ObiTearableCloth cloth;
public GameObject thingToSpawn;
void OnEnable()
{
cloth = GetComponent<ObiTearableCloth>();
cloth.OnConstraintTorn += Cloth_OnConstraintTorn;
}
void OnDisable()
{
cloth.OnConstraintTorn -= Cloth_OnConstraintTorn;
}
void Cloth_OnConstraintTorn(object sender, ObiTearableCloth.ObiConstraintTornEventArgs e)
{
Debug.Log("1");
if (thingToSpawn != null)
{
GameObject.Instantiate(thingToSpawn, cloth.Solver.positions[cloth.particleIndices[e.particleIndex]], Quaternion.identity);
Debug.Log("2");
}
}
}
Maybe not disabling your component immediately in Start() would work
