private void OnHitedImp(Vector2 speedV, Transform tsf) { if (m_InLertPoPos || m_InBeatBackState) { return; } BaseBullet bullet = tsf.GetComponent <BaseBullet>(); if (bullet) { m_BackStartSpeed = bullet.GetBackStartSpeed(); m_BackEndSpeed = bullet.GetBackEndSpeed(); m_BackTime = bullet.GetBackTime(); } else { Monster monster = tsf.GetComponent <Monster>(); m_BackStartSpeed = monster.GetBackStartSpeed(); m_BackEndSpeed = monster.GetBackEndSpeed(); m_BackTime = monster.GetBackTime(); } if (m_BackTime > 0) { m_CurTime = 0; m_SpeedVec2 = speedV; m_G = 2 * m_V0 / (m_BackTime * 0.4f); m_InBeatBackState = true; m_Player.SetSpeed(Vector2.zero); } else { m_Player.EndBackAct(); } }
private void InstanceBullet() { BaseBullet skillBullet = Global.gApp.gGameCtrl.BulletCache.GetBullet(BulletConfig.Bullet_RobotSkill02); skillBullet.transform.localScale = new Vector3(1, 1, 1); skillBullet.transform.SetParent(transform, false); skillBullet.Init(m_Damage, transform, 0, 0); }
private BaseBullet CreateBullet(string name) { GameObject bulletNode = Global.gApp.gResMgr.InstantiateObj(BulletConfig.BulletPath[name]); BaseBullet bulletNodeCmp = bulletNode.GetComponent <BaseBullet>(); if (bulletNodeCmp == null) { bulletNodeCmp = bulletNode.GetComponentInChildren <BaseBullet>(); } bulletNodeCmp.SetName(name); return(bulletNodeCmp); }
public void Recycle(string name, BaseBullet bulletNode) { List <BaseBullet> bulletNodes; if (!m_BulletNodeCache.TryGetValue(name, out bulletNodes)) { bulletNodes = new List <BaseBullet>(); m_BulletNodeCache[name] = bulletNodes; } bulletNode.transform.SetParent(Global.gApp.gBulletNode.transform, true); bulletNode.transform.position = new Vector3(1000, 0, 0); bulletNodes.Add(bulletNode); }
private void OnHitedImp(Vector2 speedV, Transform bulletTsf) { BaseBullet bullet = bulletTsf.GetComponent <BaseBullet>(); m_SpeedVec2 = speedV; m_CurTime = 0; m_BackStartSpeed = bullet.GetBackStartSpeed(); m_BackEndSpeed = bullet.GetBackEndSpeed(); //if(m_BackStartSpeed == 0 && m_BackEndSpeed == 0) //{ // m_Monster.SetAbsAnimSpeed(0); // m_Monster.SetStaticByRigidProp(); //} m_BackTime = Mathf.Max(bullet.GetBackTime(), 0.01f); m_StartAct = true; }
public void CacheBullet(string name, int count, int maxCount = -1) { if (maxCount > 0) { List <BaseBullet> bulletNodes; if (m_BulletNodeCache.TryGetValue(name, out bulletNodes) && bulletNodes.Count > maxCount) { return; } } Transform bulletTsf = Global.gApp.gBulletNode.transform; for (int i = 0; i < count; i++) { BaseBullet bulletNode = CreateBullet(name); bulletNode.InitForCache(); Recycle(name, bulletNode); bulletNode.transform.SetParent(bulletTsf); } }