Beispiel #1
0
        protected void AddInputColumnForInput(InputColumn column, string inputName)
        {
            GetAllVirtualInputs();
            Pipe.IDTSVirtualInput100 virtualInput = VirtualInputs.Where(vi => vi.Description == inputName).First();

            Pipe.IDTSInput100 input = SSISInputs.Where(i => i.Name == inputName).First();
            for (int i = 0; i < VirtualInputsColumnCollections[virtualInput].Count; i++)
            {
                if (column.Name == VirtualInputsColumnCollections[virtualInput][i].Name)
                {
                    ComponentWrapper.SetUsageType(input.ID, virtualInput, VirtualInputsColumnCollections[virtualInput][i].LineageID, (Pipe.DTSUsageType)column.UsageType);
                }
            }
            ;
        }
Beispiel #2
0
        // Update is called once per frame
        void Update()
        {
            //if we have a touch, make sure it's still there
            if (claimedTouch != -1)
            {
                bool stillExists = false;
                if (SinputTouchManager.TouchExists(claimedTouch))
                {
                    stillExists = true;
                }

                /*for (int i = 0; i < Input.touchCount; i++) {
                 *      if (Input.touches[i].fingerId == claimedTouch) stillExists = true;
                 * }*/
                if (debugMouse && claimedTouch == -2 && Input.GetKey("mouse 0"))
                {
                    stillExists = true;
                }
                if (!stillExists)
                {
                    claimedTouch = -1;
                }
            }

            //lets find a touch press if we don't have a touch yet
            if (claimedTouch == -1)
            {
                for (int i = 0; i < Input.touchCount; i++)
                {
                    if (claimedTouch == -1 && Input.touches[i].phase == TouchPhase.Began && !SinputTouchManager.IsClaimed(Input.touches[i].fingerId))
                    {
                        //this touch press is free, but does it touch the stick?

                        Vector3 hitPoint = Vector3.zero;
                        if (TouchCollision(Input.touches[i].position, out hitPoint, !followTouch))
                        {
                            if (followTouch)
                            {
                                transform.position = hitPoint;
                            }
                            claimedTouch = Input.touches[i].fingerId;
                            SinputTouchManager.ClaimTouch(claimedTouch);
                            touchOrigin = transform.InverseTransformPoint(hitPoint);
                        }
                    }
                }

                if (debugMouse && claimedTouch == -1 && Input.GetKeyDown("mouse 0"))
                {
                    Vector3 hitPoint = Vector3.zero;
                    if (TouchCollision(Input.mousePosition, out hitPoint, !followTouch))
                    {
                        if (followTouch)
                        {
                            transform.position = hitPoint;
                        }
                        claimedTouch = -2;
                        SinputTouchManager.ClaimTouch(claimedTouch);
                        touchOrigin = transform.InverseTransformPoint(hitPoint);
                    }
                }
            }



            if (claimedTouch != -1)
            {
                //still touching, work out distance from the origin (in local space) and that's our stick value
                Vector3 touchPosition = touchOrigin;

                for (int i = 0; i < Input.touchCount; i++)
                {
                    if (claimedTouch == Input.touches[i].fingerId)
                    {
                        //this is our touch
                        Vector3 hitPoint = Vector3.zero;
                        if (TouchCollision(Input.touches[i].position, out hitPoint, false))
                        {
                            touchPosition = hitPoint;
                        }
                    }
                }
                if (debugMouse && claimedTouch == -2)
                {
                    Vector3 hitPoint = Vector3.zero;
                    if (TouchCollision(Input.mousePosition, out hitPoint, false))
                    {
                        touchPosition = hitPoint;
                    }
                }

                stickInputVector  = transform.InverseTransformPoint(touchPosition) - touchOrigin;
                stickInputVector *= rangeFactor;

                if (stickInputVector.magnitude > 1f)
                {
                    stickInputVector.Normalize();

                    if (followTouch)
                    {
                        transform.position = touchPosition - transform.right * (stickInputVector.x * stickRange) - transform.up * (stickInputVector.y * stickRange);
                        touchOrigin        = Vector3.zero;
                    }
                }
            }
            else
            {
                stickInputVector = Vector3.zero;
            }

            //set virtual input values now
            if (virtualInputID_UP != "")
            {
                VirtualInputs.SetVirtualAxis(virtualInputID_UP, Mathf.Clamp(stickInputVector.y, 0f, 1f));
            }
            if (virtualInputID_DOWN != "")
            {
                VirtualInputs.SetVirtualAxis(virtualInputID_DOWN, Mathf.Clamp(stickInputVector.y * -1f, 0f, 1f));
            }
            if (virtualInputID_RIGHT != "")
            {
                VirtualInputs.SetVirtualAxis(virtualInputID_RIGHT, Mathf.Clamp(stickInputVector.x, 0f, 1f));
            }
            if (virtualInputID_LEFT != "")
            {
                VirtualInputs.SetVirtualAxis(virtualInputID_LEFT, Mathf.Clamp(stickInputVector.x * -1f, 0f, 1f));
            }

            //animate stick
            stickTopTransform.localPosition = stickInputVector * stickRange;
            if (claimedTouch == -1)
            {
                fade -= Time.deltaTime;
                if (followTouch)
                {
                    fade = Mathf.Clamp(fade, 0.05f, 1f);
                }
                else
                {
                    fade = Mathf.Clamp(fade, 0.5f, 1f);
                }
            }
            else
            {
                fade += Time.deltaTime;
                fade  = Mathf.Clamp(fade, 0f, 1f);
            }
            Color col = stickBase.color;

            col.a           = fade;
            stickBase.color = col;

            col            = stickTop.color;
            col.a          = fade;
            stickTop.color = col;
        }