آموزش جلوگیری از هک بازی در یونیتی_آنتی لاکی پچر:
یکی از راه های هک اینه که افراد از برنامه های مختلف مثل لاکی پچر استفاده می کنن.
یک روش ضد هک اینه که توی شروع بازی یعنی تابع Start چک کنید که اپلیکیشن لاکی پچر یا سایر روی اندروید نصب شده یا نه.
اگه نصب بود پیام بدید که لاکی پچر حذف کنید تا بازی اجرا بشه یا منوی اصلی بازی روش یه لایه یا پنل فعال کنید که منوی اصلی دیده نشه و بره زیرش.
⚠️ اما چطور بررسی کنیم لاکی نصب هست یا نه.
❕اولا پکیج توابع بومی اندروید (android native functions ) رو باید داشته باشید.
این پکیج چند کیلوبایتی شامل توابعی هست که با استفاده از کلاس های جاوا میاد یک واسط برای ارتباط با اندروید ایجاد می کنه یعنی اومده کار رو ساده کرده مثلا اگه بخوایم یک فایل رو روی گوشی سرچ کنیم این خودش زبون یونیتی رو به اندروید ترجمه می کنه و دیگه نیاز نیست دردسر کد نویسی زیاد تحمل کنید.
در مثال ابتدا بررسی می شه آیا پکیجی با اسامی وارد شده در آرایه ما روی اندروید نصب شده یا نه
اگر نصب بود پنلی رو فعال می کنیم که روی منوی اصلی بازی قرار داشته باشه که دیگه نشه روی ایتم های دیگه کلیک کرد:
public GameObject hack;
hack.SetActive (true);
همچنین مسیر "/mnt/sdcard/LuckyPatcher/" برای مطمئن شدن از نصب لاکی پچر چک میشه. اینم اگه وجود داشت اون پنل هک رو فعال می کنیم.
در غیر هر دو شرط فوق آنتی هک غیر فعال میشه.
کد رو هم رئیس علی یردون ساخته میذارم استفاده کنید(من فقط کمی توضیح گذاشتم متوجه بشن مبتدی تر ها). بفرمایید:
public GameObject hack;
public string hackName = "/mnt/sdcard/LuckyPatcher/";
public string[] packageNames;
void Awake()
{
for (int a = 0; a < packageNames.Length; a++) {
if (AndroidNativeFunctions.isInstalledApp (packageNames[a])) {
hack.SetActive (true);
StartCoroutine (Hacked ());
}
}
if (System.IO.Directory.Exists (hackName))
{
hack.SetActive (true);
StartCoroutine (Hacked ());
}
}
IEnumerator Hacked()
{
yield return new WaitForSeconds (3f);
Application.LoadLevel ("MainMenu");
}
دانلود پکیج AndroidNativeFunctions برای حل مشکل لاکی پچر:
فقط 30 کیلوبایت
http://s9.picofile.com/file/8300377942/AndroidNativeFunctions_unitypackage.html
یکی از راه های هک اینه که افراد از برنامه های مختلف مثل لاکی پچر استفاده می کنن.
یک روش ضد هک اینه که توی شروع بازی یعنی تابع Start چک کنید که اپلیکیشن لاکی پچر یا سایر روی اندروید نصب شده یا نه.
اگه نصب بود پیام بدید که لاکی پچر حذف کنید تا بازی اجرا بشه یا منوی اصلی بازی روش یه لایه یا پنل فعال کنید که منوی اصلی دیده نشه و بره زیرش.
⚠️ اما چطور بررسی کنیم لاکی نصب هست یا نه.
❕اولا پکیج توابع بومی اندروید (android native functions ) رو باید داشته باشید.
این پکیج چند کیلوبایتی شامل توابعی هست که با استفاده از کلاس های جاوا میاد یک واسط برای ارتباط با اندروید ایجاد می کنه یعنی اومده کار رو ساده کرده مثلا اگه بخوایم یک فایل رو روی گوشی سرچ کنیم این خودش زبون یونیتی رو به اندروید ترجمه می کنه و دیگه نیاز نیست دردسر کد نویسی زیاد تحمل کنید.
در مثال ابتدا بررسی می شه آیا پکیجی با اسامی وارد شده در آرایه ما روی اندروید نصب شده یا نه
اگر نصب بود پنلی رو فعال می کنیم که روی منوی اصلی بازی قرار داشته باشه که دیگه نشه روی ایتم های دیگه کلیک کرد:
public GameObject hack;
hack.SetActive (true);
همچنین مسیر "/mnt/sdcard/LuckyPatcher/" برای مطمئن شدن از نصب لاکی پچر چک میشه. اینم اگه وجود داشت اون پنل هک رو فعال می کنیم.
در غیر هر دو شرط فوق آنتی هک غیر فعال میشه.
کد رو هم رئیس علی یردون ساخته میذارم استفاده کنید(من فقط کمی توضیح گذاشتم متوجه بشن مبتدی تر ها). بفرمایید:
public GameObject hack;
public string hackName = "/mnt/sdcard/LuckyPatcher/";
public string[] packageNames;
void Awake()
{
for (int a = 0; a < packageNames.Length; a++) {
if (AndroidNativeFunctions.isInstalledApp (packageNames[a])) {
hack.SetActive (true);
StartCoroutine (Hacked ());
}
}
if (System.IO.Directory.Exists (hackName))
{
hack.SetActive (true);
StartCoroutine (Hacked ());
}
}
IEnumerator Hacked()
{
yield return new WaitForSeconds (3f);
Application.LoadLevel ("MainMenu");
}
دانلود پکیج AndroidNativeFunctions برای حل مشکل لاکی پچر:
فقط 30 کیلوبایت
http://s9.picofile.com/file/8300377942/AndroidNativeFunctions_unitypackage.html
آموزش ساخت ساعت در یونیتی
ابتدا یک گیم آبجکت به نام clock میسازیم .
سپس یه گیم آبجکت hour , minute , second ساخته و زیر مجموعه clock میکنیم .
سه کیوب هم میسازیم و زیر مجموعه سه گیم آبجکت میکنیم.
خوب الان یه کد سی شارپ باز میکنیم :
using UnityEngine;
using System;
public class ClockAnimator : MonoBehaviour { private const float hoursToDegrees = 360f / 12f, minutesToDegrees = 360f / 60f,
secondsToDegrees = 360f / 60f;
public Transform hours, minutes, seconds;
public bool analog;
private void Update () { if (analog) { TimeSpan timespan = DateTime.Now.TimeOfDay;
hours.localRotation = Quaternion.Euler( 0f, 0f, (float)timespan.TotalHours * -hoursToDegrees); minutes.localRotation = Quaternion.Euler( 0f, 0f, (float)timespan.TotalMinutes * -minutesToDegrees); seconds.localRotation = Quaternion.Euler( 0f, 0f, (float)timespan.TotalSeconds * -secondsToDegrees);
} else { DateTime time = DateTime.Now;
hours.localRotation = Quaternion.Euler(0f, 0f, time.Hour * -hoursToDegrees);
minutes.localRotation = Quaternion.Euler(0f, 0f, time.Minute * -minutesToDegrees);
seconds.localRotation = Quaternion.Euler(0f, 0f, time.Second * -secondsToDegrees);
}
}
}
بعد هم گیم آبجک ها رو نسبت دهی کنید
ابتدا یک گیم آبجکت به نام clock میسازیم .
سپس یه گیم آبجکت hour , minute , second ساخته و زیر مجموعه clock میکنیم .
سه کیوب هم میسازیم و زیر مجموعه سه گیم آبجکت میکنیم.
خوب الان یه کد سی شارپ باز میکنیم :
using UnityEngine;
using System;
public class ClockAnimator : MonoBehaviour { private const float hoursToDegrees = 360f / 12f, minutesToDegrees = 360f / 60f,
secondsToDegrees = 360f / 60f;
public Transform hours, minutes, seconds;
public bool analog;
private void Update () { if (analog) { TimeSpan timespan = DateTime.Now.TimeOfDay;
hours.localRotation = Quaternion.Euler( 0f, 0f, (float)timespan.TotalHours * -hoursToDegrees); minutes.localRotation = Quaternion.Euler( 0f, 0f, (float)timespan.TotalMinutes * -minutesToDegrees); seconds.localRotation = Quaternion.Euler( 0f, 0f, (float)timespan.TotalSeconds * -secondsToDegrees);
} else { DateTime time = DateTime.Now;
hours.localRotation = Quaternion.Euler(0f, 0f, time.Hour * -hoursToDegrees);
minutes.localRotation = Quaternion.Euler(0f, 0f, time.Minute * -minutesToDegrees);
seconds.localRotation = Quaternion.Euler(0f, 0f, time.Second * -secondsToDegrees);
}
}
}
بعد هم گیم آبجک ها رو نسبت دهی کنید
bazaar-unity3d-store-v1.8.unitypackage
282.4 KB
🔸 پکیج کاربردی استفاده از پرداخت درون برنامه ای.
🌐 در مارکت بازار 🌐
🌐 در مارکت بازار 🌐
Media is too big
VIEW IN TELEGRAM
اموزش ساخت باران در یونیتی
@UnityEngine
@UnityEngine
🔶 #یونیتی
رفتن به مرحله ی دلخواه با کلیک روی باتن
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class Move : MonoBehaviour {
public Button btn1;
void Start () {
btn1.onClick.AddListener(TaskOnClick);
}
void TaskOnClick(){
SceneManager.LoadScene(" اسم مرحله دلخواه");
}
}
@UnityEngine
رفتن به مرحله ی دلخواه با کلیک روی باتن
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class Move : MonoBehaviour {
public Button btn1;
void Start () {
btn1.onClick.AddListener(TaskOnClick);
}
void TaskOnClick(){
SceneManager.LoadScene(" اسم مرحله دلخواه");
}
}
@UnityEngine