public GameObject GetBulletImpect(string name, BulletSize size = BulletSize.Small) { GameObject value; bool exist = bulletImpectStore.dictionary.TryGetValue(name + size, out value); return(exist ? value : null); }
public GameObject CreateBullet(Transform start, GameObject owner, Vector3 targetPos, Transform target, string name, BulletSize size = BulletSize.Small) { Role ownerRole = owner.GetComponent <Role>(); GameObject bulletObj = PrafabUtils.Instance.create(prafabHolder.Bullet); Vector3 scale = start.localScale; bulletObj.transform.position = start.position; bulletObj.transform.rotation = start.rotation; bulletObj.transform.LookAt(target); bulletObj.transform.localScale = scale; gizmosShootPoint = bulletObj.transform.position; SphereCollider bulletCollider = bulletObj.GetComponent <SphereCollider>(); float radius; bulletColliderRadius.TryGetValue(size, out radius); bulletCollider.radius = radius; Bullet bullet = bulletObj.GetComponent <Bullet>(); bullet.bulletSpeed = normalizeAttackSpeed(ownerRole.attribute.attackSpeed); bullet.creator = owner; bullet.aimingTarget = target.gameObject; bullet.direction = start.position - targetPos; gizmosReceivePoint = targetPos; GameObject bulletprojectilePrafab = prafabHolder.GetBullet(name, size); GameObject bulletImpectPrafab = prafabHolder.GetBulletImpect(name, size); GameObject bulletprojectile = PrafabUtils.Instance.create(bulletprojectilePrafab); bulletprojectile.transform.SetParent(bulletObj.transform, false); bullet.enhancement = GetBulletEnhancement(); bullet.impectPrafab = bulletImpectPrafab; bullet.PreEnhancementProcess(); bullet.ApplyForce(); return(bulletObj); }