Vinova tuyển lập trình viên Mobile & Web ở Hà Nội, lương $300-1000

Article: Thêm quảng cáo AdMob vào chương trình Unity 158

ngocdaothanh.myopenid.com 172
Updated 2 months ago

Unity là game engine phổ biến hiện nay, giúp viết game 2D và 3D dễ dàng, và chỉ cần viết một lần mà chạy được trên nhiều platform như Android, iOS, Mac, Windows v.v. Tuy nhiên vì đặc điểm của Unity nên hơi khó thêm quảng cáo AdMob vào. Bài này hướng dẫn cách thực hiện cho Android và iOS. Để hiểu bạn cần biết căn bản lập trình Unity, Android, iOS, và AdMob.

Tham khảo ví dụ mẫu.

Android

Cần viết thêm plugin Android cho Unity.

Tạo thư mục có tên Android (bắt buộc phải là tên này) trong thư mục Assets/Plugins của project Unity. Sau đó dùng Eclipse để tạo project Android ngay dưới thư mục này.

Tiếp đó ta sửa AndroidManifest.xml theo hướng dẫn của AdMob. BannerExample.java thì ta phải sửa như sau:

import android.os.Bundle;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;

import com.google.ads.AdView;
import com.google.ads.AdSize;
import com.google.ads.AdRequest;

import com.unity3d.player.UnityPlayerActivity;

public class BannerExample extends UnityPlayerActivity {
    private static String ADMOB_PUBLISHER_ID = "a14eddc6193cea1";

    private AdView adView;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);
        addContentView(layout, new LayoutParams(
            LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
        adView = new AdView(this, AdSize.BANNER, ADMOB_PUBLISHER_ID);
        layout.addView(adView, new LayoutParams(
            LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

        // Initiate a generic request to load it with an ad
        adView.loadAd(new AdRequest());
    }

    @Override
    public void onDestroy() {
        adView.destroy();
        super.onDestroy();
    }
}

Chú ý phải thừa kế UnityPlayerActivity. Class này nằm trong thư viện Unity cung cấp. Cần sửa tập tin .classpath của Eclipse để thêm vào dòng:

<classpathentry kind="lib" path="/Applications/Unity/Unity.app/Contents/PlaybackEngines/AndroidPlayer/bin/classes.jar"/>

Đường dẫn trên là khi chạy Unity trên Mac. Nếu trên Windows thì cần sửa cho phù hợp.

Ngoài ra cũng cần copy thư viện .jar do AdMob cung cấp, ví dụ GoogleAdMobAdsSdk-4.3.1.jar, vào thư mục libs của project.

AdMob phiên bản 4.3.1 đòi phải biên dịch với Android SDK r-13 trở lên => Cần sửa project.properties:

target=android-13

r-13 ứng với Android OS 3.2. Để có thể cài chương trình vào máy Android OS 2.x, cần sửa AndroidManifest.xml:

<uses-sdk android:minSdkVersion="6" />

6 nghĩa là r-6, ứng với Android OS 2.0.1.

Cuối cùng, cần biên dịch project theo kiểu library để thu được tập tin .jar trong thư mục bin.

Ở trên là cách làm với Eclipse. Nếu đã quen lập trình Android, bạn có thể dùng ant thay cho Eclipse.

Đến đây chỉ cần biên dịch project Unity cho Android là Unity tự biết phải tìm đến project Android ta vừa tạo rồi kèm 2 tập tin .jar ở trên vào tập tin .apk cuối cùng.

iOS

Xem ví dụ mẫu (link ở trên).

  1. Từ Unity, xuất project ra dạng dành cho iOS
  2. Mở project bằng Xcode
  3. Kéo thư mục GoogleAdMobAdsSDKiOS-5.0.5 và AdMob vào project trong Xcode
  4. Sửa AdViewController.m, đặt MY_BANNER_UNIT_ID thành Publisher ID ta đã đăng kí trên AdMob
  5. Sửa AppController.mm

Thêm vào đầu tập tin:

#import "AdViewController.h"

Thêm vào phương thức startUnity, ngay trước dòng [self Repaint]:

[AdViewController install];

Đến đây chỉ cần chạy là xong.

Comments

You must login to be able to comment

Uploaded files

No file uploaded yet

You must login to be able to upload

Nhà tài trợ:

Mọi người đều tự do viết bài, sửa bài của người khác, và bình luận ở trang web này. Bạn muốn chủ động tạo bài mới để chia sẻ kinh nghiệm với mọi người? Xin click link ở dưới.

Create new content