public override void OnSelfUnitCollisionStart(Collider selfUnit) { base.OnSelfUnitCollisionStart(selfUnit); if (selfUnit.gameObject.GetComponent <DestoryMe>() != null) { if (!selfUnit.gameObject.GetComponent <DestoryMe>().couldDestory) { selfUnit.gameObject.GetComponent <DestoryMe>().couldDestory = true; } else { GoldCarrier goldCarrier = selfUnit.GetComponent <GoldCarrier>(); if (goldCarrier != null) { MineMountain mineMountain = this.GetComponent <MineMountain>(); mineMountain.getMineFromCar(goldCarrier.popGold()); } selfUnit.gameObject.SendMessage(GameobjBase.TryDestroyFUNC, SendMessageOptions.DontRequireReceiver); //Destroy(selfUnit.gameObject); } } else { selfUnit.gameObject.AddComponent <DestoryMe>(); selfUnit.gameObject.GetComponent <DestoryMe>().couldDestory = true; } }
/// <summary> /// 清空底部面板信息 /// </summary> /// <param name="message"></param> public void Handle(cancelMountainEvent message) { mineSelected = null; GoldAll.text = ""; // Train.text =""; GoldGet.text = ""; // GoldTime.text =""; }
public MineMountain mine; //创建单位的矿山 /// <summary> /// UI创建单位的消息 /// </summary> /// <param name="id">单位ID</param> /// <param name="dest">单位目标三维坐标</param> /// <param name="Mine">生产单位的矿山</param> /// <param name="_subject"></param> /// <param name="_object"></param> public CreateUnitEvent(int id, Vector3 dest, int player = GameobjBase.PLAYER, MineMountain Mine = null) : base(null, "Create", null) { ID = id; destination = dest; mine = Mine; this.player = player; }
public void Handle(cancelMountainEvent message) { mine = null; foreach (GameObject o in cards) { NGUITools.Destroy(o); } cards.Clear(); }
private void tryCancelMine() { if (Application.platform == RuntimePlatform.WindowsEditor || Application.platform == RuntimePlatform.WindowsPlayer) { if (Input.GetMouseButtonDown(0)) { if (Physics.Raycast(UICamera.mainCamera.ScreenPointToRay(Input.mousePosition), 20))//检测是否点击到NGUI { return; } Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit rh; Physics.Raycast(ray, out rh); if (rh.collider == null) { return; } MineMountain mine = rh.collider.gameObject.GetComponent <MineMountain>(); if (mine == null) {//没点击到矿山 mineSelected = null; UnityEventCenter.SendMessage <cancelMountainEvent>(new cancelMountainEvent(null, null)); } } } else { if (Input.touchCount <= 0) { return; } Touch touch = Input.GetTouch(0); if (touch.phase == TouchPhase.Began && touch.tapCount >= 2) { Ray ray = Camera.main.ScreenPointToRay(touch.position); RaycastHit rh; Physics.Raycast(ray, out rh); if (rh.collider == null) { return; } MineMountain mine = rh.collider.gameObject.GetComponent <MineMountain>(); if (mine == null) {//没点击到矿山 mineSelected = null; UnityEventCenter.SendMessage <cancelMountainEvent>(new cancelMountainEvent(null, null)); } } } }
/// <summary> /// 矿山选择接口 /// </summary> /// <param name="message"></param> public void Handle(MineSelectEvent message) { MineMountain temp = message.getMine(); if (message.getObject().GetComponent <GameobjBase>().owner != GameobjBase.PLAYER) { message.setCancel(true); return;//不可选择非玩家的矿山 } if (temp != null) { mineSelected = temp; } }
/// <summary> /// 获取当前矿山后改变底部面板信息 /// </summary> /// <param name="message"></param> public void Handle(MineSelectEvent message) { MineMountain temp = message.getMine(); if (temp.gameObject.GetComponent <GameobjBase>().getOwner() == GameobjBase.PLAYER) { mineSelected = temp; } else { mineSelected = null; GoldAll.text = ""; GoldGet.text = ""; } }
void OnTriggerEnter(Collider other) { GameobjBase gBase = other.GetComponent <GameobjBase>(); MineMountain mine = other.GetComponent <MineMountain>(); if (mine == null) { return; } if (!mineExp && mine.isSmallMine) { //是建筑且是矿山的时候 mineExp = other.gameObject; HoldMineDelay(); } }
public override void OnEnemyCollisionStart(Collider enemy) { MineMountain mineMountain = this.GetComponent <MineMountain>(); ExplorationTramcar explorationTramcar = enemy.GetComponent <ExplorationTramcar>(); base.OnEnemyCollisionStart(enemy); if (!(mineMountain.isSmallMine && explorationTramcar)) { GoldCarrier goldCarrier = enemy.GetComponent <GoldCarrier>(); if (goldCarrier != null) { mineMountain.getMineFromCar(goldCarrier.popGold()); } enemy.gameObject.SendMessage(GameobjBase.TryDestroyFUNC); //Destroy(enemy.gameObject); } }
public void Handle(MineSelectEvent message) { MineMountain temp = message.getMine(); if (temp.gameObject.GetComponent <GameobjBase>().getOwner() == GameobjBase.PLAYER) { mine = temp; initCards(); } else { mine = null; foreach (GameObject o in cards) { NGUITools.Destroy(o); } cards.Clear(); } }
public MineStateChangeEvent(MineMountain mine) : base(mine.gameObject, "StateChange", mine.gameObject) { this.mine = mine; }
public MineMoutainSpawnerEvent(MineMountain mine) : base(mine.gameObject, "MineMoutainSpawne", null) { this.mine = mine; }