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); } } ; }
// 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; }