コード例 #1
0
    void Start()
    {
        orbBullet = GetComponent <OrbBullet>();
        OrbSkillReady();

        GameObject gameManager = GameObject.FindGameObjectWithTag("GameController");

        prafabHolder = gameManager.GetComponent <PrafabHolder>();
    }
コード例 #2
0
ファイル: BulletUtils.cs プロジェクト: lishi500/LittleMage2
    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);
    }