// Player Inputs. private void InputProcess() { // Mouse if (Input.GetMouseButtonUp(0) == false) { return; } Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit[] hits = Physics.RaycastAll(ray); foreach (var hit in hits) { // Camp OnClick or not CampOnClick CampClickScript = hit.transform.gameObject.GetComponent <CampOnClick>(); if (CampClickScript != null) { CampClickScript.OnClick(); return; } // Character OnClick or not SoldierOnClick SoldierClickScript = hit.transform.gameObject.GetComponent <SoldierOnClick>(); if (SoldierClickScript != null) { SoldierClickScript.OnClick(); return; } } }
// 玩家输入 private void InputProcess() { // Mouse左键 if (Input.GetMouseButtonUp(0) == false) { return; } //由摄像机产生一条射线 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit[] hits = Physics.RaycastAll(ray); // 走访每一个被Hit到的GameObject foreach (RaycastHit hit in hits) { // 是否有兵营点击 CampOnClick CampClickScript = hit.transform.gameObject.GetComponent <CampOnClick>(); if (CampClickScript != null) { CampClickScript.OnClick(); return; } // 是否有角色点击 SoldierOnClick SoldierClickScript = hit.transform.gameObject.GetComponent <SoldierOnClick>(); if (SoldierClickScript != null) { SoldierClickScript.OnClick(); return; } } }
//初始化俘兵营 private void InitCamp(EnemyType enemyType) { GameObject gameObject = null; string gameObjectName = null; string name = null; string iconSprite = null; Vector3 position = Vector3.zero; float trainTime = 0; switch (enemyType) { case EnemyType.Elf: gameObjectName = "CaptiveCamp_Elf"; name = "俘兵营"; iconSprite = "CaptiveCamp"; trainTime = 3; break; default: Debug.LogError("无法根据俘兵类型" + enemyType + "初始化兵营"); break; } gameObject = GameObject.Find(gameObjectName); position = UnityTool.FindChild(gameObject, "TrainPoint").transform.position; CaptiveCamp camp = new CaptiveCamp(gameObject, name, iconSprite, enemyType, position, trainTime); //添加监听点击脚本 CampOnClick campOnClick = gameObject.AddComponent <CampOnClick>(); campOnClick.Camp = camp; mCaptiveCamps.Add(enemyType, camp); }
// 设定兵营使用的Script private void AddCampScript(GameObject theGameObject, ICamp Camp) { // 加入Script CampOnClick CampScript = theGameObject.AddComponent <CampOnClick>(); CampScript.theCamp = Camp; }
private void InitCamp(EnemyType enemyType) { string gameObjectName = null; string name = ""; string icon = ""; float trainTime = 0f; switch (enemyType) { case EnemyType.Elf: gameObjectName = "CaptiveCamp_Elf"; name = "伏兵营"; icon = "CaptiveCamp"; trainTime = 3f; break; default: Debug.LogError("无法根据战士类型" + enemyType + "初始化兵营"); break; } GameObject gameObject = gameObject = GameObject.Find(gameObjectName); Vector3 position = UnityTool.FindChild(gameObject, "TrainPoint").transform.position; CaptiveCamp camp = new CaptiveCamp(gameObject, name, icon, enemyType, position, trainTime); CampOnClick campOnClick = gameObject.AddComponent <CampOnClick>(); campOnClick.camp = camp; mCamptiveCamp.Add(enemyType, camp); }
private void InitCamp(SoldierType soldierType) { GameObject gameObject = null; string gameObjectName = null; string name = null; string iconSprite = null; Vector3 position = Vector3.zero; float trainTime = 0; switch (soldierType) { case SoldierType.Rookie: gameObjectName = "SoldierCamp_Rookie"; name = "新手兵营"; iconSprite = "RookieCamp"; trainTime = 3; break; case SoldierType.Sergeant: gameObjectName = "SoldierCamp_Sergeant"; name = "中士兵营"; iconSprite = "SergeantCamp"; trainTime = 4; break; case SoldierType.Captain: gameObjectName = "SoldierCamp_Captain"; name = "上尉兵营"; iconSprite = "CaptainCamp"; trainTime = 5; break; default: Debug.LogError("无法根据战士类型" + soldierType + "初始化兵营"); break; } gameObject = GameObject.Find(gameObjectName); position = UnityTool.FindChild(gameObject, "TrainPoint").transform.position; SoldierCamp camp = new SoldierCamp(gameObject, name, iconSprite, soldierType, position, trainTime); //添加监听点击脚本 CampOnClick campOnClick = gameObject.AddComponent <CampOnClick>(); campOnClick.Camp = camp; mSoldierCamps.Add(soldierType, camp); }