protected override void Unfreeze(GameObject o) { base.Unfreeze(o); if (o.GetComponent <CuttableMesh>() == this.cutTarget) { this.cutTarget.DisableCut(); this.cutTarget = null; } }
protected override void Freeze(GameObject o) { base.Freeze(o); if (this.cutTarget == null) { this.cutTarget = o.GetComponent <CuttableMesh>(); this.cutTarget.EnableCut(transform, colliders[1]); } }
// Update is called once per frame void Update() { m_cutter = new CuttableMesh(this.GetComponent <MeshFilter>().mesh); Plane plane = new Plane(CuttingPlane.up, CuttingPlane.position); m_cutter.CutByPlane(CuttingPlane.position, plane, out Mesh right, out Mesh left); //Tranform the mesh //RightMesh.mesh = right; //LeftMesh.mesh = left; }
// Start is called before the first frame update void Start() { m_filterer = this.GetComponent <MeshFilter>(); m_cutter = new CuttableMesh(m_filterer.mesh); }