public void turnBlueEffects() { battery = this.gameObject.GetComponent <MapsBattery>(); //改变碰撞体范围 //CircleCollider2D cc = this.gameObject.GetComponent<CircleCollider2D>(); //cc.radius = battery.getBatteryData().cureDistance; }
public float getAttackValue(GameObject gameObject) { battery = this.gameObject.GetComponent <MapsBattery>(); //Debug.LogWarning(battery.getBatteryData().cureVal); return(battery.getBatteryData().cureVal); }
// Update is called once per frame void Update() { //倒计数后开始一切操作 curTime = Time.time; if (curTime - lastTime >= 8) { //鼠标在UI上不做处理 if (Input.GetMouseButtonDown(0)) { //true即鼠标在UI上 if (EventSystem.current.IsPointerOverGameObject() == false) { Vector3 mousePos = Input.mousePosition; mousePos.z = 10; Vector3 screenPos = Camera.main.ScreenToWorldPoint(mousePos); //RaycastHit2D hit = Physics2D.Raycast(screenPos, Vector2.zero, 1 << (LayerMask.NameToLayer("Maps"))); //Collider2D[] col = Physics2D.OverlapPointAll(screenPos); GameObject mapsCreater = GameObject.Find("mapCreater"); GameObject target = mapsCreater.GetComponent <mapCreater>().getPointingMap(screenPos.x, screenPos.y); if (target != null) { MapsBattery battery = target.GetComponent <MapsBattery>(); int status = target.GetComponent <Base_command>().status; if (battery.BatteryOnMaps == null && status == 1) //医院建立在绿色地皮上,其他炮台 { //map空即能进行建造 //判断资源知否足以创建炮台 //不同地形额外cost不一样需要加上 int cost = BatterySelectedData.cost + target.GetComponent <Base_command>().terrainData.extraCost; int costWater = BatterySelectedData.costWater + target.GetComponent <Base_command>().terrainData.extraWaterCost; int costElectric = BatterySelectedData.costElectric + target.GetComponent <Base_command>().terrainData.extraElectricCost; if (money >= cost && water >= costWater && electric >= costElectric) { ChangeMoney(-cost, -costWater, -costElectric); battery.BuildBattery(BatterySelectedData.batteryPrefab, BatterySelectedData); target.GetComponent <Base_command>().status = 3; target.GetComponent <blue_command>().enabled = true; target.GetComponent <blue_command>().turnBlueEffects(); } else { if (money < cost) { moneyAnimator.SetTrigger("NoMoney"); } if (water < costWater) { waterAnimator.SetTrigger("NoMoney"); } if (electric < costElectric) { electricAnimator.SetTrigger("NoMoney"); } } } else { //TODO } } else { } } else { } } n = GreenNumber.numGreen; //根据绿块数量改变资源增长 /* * 6.15 * 加上*SpeedControllor.gameSpeed,即游戏速度的影响 */ if (GreenNumber.numGreen > 0) { incMoney += 0.05f * Mathf.Exp(GreenNumber.numGreen / 10000) * SpeedControllor.gameSpeed; //incMoney += (0.05f / (10 * Mathf.Exp(GreenNumber.numGreen / 1000000000))) * SpeedControllor.gameSpeed; //print("incMoney " + incMoney); if (incMoney > 1) { ChangeMoney((int)incMoney, 0, 0); incMoney = 0; } } if (GreenNumber.numWater > 0) { incWater += 0.05f * Mathf.Exp(GreenNumber.numWater / 10000) * SpeedControllor.gameSpeed; //incWater += (0.05f / (10 * Mathf.Exp(GreenNumber.numWater / 1000000000))) * SpeedControllor.gameSpeed; //print("incWater " + incWater); if (incWater > 1) { ChangeMoney(0, (int)incWater, 0); incWater = 0; } } if (GreenNumber.numElectric > 0) { incElectric += 0.05f * Mathf.Exp(GreenNumber.numElectric / 10000) * SpeedControllor.gameSpeed; //incElectric += (0.05f / (10 * Mathf.Exp(GreenNumber.numElectric / 1000000000))) * SpeedControllor.gameSpeed; //print("incElectric " + incElectric); if (incElectric > 1) { ChangeMoney(0, 0, (int)incElectric); incElectric = 0; } } } }
public void OnEndDrag(PointerEventData eventData) { Debug.Log("DragEnd:" + eventData.position); Vector3 touchInWordPos; touchInWordPos = Camera.main.ScreenToWorldPoint(eventData.position); touchInWordPos.z = -15.0f; Debug.Log("touchInWordPos:" + touchInWordPos); Ray ray = new Ray(touchInWordPos, new Vector3(0.0f, 0.0f, 1.0f)); Debug.DrawRay(touchInWordPos, new Vector3(0.0f, 0.0f, 1.0f), Color.green, 10.0f); RaycastHit2D hit = Physics2D.Raycast(touchInWordPos, Vector2.zero, 1000f, 1 << LayerMask.NameToLayer("Maps")); Debug.Log("FLAG:" + hit); if (hit) { //在这里通过hit得到的transform及对应gameObject拥有的属性判断是否可以建设 Debug.Log("raycastHitTransForm:" + hit.transform.gameObject); Debug.Log("currentBuilding:" + transform.gameObject.name); GameObject mapsCreater = GameObject.Find("mapCreater"); GameObject gameManager = GameObject.Find("GameManager"); BatteryManager batteryManager = gameManager.GetComponent <BatteryManager>(); Debug.Log("BatteryManager:" + batteryManager); GameObject target = mapsCreater.GetComponent <mapCreater>().getPointingMap(touchInWordPos.x, touchInWordPos.y); Debug.Log("target:" + target); if (target != null) { MapsBattery battery = target.GetComponent <MapsBattery>(); int status = target.GetComponent <Base_command>().status; if (battery.BatteryOnMaps == null && status == 1) //医院建立在绿色地皮上,其他炮台 { //map空即能进行建造 //判断资源知否足以创建炮台 //不同地形额外cost不一样需要加上 Debug.Log("cost:" + BatterySelectedData.cost); Debug.Log("batteryManager.money:" + batteryManager.money); int cost = BatterySelectedData.cost + target.GetComponent <Base_command>().terrainData.extraCost; int costWater = BatterySelectedData.costWater + target.GetComponent <Base_command>().terrainData.extraWaterCost; int costElectric = BatterySelectedData.costElectric + target.GetComponent <Base_command>().terrainData.extraElectricCost; if (batteryManager.money >= cost && batteryManager.water >= costWater && batteryManager.electric >= costElectric) { batteryManager.ChangeMoney(-cost, -costWater, -costElectric); battery.BuildBattery(BatterySelectedData.batteryPrefab, BatterySelectedData); target.GetComponent <Base_command>().status = 3; target.GetComponent <blue_command>().enabled = true; target.GetComponent <blue_command>().turnBlueEffects(); } else { if (batteryManager.money < cost) { batteryManager.moneyAnimator.SetTrigger("NoMoney"); } if (batteryManager.water < costWater) { batteryManager.waterAnimator.SetTrigger("NoMoney"); } if (batteryManager.electric < costElectric) { batteryManager.electricAnimator.SetTrigger("NoMoney"); } } } } if (hit.transform.name.Equals("Maps(Clone)")) { Debug.Log("DragEndRayCast:" + hit.transform.name); Debug.Log("被碰撞的物体是:" + hit.collider.gameObject.name); } } Debug.Log("originPos:" + originPos); transform.localPosition = originPos; }