Beispiel #1
0
    private GameObject InstatiateProjectile(ProjectileAbilityProfile ability, Vector3 vel, Vector3 pos)
    {
        GameObject projectile = Instantiate(ability.projectilePrefab, pos, Quaternion.identity) as GameObject;

        projectile.GetComponent <Projectile>().Launch(ability, vel);
        return(projectile);
    }
Beispiel #2
0
    public void ShootProjectile(AbilitySlot slot)
    {
        ProjectileAbilityProfile ability = GetAbility(slot) as ProjectileAbilityProfile;
        Ray ray = Camera.main.GetComponent <CameraController>().cameraRay;

        Vector3 vel, target = ray.origin + ray.direction * ability.distance, pos = transform.position;

        ability.SolveBallisticArc(pos, target, out vel);

        GameObject projectile = InstatiateProjectile(ability, vel, pos);

        projectile.GetComponent <Projectile>().isLocal = true;

        GetComponent <PhotonView>()?.RPC("ShootProjectileRPC", RpcTarget.Others, (byte)slot, vel, pos);
    }
Beispiel #3
0
 private void ShootProjectileRPC(byte slot, Vector3 vel, Vector3 pos)
 {
     ProjectileAbilityProfile ability = GetAbility((AbilitySlot)slot) as ProjectileAbilityProfile;
     GameObject projectile            = InstatiateProjectile(ability, vel, pos);
 }