Example #1
0
 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;
         }
     }
 }
Example #2
0
        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!");
                }
            }
        }
Example #4
0
 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;
         }
     }
 }