ফ্রি গেম মানিটাইজেশনের জন্য এডমব দারুণ একটা এড নেটওয়ার্ক। ইউনিটি গেমে এডমব যুক্ত করা অনেক সহজ। প্রথমে Mobile Ads Unity plugin ডাউনলোড করতে হবে।
এরপর এসেট হিসেবে এই প্লাগইনটা ইম্পোর্ট করতে হবে। তা করা যাবে Assets > Import Package > Custom Package থেকে।
এরপর AdMob app ID সেট করতে হবে। তার জন্য এডমবে একটা অ্যাপ তৈরি করে নিতে হবে। অ্যান্ড্রয়েড এবং আইওএস দুইটা প্লাটফর্মে গেম রিলিজ দিতে চাইলে দুইটা অ্যাপ তৈরি করে নিতে হবে এডমবে। এরপর অ্যাপ আইডি সেট করতে হবে। তা করা যাবে Assets > Google Mobile Ads > Settings থেকে।
এবার একটা ইম্পটি গেম অবজেক্ট তৈরি করে নিতে হবে। এবং একটা স্ক্রিপ্ট তৈরি করে নিতে হবে। গেম অবজেক্টের সাথে স্ক্রিপ্টটা যুক্ত করে দিব। যেমন AdManager.cs। প্রথমে দেখি কিভাবে ব্যানার দেখানো যায়ঃ
using System.Collections; using System.Collections.Generic; using UnityEngine; using GoogleMobileAds.Api; public class AdManager : MonoBehaviour { static private BannerView bannerView; static private InterstitialAd interstitial; void Start() { MobileAds.Initialize(initStatus => { }); RequestBanner(); } private void RequestBanner() { #if UNITY_ANDROID string adUnitId = "ca-app-pub-3940256099942544/6300978111"; #elif UNITY_IPHONE string adUnitId = "ca-app-pub-3940256099942544/2934735716"; #else string adUnitId = "unexpected_platform"; #endif bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Bottom); AdRequest request = new AdRequest.Builder().Build(); bannerView.LoadAd(request); } static public void ShowBanner() { bannerView.Show(); } }
তিনটা ধাপ। প্রথমে আমাদের মোবাইল এড ইনিশিয়ালাইজ করে নিতে হবে। এরপর আমরা এড রিকোয়েস্ট করব। এড রিকোয়েস্ট করার পর আমরা এড দেখাতে পারব।
ব্যানারটা কোথায় দেখাবে তা আমরা সেট করে দিতে পারি AdPosition.Bottom অথবা AdPosition.Top এর মাধ্যমে।
এখন আমরা যে কোন জায়গা থেকে ShowBanner() কল করলে ব্যানার এড দেখাবে। আমরা এই স্ক্রিপ্টের Start() মেথডেও কল করতে পারি। আমরা যদি শুধু একটা প্লাটফর্মের জন্য গেম তৈরি করি, তাহলে উপরে if else দিয়ে ব্যানার আইডি সেট না করে ব্যবহার করতে পারি। তাহলে সিম্পল ভাবে তাহলে নিচের মত লিখতে পারি স্ক্রিপ্টটাঃ
using System.Collections; using System.Collections.Generic; using UnityEngine; using GoogleMobileAds.Api; public class AdManager : MonoBehaviour { static private BannerView bannerView; static private InterstitialAd interstitial; void Start() { MobileAds.Initialize(initStatus => { }); RequestBanner(); ShowBanner(); } private void RequestBanner() { string adUnitId = "ca-app-pub-3940256099942544/6300978111"; bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Bottom); AdRequest request = new AdRequest.Builder().Build(); bannerView.LoadAd(request); } static public void ShowBanner() { bannerView.Show(); } }
এছাড়া আমরা ShowBanner() এর ভেতর কোড লিখে চেক করতে পারি ব্যনার লোড হয়েছে কিনা। যদি না হয়, তাহলে আবার ব্যানার লোড হওয়ার জন্য রিকোয়েস্ট করতে পারি।
এছাড়া ব্যানার যদি গেম প্লেতে দেখাই, তাহলে কেমন হবে না? তাই আমরা চাইলে গেম চলা কালে ব্যনার হাইড করতে পারি। তা করতে পারি bannerView.Hide() এর মাধ্যমে। এ জন্য একটা মেথড লিখে কল করতে পারি।
Interstitial Ads
Interstitial Ads এর জন্য এভাবে কোড লিখতে পারিঃ
static private void RequestInterstitial() { #if UNITY_ANDROID string adUnitId = "ca-app-pub-3940256099942544/1033173712"; #elif UNITY_IPHONE string adUnitId = "ca-app-pub-3940256099942544/4411468910"; #else string adUnitId = "unexpected_platform"; #endif interstitial = new InterstitialAd(adUnitId); AdRequest request = new AdRequest.Builder().Build(); interstitial.LoadAd(request); } static public void ShowIntersitial() { if (interstitial.IsLoaded()) { interstitial.Show(); } else { RequestInterstitial(); } }
এরপর যে কোন জায়গা থেকেই আমরা ShowIntersitial() কল করতে পারব। যেমন গেম ওভার হয়ে গেলে মেনু দেখানোর পূর্বে আমরা কল করতে পারি।
সম্পূর্ণ AdManager.cs:
using System.Collections; using System.Collections.Generic; using UnityEngine; using GoogleMobileAds.Api; public class AdManager : MonoBehaviour { static private BannerView bannerView; static private InterstitialAd interstitial; void Start() { MobileAds.Initialize(initStatus => { }); RequestBanner(); RequestInterstitial(); ShowBanner(); } private void RequestBanner() { #if UNITY_ANDROID string adUnitId = "ca-app-pub-3940256099942544/6300978111"; #elif UNITY_IPHONE string adUnitId = "ca-app-pub-3940256099942544/2934735716"; #else string adUnitId = "unexpected_platform"; #endif bannerView = new BannerView(adUnitId, AdSize.SmartBanner, AdPosition.Bottom); AdRequest request = new AdRequest.Builder().Build(); bannerView.LoadAd(request); } static public void ShowBanner() { bannerView.Show(); } static public void HideBanner() { bannerView.Hide(); } static private void RequestInterstitial() { #if UNITY_ANDROID string adUnitId = "ca-app-pub-3940256099942544/1033173712"; #elif UNITY_IPHONE string adUnitId = "ca-app-pub-3940256099942544/4411468910"; #else string adUnitId = "unexpected_platform"; #endif interstitial = new InterstitialAd(adUnitId); AdRequest request = new AdRequest.Builder().Build(); interstitial.LoadAd(request); } static public void ShowIntersitial() { if (interstitial.IsLoaded()) { interstitial.Show(); } else { RequestInterstitial(); } } }
এই একই কোড বার বার সকল গেমে ব্যবহার করতে পারি। Unity 2D গেম ডেভেলপমেন্ট নিয়ে এই ব্লগে কিছু লেখা রয়েছে, যেমনঃ
- ইউনিটি সম্পর্কে ধারণা এবং একটি গেম তৈরি
- ইউনিটি গেম ডেভেলপমেন্ট – ফ্লাপি বার্ড ২
- ইউনিটি গেম ডেভেলপমেন্ট – ফ্লাপি বার্ড ৩ – সাউন্ড ও অ্যানিমেশন
- Unity 2D – স্ক্রোলিং ব্যাকগ্রাউন্ড
- ইউনিটিতে শুটিং এবং পার্টিকেল ইফেক্ট
এছাড়া যারা জাভা ডেভেলপার, তারা চাইলে LibGDX ব্যবহার করে গেম ডেভেলপ করতে পারেন। এই ব্লগে কিছু লেখা রয়েছে LibGDX নিয়েও। যেমনঃ
- libGDX গেম ডেভেলপমেন্ট টিউটোরিয়াল
- libGDX গেম ডেভেলপমেন্ট টিউটোরিয়াল: Drawing
- libGDX গেম ডেভেলপমেন্ট টিউটোরিয়াল: Text
- libGDX গেম ডেভেলপমেন্ট টিউটোরিয়াল: Camera, Viewport, Projection Matrix
- libGDX গেম ডেভেলপমেন্ট টিউটোরিয়াল: Screens
- libGDX গেম ডেভেলপমেন্ট টিউটোরিয়াল: Sound
- libGDX গেম ডেভেলপমেন্ট টিউটোরিয়াল: একটি সিম্পল গেম তৈরি
ফ্রিল্যান্সিং নিয়ে নতুন করে কিছু লিখেন ভাই।
স্যার শুধু পাইথন প্রোগ্রাম দিয়ে কি কোনো সফটওয়্যার বা ওয়েবসাইট তৈরী করা যা…?
বা পাইথনের সাথে অন্য কোন প্রোগ্রাম গুলি খুব বেসি গুরুত্বপুন সফটওয়্যার বা ওয়েবসাইট তৈরী করতে….??
(Plz ans me)
valo manar app banar akta tutotial dela valo hoto sir
Onk helpful sir
Hi! Thanks for the awesome info…Onk vlo laglo article ta pore….
Sondor kore liksen. Very Helpful Content.