void ObjectPouring() { //Pouring if (movingObject && isBottle) { if (Input.GetMouseButton(1)) { //Find the closest glass to pour towards //Optimize this with a mouse movement check? Transform[] children = glassParent.GetComponentsInChildren <Transform>(); closestDistance = Mathf.Infinity; foreach (Transform t in children) { float dist = (selectableGameObject.transform.position - t.position).magnitude; if (dist < closestDistance) { closestDistance = dist; closest = t; } } if (!pouring) { pouring = true; if (!useSameFlexContainer) { useSameFlexContainer = true; int pointer = FluidManager.Instance.GetPointer(); //Load fluidContainer from FluidManager pourEffectObject = FluidManager.Instance.fluidObjects[pointer]; pourScript = pourEffectObject.GetComponent <FlexSourceActor>(); //Get bottle liquidContainer info fluidContainer = selectableGameObject.GetComponent <Container>(); //Update the material info at _auxFlexDrawFluid.cs Material fluidMat = fluidContainer.liquidMix.liquids[0]; FluidManager.Instance.fluids[pointer].UpdateMaterial(fluidMat); } } } else { CutPouring(); } } else { CutPouring(); } }
void Start() { actor = GetComponent <FlexSourceActor>(); actor.lifeTime = GameObject.Find("TimeManager").GetComponent <TimeManager>().timeRemaining; if (flex.maxParticles < timeInSeconds * 1000) { Debug.LogError("ERROR, PLEASE INCREASE maxParticles IN FLEX CONTAINER!"); timeInSeconds = flex.maxParticles / 1000; } if (text != null) { usingText = true; } }