public void AutoScroll(Vector3 pTch) { mWasInside = mTchArea.IsInside(pTch); if (dodgeAutoScrlVec(pTch) || dodgeAutoScrl()) { return; } //("AutoScroll" + mName.LogWith ("Frm") + mTchArea.Center.LogWith ("Cen") + pTch.LogWith ("Vect")).HtLog (); Vector3 dirVec = Vector3.Scale(mTchArea.Center - pTch, myDirect); //("AutoScroll" + dirVec.LogWith("Dir") + dirVec.magnitude.LogWith("Mag") + mScreenLength.LogWith("Screen") ).HtLog (); if (dirVec.magnitude < mFrmOpt.AutoScrollLimitRatio * mFrameLength) { return; } dirVec /= (mScreenLength * 1.5f); DoScroll(dirVec); }
// _////////////////////////////////////////////////_ _///////////////////////_ _____ Mouse _____ H O L D _____ public override void MouseHold(Vector3 pWorldPo, Vector3 pScreenPo, GameObject pAlien) { // Set muiPrvTouchCo, muiTouchCo, muiAccumDist if (muiState == UiState.SPEED_LIMIT) { return; } base.MouseHold(pWorldPo, pScreenPo, pAlien); bool isInside = muiWagu.IsInside(pWorldPo); if (isInside) { if (muiState == UiState.ALIEN_WENT) { MyObjectAlienCameBack(); SetState(UiState.SELECTED); } } else // Outside Case ... { if (muiState == UiState.ALIEN_CAME) // Alien went out .. { SetState(UiState.NONE); if (mAlienTarget != null) { mAlienTarget.CellCs().Released(); mAlienTarget = null; } return; } if (muiLimit2Inside) // Touch Sequence Manage ... { muiPrvTouchCo = pWorldPo; // Scroll From Outside to Inside ... No MouseDown Event .. if (touchStt.HasValue && touchStt.Value) { MouseUp(); } return; } else { if (MouseHoldOutsideAction(pWorldPo, pScreenPo, pAlien)) { return; } } } // Inside Case .... Alien has come !!!!!!! if (pAlien != null && isInside) { if (SpeedLimit()) { return; } //(mName.LogWith ("Wagu") + " Alien is not Null .. ").HtLog (); if (muiSelectedObj == null) { (mName.LogWith("Wagu") + " SelectedObj is NULL Accept >>> Alien is Here <<< .. .. ").HtLog(); int xIdx, yIdx; Vector3 v4tile = pWorldPo.AppliedDist(muiOption.scrlVert.Value, -muiWagu.mContDist); bool inside = mTileObj.IsInside(v4tile, out xIdx, out yIdx); if (inside) { SetState(UiState.ALIEN_CAME); AlienIsInside(xIdx, yIdx, pAlien); return; } else if (pAlien == muiSelectedObj) // My Case .. { return; //ReleaseAliens (); } } else { return; } } //base.MouseHold (pWorldPo, pScreenPo, pAlien); //if (isInside) (mName.LogWith ("Wagu") + muiWagu.mContDist.LogWith ("Distance")).HtLog (); if (!muiOption.scrlVert.HasValue) { return; // No Scroll Allowed .. !!!! } switch (muiState) { case UiState.SCROLL_OFFLIMIT: case UiState.SCROLL: if (optnScrlEnable) { DoScroll(muiTouchCo - muiPrvTouchCo); } bool?minCase; if (muiWagu.OffLimitOf(out minCase)) { SetState(UiState.SCROLL_OFFLIMIT); } if (muiOption.numSelection < muiTouchCnt && muiAccumDist < muiOption.accumDistLimit4Selection) // Selection .. { muiSelectedObj = muiTouchCo.GetNearestFrom(null, dicCell); if (muiSelectedObj != null) { if (muiSelectedObj.CellCs().muiSortOrStuck.HasValue&& muiSelectedObj.CellCs().muiSortOrStuck.Value) { return; } muiSelectedObj.CellCs().Selected("Drag"); SetState(UiState.SELECTED); Ag.LogDouble(" Selected :: " + muiSelectedObj.name); } } return; // Translate and Finish !!! case UiState.SELECTED: (mName.LogWith("Wagu") + " Mouse Hold ::: Selected ").HtLog(); muiSelectedObj.CellCs().SetCurrPosi(pWorldPo); if (SpeedLimit()) { return; } muiSelectedObj.CellCs().dlgtAlien = null; SwitchingProcess("Sort"); return; // case UiState.SCROLL_OFFLIMIT: // DoScroll (muiTouchCo - muiPrvTouchCo); // return; case UiState.ALIEN_WENT: (mName.LogWith("Wagu") + muiState + " Inside : " + isInside).HtLog(); return; } return; }