示例#1
0
    IEnumerator AttackWithAttackRate(Transform characterTransform, RotationDirection attackDirection, string ignoreTag)
    {
        for (int i = 0; i < SpawnedObjectsOffset.Count; i++)
        {
            Quaternion rotation = attackDirection.rotation;

            if (isRandom)
            {
                rotation *= Quaternion.Euler(0, 0, Random.Range(-randomAngleOffset / 2, randomAngleOffset / 2));
            }
            else
            {
                rotation *= Quaternion.Euler(0, 0, SpawnedObjectsOffset[i]);
            }

            GameObject          spawnedObject       = Instantiate(spawnableObject, characterTransform.position + attackDirection.direction, rotation);
            WeaponSpawnedObject weaponSpawnedObject = spawnedObject.GetComponent <WeaponSpawnedObject>();
            if (spawnedObjectAttachToCharacter)
            {
                spawnedObject.transform.SetParent(characterTransform);
            }
            weaponSpawnedObject.CreateWeaponSpawnedObject(this, ignoreTag);
            if (isBurst)
            {
                yield return(new WaitForSeconds(attackRate));
            }
        }
        yield return(null);
    }
示例#2
0
    public float GetExpectedRange()
    {
        WeaponSpawnedObject weaponSpawnedObject = spawnableObject.GetComponent <WeaponSpawnedObject>();

        return(spawnedObjectSpeed * spawnedObjectLifeTime);
    }