Unity Scripts
82 subscribers
67 photos
26 videos
11 files
34 links
هر چی کد بخواید برای یونیتی اینجا هست #C و JavaScript و برای پیدا کردن کد مورد نظر فقط کافی آن را بدون # سرچ کنید.


کانال های ما:
@Unitypersianforum

لینک انجمن:
https://t.me/joinchat/JNNaghKP-cPuU04-GCl4LA

مدیر:
@ErfanRafezi
Download Telegram
Channel created
Channel photo updated
🌼کد اتصال به mySQL در سیشارپ:
MySql.Data.MySqlClient.MySqlConnection conn;
string myConnectionString;

myConnectionString = "server=127.0.0.1;uid=root;" +
"pwd=12345;database=test;";

try
{
conn = new MySql.Data.MySqlClient.MySqlConnection();
conn.ConnectionString = myConnectionString;
conn.Open();
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
MessageBox.Show(ex.Message);
}



🌼روش دو:
MySql.Data.MySqlClient.MySqlConnection conn;
string myConnectionString;

myConnectionString = "server=127.0.0.1;uid=root;" +
"pwd=12345;database=test;";

try
{
conn = new MySql.Data.MySqlClient.MySqlConnection(myConnectionString);
conn.Open();
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
MessageBox.Show(ex.Message);
}
string.Format("{0}/screenshots/screen_{1}x{2}_{3}.png",
Application.dataPath,
width, height,
System.DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss"));

این قسمت کد ،
Application.dataPath
رو به جای
{0}
میذاره
.width
رو به جای
{1}
و
height
رو به جای
{2}
و مقدار بعدی یعنی زمان رو کنارشون چاپ می کنه

@Unity_Scripts
#یونیتی
می خوام بگم اگه گیم ابجکت کامپوننت صدا یا مثلا ریجید بادی یا غیره نداشت (==null) یا داشت(مخالف null یا !=null) فلان کار کنه ":
if(gameObjectToCheck.GetComponent<Rigidbody> () != null)
{
//do something
}



یا

if(gameObjectToCheck.GetComponent<AudioSource> () != null)
{

}
@Unity_Scripts
تا آخرش بخونید لطفا

در کدهای ارائه قبلی توسط سایر دوستان،تولید اعداد تصادفی محدود بود اما اینجا من یاد میدیم تا تعداد تقریبا نامحدود عدد تصادفی تولید کنیم.
اینم الگوریتم و کد کاملا تست شده ای که بعد از چند روز فکر کردن بالاخره نوشتمش.

//game maker script
//Generating random numbers without repeating
//Author:sajjad3011....gameover.blog.ir....
//
n=8
a[0]=irandom_range(0,n)
for(i=1;i<=n;i++)
{
a[i]=irandom_range(0,n);
for(j=0;j<=(i-1);j++)
{
if(a[i]==a[j])
{
a[i]=irandom_range(0,n);
j=0;i--;
}//if
}//for j
}//for i

—---------
حالا برای VB6 :

یک listview و یک command button بذارید روی فرم حله


@Unity_Scripts
اینم کد دیگه چی میخواید:
Author:sajjad3011
Private Sub Command1_Click()
List1.Clear

Const n = 9
Dim a(0 To n) As Integer


' Generate random value between 1 and n
a(1) = CInt(Int((n * Rnd()) + 1))

For i = 2 To n
a(i) = CInt(Int((n * Rnd()) + 1))
For j = 1 To i - 1
If (a(i) = a(j)) Then

a(i) = CInt(Int((6 * Rnd()) + 1))

j = 1
i = i - 1
End If 'if
Next j 'or j
Next i 'for i

For i = 1 To UBound(a)
List1.AddItem (a(i))
Next i
End Sub


@Unity_Scripts
یونیتی👻👻👻چرخش با استفاده از Quaternion.Euler به جای rotation:
@Unity_Scripts

گاهی به جای غرق شدن در ریاضیات quaternion کواترنیون از چرخش های اویلری Euler استفاده می کنیم.

استفاده از تابع اویلر به جای محاسبات ریاضی عمیق تر،باعث پردازش کمتری خواهد شد که این کار باعث مصرف کمتر منابع مثل پردازنده و همچنین بهینه سازی بازی شما می شود.

این تابع (Euler) سه مولفه xyz را دریافت کرده و چرخش حول این سه محور را انجام میدهد.


مثال 1 :

برای دستیابی به زوایای اویلر داریم:

Debug.Log(transform.eulerAngles);


مثال 2 :

برای چرخش اویلری داریم:

transform.eulerAngles = new Vector3(30,0,0);


مثال 3 :

چرخش گیم ابجکت از جلو،عقب(حول محور x که از چپ به راست هست)، با حرکت ماس به بالا و پایین(دقت کنید y ماوس تغییر می کنه):

transform.eulerAngles = new Vector3(mouseY * 0.1f,0,0);

مثال4 :
چرخش گیم ابجکت از چپ و راست(حول محور y که از پایین به بالاست)،با حرکت ماوس به چپ و راست(دقت کنید x ماوس تغییر می کنه):

void Update ()
{
float mouseX = Input.GetAxis("Mouse X");
Debug.Log(mouseX);
transform.eulerAngles = new Vector3(0, mouseX, 0);
}
ذخیره مختصات یک باتن در یونیتی_تغییر مختصات button _دستری به position یک button در یونیتی:
@Unity_Scripts

public Button button1;
button1.rectTransform.anchoredPosition = new Vector2(Input.mousePosition.x, Input.mousePosition.y);


در کد فوق متغیر button1 از نوع عمومی هست که در inspector ظاهر میشه(پس از اختصاص اسکریپت به گیم ابجکت دلخواه،مثلا یک گیم ابجکت تهی به نام gameController)


برای ذخیره حتی پس از خروج بازی :

PlayerPrefs.SetFloat("x",button1.rectTransform.anchoredPosition.x);

PlayerPrefs.SetFloat("y",button1.rectTransform.anchoredPosition.y);

PlayerPrefs.Save();

برای بازیابی مقادیر x,y و تنظیم مجدد هنگام ورد به بازی، در تابع Start() از کدی مثل استفاده می کنیم:

float x=PlayerPrefs.GetFloat("x");

float y=PlayerPrefs.GetFloat("y");

button1.rectTransform.anchoredPosition = new Vector2(x, y);

اگه new کار نداد به این سبک تست کنید:

button1.rectTransform.anchoredPosition.Set(x, y);
ذخیره مختصات یک باتن در یونیتی_تغییر مختصات button _دستری به position یک button در یونیتی:
@Unity_Scripts

public Button button1;
button1.rectTransform.anchoredPosition = new Vector2(Input.mousePosition.x, Input.mousePosition.y);


در کد فوق متغیر button1 از نوع عمومی هست که در inspector ظاهر میشه(پس از اختصاص اسکریپت به گیم ابجکت دلخواه،مثلا یک گیم ابجکت تهی به نام gameController)


برای ذخیره حتی پس از خروج بازی :

PlayerPrefs.SetFloat("x",button1.rectTransform.anchoredPosition.x);

PlayerPrefs.SetFloat("y",button1.rectTransform.anchoredPosition.y);

PlayerPrefs.Save();

برای بازیابی مقادیر x,y و تنظیم مجدد هنگام ورد به بازی، در تابع Start() از کدی مثل استفاده می کنیم:

float x=PlayerPrefs.GetFloat("x");

float y=PlayerPrefs.GetFloat("y");

button1.rectTransform.anchoredPosition = new Vector2(x, y);

اگه new کار نداد به این سبک تست کنید:

button1.rectTransform.anchoredPosition.Set(x, y);
🔫🔫👍😊 کد شلیک گلوله سه بعدی و نابود شدن دشمن پس از برخورد تیر با هدف که تگ enemy دارد.
کد تیر اندازی در صورتی که خشاب،تیر داشته باشه برای یونیتی.کد تیر زدن در یونیتی_کد تیر اندازی در یونیتی_کد شلیک تیر در یونیتی_کد شلیک گلوله در یونیتی_اسکریپت شلیک در یونیتی_اسکریپت تیر اندازی در یونیتی_اسکریپت تیر زدن در یونیتی💛👻

// @Unity_Scripts
using UnityEngine;
using System.Collections;

public class tirZadan: MonoBehaviour {

// Use this for initialization
public Transform emptyGameObject;
public float distance;
public GameObject enemy,prefBullet,bullet;
public AudioClip shootAudio;
public Transform shootPoint;
float volumeSeda=1.0F;
int tedadTir=10;
void Update () {
if (Input.GetButtonDown ("Fire1")) //age left_click shod
{
if(tedadTir > 0) {
tedadTir--;
bullet= Instantiate(prefBullet, emptyGameObject.position, Quaternion.identity)as GameObject;
AudioSource.PlayClipAtPoint(shootAudio, shootPoint.transform.position, volumeSeda);
}
}
}//update

}

👻 کد زیر هم به پریفب گلوله میدیم:
//bullet.cs
using UnityEngine;
using System.Collections;
public class bullet: MonoBehaviour {

public RigidBoy rb;
float distance=0.0f;//fasele sefr yani faghat vaghti tir barkhord kard be hadaf

void Start(){
rb.AddRelativeForce(Vector3.forward );//partabe tir be samte jelo
Destroy(gameObject, 3.0f);//hazfe tir pas az 3 sanie
}

void OnGUI(){
myRaycast();
}
void myRaycast(){
RaycastHit hit;
Ray myRay = new Ray(transform.position, Vector3.forward);
if(Physics.Raycast (myRay, out hit, distance)){
if(hit.collider.tag == "enemy"){
Destroy(enemy);
Destroy(this.gameobject);
}//if
}//if
}//myRaycast
}



💛 نکته 💛
تیر و دشمن هر دو پس از برخورد از بین میرن.
تیر در صورت عدم برخورد هم پس از سه ثانیه از بین میره.
شما باید پریفب تیر رو درگ کنید روی متغیر prefBullet.
(برای ساخت پریفب،کافیه یک مدل از تیر رو از داخل hierarchy درگ کنید به کادر project. سپس تیر رو از داخل صحنه حذف کنید)