void Start() { orbBullet = GetComponent <OrbBullet>(); OrbSkillReady(); GameObject gameManager = GameObject.FindGameObjectWithTag("GameController"); prafabHolder = gameManager.GetComponent <PrafabHolder>(); }
public GameObject CreateOrbBullet(GameObject orbBulletObj, Transform start, GameObject owner, Vector3 targetPos, Transform target, float damageModifier = 1f) { OrbController orbController = orbBulletObj.GetComponent <OrbController>(); DistanceDestroy distanceDestroy = orbBulletObj.GetComponent <DistanceDestroy>(); SphereCollider bulletCollider = orbBulletObj.AddComponent <SphereCollider>(); OrbBullet bullet = orbBulletObj.AddComponent <OrbBullet>(); Rigidbody rigidbody = orbBulletObj.AddComponent <Rigidbody>(); OrbSkill skill = orbController.skill; Role ownerRole = owner.GetComponent <Role>(); ownerRole.GetSkillByName(skill.skillName).StartCD(); gizmosShootPoint = orbBulletObj.transform.position; Vector3 scale = start.localScale; orbBulletObj.transform.position = start.position; orbBulletObj.transform.rotation = start.rotation; orbBulletObj.transform.LookAt(target); orbBulletObj.transform.localScale = scale; gizmosShootPoint = orbBulletObj.transform.position; distanceDestroy.fixPosition = start.position; float raduis; bulletColliderRadius.TryGetValue(BulletSize.Mega, out raduis); bulletCollider.radius = raduis; bulletCollider.enabled = true; rigidbody.mass = 2; rigidbody.useGravity = false; rigidbody.constraints = RigidbodyConstraints.FreezeRotationY | RigidbodyConstraints.FreezeRotationZ | RigidbodyConstraints.FreezeRotationX; bullet.orbSkill = skill; bullet.bulletSpeed = normalizeAttackSpeed(ownerRole.attribute.attackSpeed); bullet.creator = owner; bullet.damageModifier = damageModifier; bullet.direction = start.position - targetPos; GameObject bulletprojectile = Instantiate(skill.bulletPrafab); bulletprojectile.transform.SetParent(orbBulletObj.transform, false); GameObject bulletImpactPrafab = skill.bulletImpactPrafab; bullet.impectPrafab = bulletImpactPrafab; bullet.autoDestroyTime = 10; bullet.enhancement = GetBulletEnhancement(); bullet.EnhancementMerge(); bullet.PreEnhancementProcess(); bullet.ApplyForce(); orbController.caster = owner.GetComponent <Role>(); orbController.OrbAttackStart(); return(orbBulletObj); }