塔防篇: Day5

Morning:

初步目标:把炮台的拆解升级等逻辑做出来。

添加UGUI ,升级与拆的button.然后添加动画。。。

//遇到ZZ问题。。 Animation是老版本的动画系统,帧动画,animator是新的状态机, 

所以编辑动画轻点Animation..。

服。遇到bug改了半天。。都报错。。改回去了。又突然不报错了抓狂

加个升级。。以上午就搞出这个。。心痛委屈

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

public class BuildManager : MonoBehaviour {

	public TurretData laserTurretData;
	public TurretData missileTurretData;
	public TurretData standarTurretData;

	private int money=10000 ;

	public Animator moneyAnimator;
	public GameObject upgradeCanves;
	public Button buttonUpgrade;

	public Text moneyText;
	//当前选择炮台
	private TurretData selectTurretType;
	void ChangeMoney(int change=0){
		money += change;
		moneyText.text = "¥" + money;

	}

	void Update(){
		if (Input.GetMouseButton(0)) {
			if(EventSystem.current.IsPointerOverGameObject()==false) //查API得。。。 (若是移动端 要传参)
			{
				//炮台建造,Cube若是空 若非空
				Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition); 
				//	Debug.Log ("er"); 
				RaycastHit hit;
				bool isCollider=Physics.Raycast (ray,out hit,1000,LayerMask.GetMask("MapCube"));
				if (isCollider ) { 
					MapCube mapCube = hit.collider.GetComponent<MapCube>();//得到点击的mapCube 
					if (mapCube.turretGo == false&&selectTurretType!=null) {
						//可以创建
						if (money >= selectTurretType.cost) {
							
							ChangeMoney (-selectTurretType.cost); 
							mapCube.BuildTurret (selectTurretType.turretPrefab);
						} else {
							//提示钱够不够。..。	
							moneyAnimator.SetTrigger("Flicker");
						}

					} else if(mapCube.turretGo!=null) {
						//升级
						Vector3 tmp=mapCube.transform.position;
						tmp.y += 10;
						ShowupgradeUI(tmp,mapCube.isUpgraded);
						
					}
				}
			}	
		}
	}

	public void OnLaserSelected(bool isOn){ 
		if (isOn) {
			selectTurretType = laserTurretData;
		}
	}
	public void OnMissileSelected(bool isOn){ 
		if (isOn)
			selectTurretType = missileTurretData;
	}
	public void OnStandardSelected(bool isOn){ 
		if (isOn)
			selectTurretType = standarTurretData;

	}

	void ShowupgradeUI(Vector3 pos,bool isDisableUpgrade=false){
		upgradeCanves.SetActive (true);
		upgradeCanves.transform.position = pos;
		buttonUpgrade.interactable = !isDisableUpgrade;
	}
	void HideupgradeUI(){	
		upgradeCanves.SetActive (false);

	}
	public void OnUpgradeButtonDown(){
		//TODO
	}
	public void OnDestroyButtonDown(){
		
	}


}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值