一起使用操纵杆和input.Touchcount(帮助)

时间:2014-10-07 12:21:05

标签: touch joystick

我使用Input.touchCount旋转角色。 İf我在屏幕上拖动手指;角色在旋转。到目前为止没问题...... 我在屏幕下添加了操纵杆以移动角色。操纵杆是工作。但是当使用操纵杆时角色正在旋转。  当操纵杆向上移动时,角色正在移动,而且旋转角色。我应该在“触摸字符旋转”代码中执行被动操纵杆区域。但是怎么样? 以下视频将有助于更好地解释我的问题:

http://www.youtube.com/watch?v=gs9Pw4MU5o8&feature=youtu.be 我的“触摸旋转字符”代码:

var targetItem : GameObject;
var GUICamera : Camera;
var ambient : GameObject;


/********Rotation Variables*********/
var rotationRate : float = 1.0;
private var wasRotating;

/************Scrolling inertia variables************/
private var scrollPosition : Vector2 = Vector2.zero;
private var scrollVelocity : float = 0;
private var timeTouchPhaseEnded: float;
private var inertiaDuration : float = 0.5f;

private var itemInertiaDuration : float = 1.0f;
private var itemTimeTouchPhaseEnded: float;
private var rotateVelocityX : float = 0;
private var rotateVelocityY : float = 0;


var hit: RaycastHit;

private var layerMask = (1 << 8) | (1 << 2);
//private var layerMask = (1 << 0);


function Start()
{
layerMask =~ layerMask;
}

function FixedUpdate()
{

if (Input.touchCount > 0)
{ // If there are touches...
var theTouch : Touch = Input.GetTouch(0); // Cache Touch (0)

var ray = Camera.main.ScreenPointToRay(theTouch.position);
var GUIRayq = GUICamera.ScreenPointToRay(theTouch.position);


if(Physics.Raycast(ray,hit,50,layerMask))
{

if(Input.touchCount == 1)
{

if (theTouch.phase == TouchPhase.Began)
{
wasRotating = false;
}

if (theTouch.phase == TouchPhase.Moved)
{

targetItem.transform.Rotate(0, theTouch.deltaPosition.x * rotationRate,0,Space.World);
wasRotating = true;
}

}
}

}
}

注意:应该是多点触控。即;旋转和移动应该一起工作。 (我很抱歉我的英语不好)

0 个答案:

没有答案