// ------------------------------------------------------------------------------------ // public void onTouchBegan(GameTouchController gameTouchController, GameTouchParams gameTouchParams) { // Check active unit if (gameTouchParams.touchGameObject.tag.Equals(UnitBase.UNIT_TAG)) { UnitBase unit = gameTouchParams.touchGameObject.GetComponent<UnitBase>(); if (unit != null && unit.isUnitMaster()) { if (activeUnit != null && activeUnit.Equals(unit)) { activeUnit.setActive(false); activeUnit = null; } else { setNewActiveUnit(unit); } return; } } // Move active unit if not return if (activeUnit != null) { ((UnitMasterBase) activeUnit).moveAtPosition(gameTouchParams.touchPosition); } }
public void notifyGameTouchObservers(GameTouchParams gameTouchParams) { foreach (IGameTouchObserver observer in gameTouchObservers.ToArray()) { if (observer != null) { observer.onTouchBegan(this, gameTouchParams); } } }
// ------------------------------------------------------------------------------------ // void Update() { if (!TimeController.getPause()) { if (Input.GetMouseButtonDown (0)) { foreach (Camera camera in cameras) { ray = camera.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, 1000)) { GameTouchParams gameTouchParams = new GameTouchParams (hit.collider.gameObject, hit.point); notifyGameTouchObservers(gameTouchParams); } } } } }