Beispiel #1
0
    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();
        }
    }
Beispiel #2
0
 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;
     }
 }