public bool AddWeaponToHero( HeroData hero ) { m_weapon = m_rightHand.gameObject.AddComponent<Cha_Weapon>(); m_weapon.dummy_spine = m_back; m_weapon.sub_hand = m_leftHand; EquipmentItem wp = hero.equipmentList.getItemByType((int)GlobalDef.EquipmentTpye.E_WEAPON); if (null == wp) { Debug.LogError("weapon is error name=>" + wp.resname ); return false; } int weaponType = hero.heroType; string weaponName = wp.resname; m_weapon.Init (weaponName, weaponType); if(GetComponentInParent<Unit>().m_unitType == GlobalDef.UnitType.UNIT_TYPE_ENEMY_HERO) { int a; a = 0; } return true; }
//< 设置显示当前英雄模型 public void SetHero() { string heroName = GetCurCharData().resname; int weaponType = GetCurCharData().heroType; m_bip01 = m_transform.Find(heroName).Find("Bip01"); m_animation = m_transform.Find(heroName).GetComponent<Animation>(); //get model height Mesh mesh = m_transform.Find(heroName).Find("mod").GetComponent<SkinnedMeshRenderer>().sharedMesh; Vector3 size = mesh.bounds.size; Vector3 scale = m_transform.Find(heroName).lossyScale; Vector3 realsize = new Vector3(size.x * scale.x, size.y * scale.y, size.z * scale.z); m_height = realsize.z; //sharder set m_transform.Find(heroName).Find("mod").GetComponent<SkinnedMeshRenderer>().material.shader = Shader.Find("Mobile/VertexLit (Only Directional Lights)"); //get weapon script m_weaponScript = m_scriptHero.m_rightHand.GetComponent<Cha_Weapon>(); //< shadow follow me m_shadow.GetComponent<Shadow>().Pickparent(m_bip01, 1); m_shadow.gameObject.SetActive(true); m_weaponScript.ReturnBlade(); SetAnimation(weaponType); bool bHaveForce = true; //< pvp场景 if (LevelData.levelType == 8) { bHaveForce = false; } switch (weaponType) { case 1: if (bHaveForce) m_atkColliderCenter = new Vector3(0, 0.05f, 0.17f); else m_atkColliderCenter = new Vector3(0, 0.05f, 0.10f); m_atkColliderRadius = 0.13f; m_efSwing1.localScale = new Vector3(1.6f, 2.0f, 2.0f); m_weaponTypeFactor = 0; m_animation["run"].speed = 0.6f; break; case 2: if (bHaveForce) m_atkColliderCenter = new Vector3(0, 0.05f, 0.16f); else m_atkColliderCenter = new Vector3(0, 0.05f, 0.09f); m_atkColliderRadius = 0.13f; m_weaponTypeFactor = 10; m_efSwing1.localScale = new Vector3(1.3f, 1.7f, 1.7f); m_animation["run"].speed = 0.6f; break; case 3: if (bHaveForce) m_atkColliderCenter = new Vector3(0, 0.05f, 0.2f); else m_atkColliderCenter = new Vector3(0, 0.05f, 0.09f); m_atkColliderRadius = 0.15f; m_weaponTypeFactor = 30; m_efSwing1.localScale = new Vector3(1.6f, 2.0f, 2.0f); m_animation["run"].speed = 0.45f; break; case 4: if (bHaveForce) m_atkColliderCenter = new Vector3(0, 0.05f, 0.2f); else m_atkColliderCenter = new Vector3(0, 0.05f, 0.09f); m_atkColliderRadius = 0.15f; m_weaponTypeFactor = 40; m_efSwing1.localScale = new Vector3(1.6f, 2.0f, 2.0f); m_animation["run"].speed = 0.6f; break; case 5: //gong break; case 6: //法师 if (bHaveForce) m_atkColliderCenter = new Vector3(0, 0.05f, 0.21f); else m_atkColliderCenter = new Vector3(0, 0.05f, 0.25f); m_atkColliderRadius = 0.27f; m_weaponTypeFactor = 60; m_animation["run"].speed = 0.6f; m_efSwing1.localScale = new Vector3(1.6f, 2.0f, 2.0f); break; } //< get atk collider cender m_atkCollider.center = m_atkColliderCenter; m_atkCollider.radius = m_atkColliderRadius; m_curAttackStat = m_weaponTypeFactor; initAnimation(); SetHeroSound(); m_animation.Play("idle"); }