// // Use this for initialization void Awake() { UnityEventCenter.Register <MineSelectEvent>(this, 12); UnityEventCenter.Register <CreateUnitEvent>(this); UnityEventCenter.Register <ScoreEvent>(this); ScoreBoard.getInstance().Init(2); }
public override void Attack(GuardAbs guardObj) { GoldCarrier gc = guardObj.gameObject.GetComponent <GoldCarrier>(); if (gc == null || gos.Contains(gc.gameObject)) { return; } gos.Add(gc.gameObject); UnityEventCenter.SendMessage <AudioEvent>(new AudioEvent(gameObject, clip_1)); if (guardObj.getGuardLevel() <= getAttackLevel()) { //等级相同,摧毁对方(只有超载矿车) if (guardObj.DestrotyGameObj(this)) { //成功摧毁对方 TryDestroy(this); } } else { //等级高于检查站,则扣钱 int gold = gc.popGold(); gc.setGoldAmounts(Mathf.FloorToInt(gold * tax)); } }
// Use this for initialization void Start() { if (startAudio != null) { UnityEventCenter.SendMessage <AudioEvent>(new AudioEvent(gameObject, startAudio, 1.5f)); } }
/// <summary> /// 用户点击制造单位 /// </summary> public void OnClick() { if (isMineSelected == true) { UnityEventCenter.SendMessage <unitEvent>(new unitEvent(null, null, null, IDList[unitSelected])); } }
void OnDestroy() { if (destoryAudio != null) { UnityEventCenter.SendMessage <AudioEvent>(new AudioEvent(gameObject, destoryAudio, 1.5f)); } }
void Awake() { instance = this; audioSource = GetComponent <AudioSource>(); UnityEventCenter.Register <AudioEvent>(this); AudioListener.volume = 5f; }
protected void buildNow() { //生成游戏单位代码 GameObject obj = GameObject.Instantiate <GameObject>(spawnUnit, transform.position, Quaternion.identity); obj.gameObject.GetComponent <GameobjBase>().setOwner(gBase.getOwner());//设置控制权 if (obj.GetComponent <Stone>() != null) { obj.GetComponent <Stone>().setSpawner(gameObject.transform.parent.gameObject); } if (isCharacter) { //只对人有效,对车无效 Roadmovable roadmovable = obj.gameObject.GetComponent <Roadmovable>(); if (targetObj != null) { roadmovable.setDestination(targetObj);//设置跟踪目标,优先 } else if (targetPoint != Vector3.zero) { roadmovable.setDestination(targetPoint);//设置目的地 } } obj.GetComponent <Collider>().enabled = true; UnityEventCenter.SendMessage <SpawnEvent>(new SpawnEvent(gameObject, obj));//发送生成单位事件 startTimer(); }
/// <summary> /// 卸金矿 /// 重点负责调用 /// </summary> /// <returns></returns> public int popGold() { UnityEventCenter.SendMessage <AudioEvent>(new AudioEvent(gameObject, clip)); int g = goldAmounts; goldAmounts = 0; return(g); }
/// <summary> /// 按照间隔制造矿车的协程 /// </summary> /// <param name="arr"></param> /// <returns></returns> IEnumerator createTramcar(Spawner[] arr) { foreach (Spawner sp in arr) { UnityEventCenter.SendMessage <CreateUnitEvent>(new CreateUnitEvent(sp.spawnUnit.GetComponent <GameobjBase>().game_ID, Vector3.zero)); yield return(new WaitForSeconds(createGap)); } }
public override void Attack(GuardAbs guardObj) { if (guardObj.getGuardLevel() <= getAttackLevel() && guardObj.gameObject.layer == Layers.VEHICLE) { if (guardObj.DestrotyGameObj(this)) { UnityEventCenter.SendMessage <AudioEvent>(new AudioEvent(gameObject, clip)); TryDestroy(this); } } }
public bool DestrotyGameObj(AttackAbs attackObj) { if (TryDestroy(attackObj)) { UnityEventCenter.SendMessage <DestroyEvent>(new DestroyEvent(gameObject, gameObject)); return(true); } else { return(false); } }
protected override void OnDragDropRelease(GameObject surface) { base.OnDragDropRelease(surface); Ray ray = new Ray(); Ray uiRay = new Ray(); if (Application.platform == RuntimePlatform.WindowsEditor || Application.platform == RuntimePlatform.WindowsPlayer) { ray = Camera.main.ScreenPointToRay(Input.mousePosition); uiRay = UICamera.mainCamera.ScreenPointToRay(Input.mousePosition); } else { ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position); uiRay = UICamera.mainCamera.ScreenPointToRay(Input.GetTouch(0).position); } RaycastHit hit = new RaycastHit(); //if (Layers.CHARACTER == IDs.getLayerByID(sp.spawnUnit.GetComponent<GameobjBase>().game_ID)) if (sp.spawnUnit.GetComponent <GameobjBase>().game_ID == IDs.getIDByName(Tags.Character.GATEWORKER)) {//如果是人的话,检测到是搬道闸才能发送信息建造 Physics.Raycast(ray, out hit, Mathf.Infinity, 1 << Layers.BUILDING | 1 << Layers.RAILWAY); if (hit.collider == null || hit.collider.gameObject.tag != Tags.GATE) { return; } } else { //这里是车辆被拖动的内容,只能够拖动到待建造面板中 //广播调用面板对应函数 surface.BroadcastMessage("onDragCrad", gameObject, SendMessageOptions.DontRequireReceiver); //Physics.Raycast(uiRay, out hit,Mathf.Infinity,1<<Layers.UI); //if(hit.transform.gameObject.tag==Tags.CAR_SELECTOR) //{ // int id = sp.spawnUnit.GetComponent<GameobjBase>().game_ID; // string name= sp.spawnUnit.GetComponent<GameobjBase>().game_name; // UnityEventCenter.SendMessage<setVehicleEvent>(new setVehicleEvent(null, hit.transform.gameObject, id,name)); //} } if (hit.collider != null) {//建造信息 UnityEventCenter.SendMessage <CreateUnitEvent>(new CreateUnitEvent(sp.spawnUnit.GetComponent <GameobjBase>().game_ID, hit.point)); } }
protected override void OnPress(bool isPressed) { base.OnPress(isPressed); if (isPressed) { UnityEventCenter.SendMessage <ViewMoveEvent>(new ViewMoveEvent(false)); } else { UnityEventCenter.SendMessage <ViewMoveEvent>(new ViewMoveEvent(true)); } }
/// <summary> /// 加分 /// </summary> /// <param name="player">加分的玩家</param> /// <param name="score">分</param> private void addScore(int player, int score) { if (scores.ContainsKey(player)) { scores[player] = System.Convert.ToInt32(scores[player]) + score; } else { throw new System.Exception("- -你难道用了外挂不成,明明没有这个玩家,不不不,其实我知道的,你忘了初始化计分板了吧"); } UnityEventCenter.SendMessage <ScoreEvent>(new ScoreEvent(this, player, System.Convert.ToInt32(scores[player])));//发送玩家分数更新信息 }
// Use this for initialization void Start() { UnityEventCenter.Register <ScoreEvent>(this); barNum = ScoreBoard.getInstance().playerNum; for (int i = 0; i < barNum; i++) { bars.Add(NGUITools.AddChild(gameObject, barPrefab)); bars[i].GetComponentInChildren <UISprite>().color = cs[i]; bars[i].GetComponentInChildren <UISprite>().alpha = 0.5f; bars[i].GetComponent <UIScrollBar>().value = 0; } }
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)); } } } }
// Use this for initialization void Start() { UnityEventCenter.Register <setOffEvent>(this); UnityEventCenter.Register <setVehicleEvent>(this); for (int i = 0; i < vehicleAmountUpgrd; i++)//初始化发车预选框 { GameObject vehicle = NGUITools.AddChild(vehicleCardTable.gameObject, vehicleCardPrefab); vehicle.tag = Tags.CAR_SELECTOR; vehicle.transform.localScale = new Vector3(1, 1, 1); vehicle.transform.localPosition = new Vector3(1, 1, 1); vehicle.layer = Layers.UICARD; } vehicleCardTable.Reposition(); }
void OnTriggerEnter(Collider other) { //这里要处理所有玩家的单位,所以不去继承之前写的那个基类 GameobjBase gBase = other.GetComponent <GameobjBase>(); GoldCarrier carrier = other.GetComponent <GoldCarrier>(); if (gBase == null || carrier == null) { return; } UnityEventCenter.SendMessage <ScoreAddEvent>(new ScoreAddEvent(gameObject, gBase.getOwner(), carrier.popGold()));//发送分数增加事件 other.gameObject.SendMessage(GameobjBase.TryDestroyFUNC); //Destroy(other.gameObject); }
public override void Attack(GuardAbs guardObj) { enemyAbs = guardObj.gameObject.GetComponent <GuardAbs>(); if (guardObj.gameObject.layer == Layers.CHARACTER && enemyAbs != null) { if (enemyAbs.getGuardLevel() <= ATTACKLEVEL) { gunnerEnemy = guardObj.gameObject.GetComponent <GunnerAttack>(); if (gunnerEnemy != null) { try { enemyAbs.TryDestroy(myAbs); myAbs.TryDestroy(myAbs); UnityEventCenter.SendMessage <AudioEvent>(new AudioEvent(gameObject, clip)); } catch { guardObj.SendMessage(GameobjBase.TryDestroyFUNC); gameObject.SendMessage(GameobjBase.TryDestroyFUNC); //Destroy(guardObj.gameObject); //Destroy(this.gameObject); } } else { try { enemyAbs.TryDestroy(myAbs); UnityEventCenter.SendMessage <AudioEvent>(new AudioEvent(gameObject, clip)); } catch { guardObj.gameObject.SendMessage(GameobjBase.TryDestroyFUNC); //Destroy(guardObj.gameObject); } finally { bulletCount--; if (bulletCount == 0) { myAbs.TryDestroy(myAbs); } } } } } }
// Use this for initialization void Awake() {//这里不能改动,一定只能在Awake函数里 // UnityEventCenter.Register<DestroyEvent>(this); UnityEventCenter.Register <SpawnEvent>(this); // UnityEventCenter.Register<ScoreEvent>(this); UnityEventCenter.Register <MineMoutainSpawnerEvent>(this); rm = GetComponent <AIDetector>(); GameObject[] gos = GameObject.FindGameObjectsWithTag(Tags.RAILWAY_POINT); foreach (GameObject x in gos) { rps.Add(x.GetComponent <RoadPoint>()); } }
void Start() { UnityEventCenter.Register <MineSelectEvent>(this); UnityEventCenter.Register <cancelMountainEvent>(this); sp = new List <Spawner>(); picList = new List <string>(); IDList = new List <int>(); producer = this.transform.Find("producer").GetComponent <UISprite>(); button = this.transform.Find("producer").GetComponent <UIButton>(); cdsprite = this.transform.Find("forCD").GetComponent <UISprite>(); cdsprite.fillAmount = 0.0f; CDTime = new List <float>(); isMineSelected = false; button.normalSprite = null; }
/// <summary> /// 游戏结束判定,返回1为胜利,0为未结束,-1为失败 /// </summary> /// <param name="score"></param> /// <returns></returns> public int isWin(playerInformation player) { switch (gameType) { case ARRIVAL_VERSUS: { if (player.score >= missionScore) { //发送游戏结束消息 UnityEventCenter.SendMessage <GameOverEvent>(new GameOverEvent(player.playerNum, ScoreBoard.getInstance().getScoreData())); } return(0); } default: return(-1000); } }
public override void OnWorldUnitCollisionStart(Collider obj) { if (obj.gameObject != targetGate) { return; } if (obj.tag == Tags.GATE) { targetGate.GetComponent <MetroGate>().GateChange(transform.position); if (targetGate.GetComponent <MetroGate>().getCanChange()) { UnityEventCenter.SendMessage <AudioEvent>(new AudioEvent(gameObject, clip)); } } }
void Awake() { //注册生成单位事件 //TODO: 未完成 UnityEventCenter.Register <SpawnEvent>(this); }
void OnDisable() { UnityEventCenter.UnRegister <setOffEvent>(this); UnityEventCenter.UnRegister <setVehicleEvent>(this); }
public override void Arrive() { SendMessage(Builder.BUILDFUNC); UnityEventCenter.SendMessage <AudioEvent>(new AudioEvent(gameObject, clip)); base.Arrive(); }
private ScoreBoard() { UnityEventCenter.Register <ScoreAddEvent>(this); }
public UILabel reminder;//用户提醒器 // Use this for initialization void Start() { UnityEventCenter.Register <waitClickEvent>(this); UnityEventCenter.Register <cancelClickEvent>(this); }
void OnDisable() { UnityEventCenter.UnRegister <waitClickEvent>(this); UnityEventCenter.UnRegister <cancelClickEvent>(this); }
void OnDisable() { UnityEventCenter.UnRegister <ScoreEvent>(this); UnityEventCenter.UnRegister <cancelMountainEvent>(this); }