private void OnTriggerExit(Collider other) { //if (m_penCork && (other.gameObject == m_penCork.gameObject)) //{ // StopCoroutine(PutCorkCoroutine()); // m_penCork.transform.SetParent(null); // m_penCork.rigidbody.isKinematic = false; // m_penCork.rigidbody.useGravity = true; // m_penCork.GetComponent<Collider>().isTrigger = false; // m_penCork = null; //} if (!m_corkPosition) { return; } ViveCork viveCork = other.GetComponent <ViveCork>(); if (viveCork) { if (!viveCork.picked) { viveCork.Release(); } else { viveCork.CancelAttach(); } m_hasCork = false; //PlayPopSound(m_openingSound); } }
private void OnTriggerEnter(Collider other) { //if (m_penCork) //{ // return; //} //VivePickable penCork = other.GetComponent<VivePickable>(); //if (penCork && (penCork.itemType == XperItem.PenCork)) //{ // m_penCork = penCork; // StartCoroutine(PutCorkCoroutine()); //} if (!m_corkPosition) { return; } ViveCork viveCork = other.GetComponent <ViveCork>(); if (viveCork && !m_hasCork) { viveCork.AttachTo(transform, m_corkPosition.localPosition); m_hasCork = true; //PlayPopSound(m_openingSound); } }
private void OnTriggerEnter(Collider other) { if (!m_corkPosition) { return; } ViveCork viveCork = other.GetComponent <ViveCork>(); if (viveCork && !hasCork) { viveCork.AttachTo(m_fluwidManager.transform, m_corkPosition.localPosition + transform.localPosition); m_fluwidManager.flowBlocked = true; m_viveCork = viveCork; PlayPopSound(m_openingSound); } }
private void OnCollisionEnter(Collision other) { if ((other.collider.isTrigger) || (other.collider.gameObject.name == "VitreHotte")) { return; } ViveCork otherCork = other.gameObject.GetComponent <ViveCork>(); if (otherCork) { return; } VivePickable otherPickable = other.gameObject.GetComponent <VivePickable>(); float collisionForce = other.relativeVelocity.magnitude * other.relativeVelocity.magnitude; if (other.rigidbody) { collisionForce *= other.rigidbody.mass; } else { collisionForce *= m_rigidbody.mass; } bool conditionsToExplode = (collisionForce >= 3) && !(m_pickable && m_pickable.picked) && !(otherPickable && otherPickable.picked); if (conditionsToExplode) { MakeGlassBreakSound(); FailCondition failCondition = new FailCondition(FailCondition.FailType.BrokenGlass); failCondition.failed = true; failCondition.failurePosition = transform.position; Watcher.ProvokeFail(failCondition, gameObject); Debug.Log("ColliXion avec " + other.collider.name + "(Force : " + Mathf.Round(collisionForce * 10) / 10 + " )"); Explode(other.contacts[0].point); } else { MakeGlassShockSound(other.contacts[0].point, other.relativeVelocity.magnitude); } }
protected override void OnActionUp() { if (picked) { Release(); } else { ViveCork cork = GetComponent <ViveCork>(); if (cork && cork.transform.parent && cork.transform.parent.parent) { VivePickable corkParent = cork.transform.parent.parent.GetComponent <VivePickable>(); if (corkParent && corkParent.picked) { corkParent.Release(); } } } }
private void OnTriggerExit(Collider other) { if (!m_corkPosition) { return; } ViveCork viveCork = other.GetComponent <ViveCork>(); if (viveCork && hasCork) { if (!viveCork.picked) { viveCork.Release(); } else { viveCork.CancelAttach(); } m_fluwidManager.flowBlocked = false; m_viveCork = null; PlayPopSound(m_closingSound); } }