void OnTriggerExit(Collider other) { // Controller for Simulator, Side for HTC Vive if (myObject == null) { return; } if (other.name.Contains("Controller") || other.name.Contains("Side")) { cnt--; if (cnt <= 0) { show = false; ShowNameOnTouch.FreeText(myObject); } } else { UCE_Heatable heatable = other.GetComponent <UCE_Heatable>(); if (heatable && heatable.type == UCE_Heatable.Type.Normal) { insideHeatable = null; } } }
void UpdateTemperature() { string tempStr; if (insideHeatable) { tempStr = "[" + insideHeatable.temperature.ToString("f1") + "]"; } else { tempStr = UCE_Global.GetTemperature(transform.position).ToString("f1"); } ShowNameOnTouch.SetText(myObject, tempStr + "℃"); }
public override void StartUsing(VRTK_InteractUse usingObject) { base.StartUsing(usingObject); if (inTube) { hasWater = true; newName = tubeWaterGo.GetComponent <ShowNameOnTouch>().showName; type = tubeWaterGo.GetComponent <TubeWater>().type; GameObject go = transform.Find("water").gameObject; go.SetActive(true); go.GetComponent <Renderer>().material = tubeWaterGo.GetComponent <Renderer>().material; } else if (hasWater) { GameObject waterGo = transform.Find("water").gameObject; waterGo.SetActive(false); hasWater = false; Debug.Log("hasWater"); if (inBeaker) { // The beakerWaterGo has to be set false and then set true again // beacuase this is the only way to call UCE_Chemical.OnTriggerEnter() // again to check if reaction is possible now beakerWaterGo.SetActive(false); UCE_Chemical chemical = beakerWaterGo.GetComponent <UCE_Chemical>(); chemical.chemicalAmount.type = type; chemical.chemicalAmount.amount = 1; beakerWaterGo.GetComponent <Renderer>().material = waterGo.GetComponent <Renderer>().material; ShowNameOnTouch snot = beakerWaterGo.GetComponent <ShowNameOnTouch>(); snot.ChangeName(newName); beakerWaterGo.SetActive(true); } else { transform.Find("drop").gameObject.SetActive(true); Debug.Log("drop!"); } } }
void OnTriggerEnter(Collider other) { // Controller for Simulator, Side for HTC Vive if (other.name.Contains("Controller") || other.name.Contains("Side")) { cnt++; // When using dropper, this function might be triggered twice in a row, // so we need this to ensure the name text before can disapper properly if (show) { return; } myObject = ShowNameOnTouch.AllocateText(); show = true; } else { UCE_Heatable heatable = other.GetComponent <UCE_Heatable>(); if (heatable && heatable.type == UCE_Heatable.Type.Normal) { insideHeatable = heatable; } } }