برخی از متدهای کلاسهای
### Vector2:
1. `Distance(Vector2 a, Vector2 b)`:
- توضیح: این متد فاصلهی اقلیدسی (Euclidean distance) بین دو نقطهی مشخص را محاسبه میکند.
- نمونه کد:
2. `Dot(Vector2 lhs, Vector2 rhs)`:
- توضیح: این متد محصول نقطهای (dot product) دو بردار را محاسبه میکند.
- نمونه کد:
### Vector3:
1. `Angle(Vector3 from, Vector3 to)`:
- توضیح: این متد زاویهی بین دو بردار را با استفاده از محصول نقطهای محاسبه میکند.
- نمونه کد:
2. `Reflect(Vector3 inDirection, Vector3 inNormal)`:
- توضیح: این متد بازتاب بردار وارون شده از یک سطح را محاسبه میکند.
- نمونه کد:
3. `Project(Vector3 vector, Vector3 onNormal)`:
- توضیح: این متد پروژکشن یک بردار بر روی یک بردار دیگر را محاسبه میکند.
- نمونه کد:
4. `Lerp(Vector3 a, Vector3 b, float t)`:
- توضیح: این متد یک بردار در طول یک مسیر خطی بین دو بردار مبدأ و مقصد ایجاد میکند.
- نمونه کد:
5. `Slerp(Vector3 a, Vector3 b, float t
)`:
- توضیح: این متد یک بردار در طول یک مسیر قطبی بین دو بردار مبدأ و مقصد ایجاد میکند.
- نمونه کد:
6. `RotateTowards(Vector3 current, Vector3 target, float maxRadiansDelta, float maxMagnitudeDelta)`:
- توضیح: این متد یک بردار را به سمت یک بردار هدف چرخانده و محدودیتهایی برای حرکت را اعمال میکند.
- نمونه کد:
7. `MoveTowards(Vector3 current, Vector3 target, float maxDistanceDelta)`:
- توضیح: این متد یک بردار را به سمت یک بردار هدف حرکت میدهد با محدودیت فاصله حداکثری.
- نمونه کد:
8. `SmoothDamp(Vector3 current, Vector3 target, ref Vector3 currentVelocity, float smoothTime, float maxSpeed)`:
- توضیح: این متد یک بردار را به سمت یک بردار هدف با استفاده از حرکت انسیابی (Smooth Damping) حرکت میدهد.
- نمونه کد:
#یونیتی #برنامه_نویسی
Vector2 و Vector3 همراه با نمونه کد:### Vector2:
1. `Distance(Vector2 a, Vector2 b)`:
- توضیح: این متد فاصلهی اقلیدسی (Euclidean distance) بین دو نقطهی مشخص را محاسبه میکند.
- نمونه کد:
Vector2 pointA = new Vector2(1.0f, 2.0f);
Vector2 pointB = new Vector2(4.0f, 6.0f);
float distance = Vector2.Distance(pointA, pointB);
2. `Dot(Vector2 lhs, Vector2 rhs)`:
- توضیح: این متد محصول نقطهای (dot product) دو بردار را محاسبه میکند.
- نمونه کد:
Vector2 vectorA = new Vector2(2.0f, 3.0f);
Vector2 vectorB = new Vector2(1.0f, 2.0f);
float dotProduct = Vector2.Dot(vectorA, vectorB);
### Vector3:
1. `Angle(Vector3 from, Vector3 to)`:
- توضیح: این متد زاویهی بین دو بردار را با استفاده از محصول نقطهای محاسبه میکند.
- نمونه کد:
Vector3 fromVector = new Vector3(1.0f, 0.0f, 0.0f);
Vector3 toVector = new Vector3(0.0f, 1.0f, 0.0f);
float angle = Vector3.Angle(fromVector, toVector);
2. `Reflect(Vector3 inDirection, Vector3 inNormal)`:
- توضیح: این متد بازتاب بردار وارون شده از یک سطح را محاسبه میکند.
- نمونه کد:
Vector3 incident = new Vector3(1.0f, -1.0f, 0.0f).normalized;
Vector3 normal = new Vector3(0.0f, 1.0f, 0.0f).normalized;
Vector3 reflected = Vector3.Reflect(incident, normal);
3. `Project(Vector3 vector, Vector3 onNormal)`:
- توضیح: این متد پروژکشن یک بردار بر روی یک بردار دیگر را محاسبه میکند.
- نمونه کد:
Vector3 vectorToProject = new Vector3(3.0f, 4.0f, 5.0f);
Vector3 ontoVector = new Vector3(1.0f, 0.0f, 0.0f);
Vector3 projectedVector = Vector3.Project(vectorToProject, ontoVector);
4. `Lerp(Vector3 a, Vector3 b, float t)`:
- توضیح: این متد یک بردار در طول یک مسیر خطی بین دو بردار مبدأ و مقصد ایجاد میکند.
- نمونه کد:
Vector3 vectorA = new Vector3(1.0f, 2.0f, 3.0f);
Vector3 vectorB = new Vector3(4.0f, 5.0f, 6.0f);
Vector3 lerpedVector = Vector3.Lerp(vectorA, vectorB, 0.5f);
5. `Slerp(Vector3 a, Vector3 b, float t
)`:
- توضیح: این متد یک بردار در طول یک مسیر قطبی بین دو بردار مبدأ و مقصد ایجاد میکند.
- نمونه کد:
Vector3 vectorA = new Vector3(1.0f, 0.0f, 0.0f);
Vector3 vectorB = new Vector3(0.0f, 1.0f, 0.0f);
Vector3 slerpedVector = Vector3.Slerp(vectorA, vectorB, 0.5f);
6. `RotateTowards(Vector3 current, Vector3 target, float maxRadiansDelta, float maxMagnitudeDelta)`:
- توضیح: این متد یک بردار را به سمت یک بردار هدف چرخانده و محدودیتهایی برای حرکت را اعمال میکند.
- نمونه کد:
Vector3 currentVector = new Vector3(1.0f, 0.0f, 0.0f);
Vector3 targetVector = new Vector3(0.0f, 1.0f, 0.0f);
float maxRadiansDelta = 0.1f;
float maxMagnitudeDelta = 0.01f;
Vector3 rotatedVector = Vector3.RotateTowards(currentVector, targetVector, maxRadiansDelta, maxMagnitudeDelta);
7. `MoveTowards(Vector3 current, Vector3 target, float maxDistanceDelta)`:
- توضیح: این متد یک بردار را به سمت یک بردار هدف حرکت میدهد با محدودیت فاصله حداکثری.
- نمونه کد:
Vector3 currentVector = new Vector3(1.0f, 0.0f, 0.0f);
Vector3 targetVector = new Vector3(0.0f, 1.0f, 0.0f);
float maxDistanceDelta = 0.1f;
Vector3 movedVector = Vector3.MoveTowards(currentVector, targetVector, maxDistanceDelta);
8. `SmoothDamp(Vector3 current, Vector3 target, ref Vector3 currentVelocity, float smoothTime, float maxSpeed)`:
- توضیح: این متد یک بردار را به سمت یک بردار هدف با استفاده از حرکت انسیابی (Smooth Damping) حرکت میدهد.
- نمونه کد:
Vector3 currentVector = new Vector3(1.0f, 0.0f, 0.0f);
Vector3 targetVector = new Vector3(0.0f, 1.0f, 0.0f);
Vector3 currentVelocity = Vector3.zero;
float smoothTime = 0.5f;
float maxSpeed = 2.0f;
Vector3 smoothedVector = Vector3.SmoothDamp(currentVector, targetVector, ref currentVelocity, smoothTime, maxSpeed);
#یونیتی #برنامه_نویسی
🔥5
در Unity، کلاس
1. `Abs(float value)`:
- توضیح: بازگرداندن مقدار مطلق یک عدد.
- نمونه کد:
2. `Sin(float f)`, `Cos(float f)`, `Tan(float f)`:
- توضیح: محاسبه سینوس، کسینوس و تانژانت یک زاویه به رادیان.
- نمونه کد:
3. `Sqrt(float f)`:
- توضیح: محاسبه ریشه مربعی یک عدد.
- نمونه کد:
4. `Pow(float f, float p)`:
- توضیح: محاسبه توان یک عدد به توان دیگر.
- نمونه کد:
5. `Round(float f)`:
- توضیح: گرد کردن یک عدد به نزدیکترین عدد صحیح.
- نمونه کد:
6. `Ceil(float f)`, `Floor(float f)`:
- توضیح: گرد کردن به سمت بالا و پایین به نزدیکترین عدد صحیح.
- نمونه کد:
7. `Min(float a, float b)`, `Max(float a, float b)`:
- توضیح: بازگرداندن کمترین یا بزرگترین عدد از دو عدد داده شده.
- نمونه کد:
8. `Clamp(float value, float min, float max)`:
- توضیح: محدود کردن یک عدد بین یک حداقل و حداکثر مشخص.
- نمونه کد:
9. `Lerp(float a, float b, float t)`:
- توضیح: ایجاد یک عدد در طول یک مسیر خطی بین دو عدد مبدأ و مقصد.
- نمونه کد:
10. `InverseLerp(float a, float b, float value)`:
- توضیح: محاسبه مقدار پارامتر t که عدد value بین a و b قرار دارد.
- نمونه کد:
11. `MoveTowards(float current, float target, float maxDelta)`:
- توضیح: حرکت یک عدد به سمت یک عدد هدف با محدودیت فاصله حداکثری.
- نمونه کد:
12. `SmoothDamp(float current, float target, ref float currentVelocity, float smoothTime, float maxSpeed)`:
- توضیح: انجام حرکت انسیابی (Smooth Damping) عدد به سمت یک عدد هدف.
- نمونه کد:
#یونیتی #برنامه_نویسی
Mathf حاوی متدها و توابع ریاضی مختلفی است که برای انجام عملیات ریاضی مورد نیاز در بازیها و شبیهسازیهای سهبعدی استفاده میشوند. در زیر توضیحات برخی از متدهای این کلاس به همراه نمونه کد آمده است:1. `Abs(float value)`:
- توضیح: بازگرداندن مقدار مطلق یک عدد.
- نمونه کد:
float absoluteValue = Mathf.Abs(-5.0f);
2. `Sin(float f)`, `Cos(float f)`, `Tan(float f)`:
- توضیح: محاسبه سینوس، کسینوس و تانژانت یک زاویه به رادیان.
- نمونه کد:
float angleInRadians = Mathf.PI / 4.0f; // 45 degrees in radians
float sineValue = Mathf.Sin(angleInRadians);
float cosineValue = Mathf.Cos(angleInRadians);
float tangentValue = Mathf.Tan(angleInRadians);
3. `Sqrt(float f)`:
- توضیح: محاسبه ریشه مربعی یک عدد.
- نمونه کد:
float squareRootValue = Mathf.Sqrt(25.0f); // 5.0
4. `Pow(float f, float p)`:
- توضیح: محاسبه توان یک عدد به توان دیگر.
- نمونه کد:
float result = Mathf.Pow(2.0f, 3.0f); // 8.0
5. `Round(float f)`:
- توضیح: گرد کردن یک عدد به نزدیکترین عدد صحیح.
- نمونه کد:
float roundedValue = Mathf.Round(3.7f); // 4.0
6. `Ceil(float f)`, `Floor(float f)`:
- توضیح: گرد کردن به سمت بالا و پایین به نزدیکترین عدد صحیح.
- نمونه کد:
float ceilValue = Mathf.Ceil(3.2f); // 4.0
float floorValue = Mathf.Floor(3.8f); // 3.0
7. `Min(float a, float b)`, `Max(float a, float b)`:
- توضیح: بازگرداندن کمترین یا بزرگترین عدد از دو عدد داده شده.
- نمونه کد:
float minValue = Mathf.Min(5.0f, 7.0f); // 5.0
float maxValue = Mathf.Max(3.0f, 9.0f); // 9.0
8. `Clamp(float value, float min, float max)`:
- توضیح: محدود کردن یک عدد بین یک حداقل و حداکثر مشخص.
- نمونه کد:
float clampedValue = Mathf.Clamp(3.0f, 1.0f, 5.0f); // 3.0
9. `Lerp(float a, float b, float t)`:
- توضیح: ایجاد یک عدد در طول یک مسیر خطی بین دو عدد مبدأ و مقصد.
- نمونه کد:
float lerpedValue = Mathf.Lerp(1.0f, 3.0f, 0.5f); // 2.0
10. `InverseLerp(float a, float b, float value)`:
- توضیح: محاسبه مقدار پارامتر t که عدد value بین a و b قرار دارد.
- نمونه کد:
float inverseLerpValue = Mathf.InverseLerp(1.0f, 5.0f, 3.0f); // 0.5
11. `MoveTowards(float current, float target, float maxDelta)`:
- توضیح: حرکت یک عدد به سمت یک عدد هدف با محدودیت فاصله حداکثری.
- نمونه کد:
float current = 2.0f;
float target = 5.0f;
float maxDelta = 1.0f;
float movedValue = Mathf.MoveTowards(current, target, maxDelta); // 3.0
12. `SmoothDamp(float current, float target, ref float currentVelocity, float smoothTime, float maxSpeed)`:
- توضیح: انجام حرکت انسیابی (Smooth Damping) عدد به سمت یک عدد هدف.
- نمونه کد:
float current = 2.0f;
float target = 5.0f;
float currentVelocity = 0.0f;
float smoothTime = 0.5f;
float maxSpeed = 2.0f;
float smoothedValue = Mathf.SmoothDamp(current, target, ref currentVelocity, smoothTime, max
Speed);
#یونیتی #برنامه_نویسی
🔥5👍2
در Unity، کلاس
1. `Quaternion.Euler(float x, float y, float z)`:
- توضیح: ایجاد یک Quaternion بر اساس زوایای Euler (Pitch، Yaw، Roll).
- نمونه کد:
2. `Quaternion.AngleAxis(float angle, Vector3 axis)`:
- توضیح: ایجاد یک Quaternion بر اساس یک زاویه و محور چرخش.
- نمونه کد:
3. `Quaternion.identity`:
- توضیح: Quaternion هویت (بدون چرخش یا جهت).
- نمونه کد:
4. `Quaternion.LookRotation(Vector3 forward, Vector3 upwards)`:
- توضیح: ایجاد یک Quaternion که به سمت یک جهت مشخص نگاه میکند.
- نمونه کد:
5. `Quaternion.Slerp(Quaternion a, Quaternion b, float t)`:
- توضیح: ایجاد یک Quaternion در طول یک مسیر قطبی بین دو Quaternion مبدأ و مقصد.
- نمونه کد:
6. `Quaternion.Lerp(Quaternion a, Quaternion b, float t)`:
- توضیح: ایجاد یک Quaternion در طول یک مسیر خطی بین دو Quaternion مبدأ و مقصد.
- نمونه کد:
7. `Quaternion.identity`:
- توضیح: Quaternion هویت (بدون چرخش یا جهت).
- نمونه کد:
8. `Quaternion.Inverse(Quaternion rotation)`:
- توضیح: معکوس یک Quaternion.
- نمونه کد:
9. `Quaternion.Euler(float x, float y, float z)`:
- توضیح: ایجاد یک Quaternion بر اساس زوایای Euler (Pitch، Yaw، Roll).
- نمونه کد:
10. `Quaternion.RotateTowards(Quaternion from, Quaternion to, float maxDegreesDelta)`:
- توضیح: چرخش یک Quaternion به سمت یک Quaternion هدف با محدودیت زاویه.
- نمونه کد:
11. `Quaternion.Euler(Vector3 euler)`:
- توضیح: ایجاد یک Quaternion بر اساس زوایای Euler (Pitch، Yaw، Roll) در یک Vector3.
- نمونه کد:
این متدها تنها یک بخش کوچک از توابع
#یونیتی #برنامه_نویسی
Quaternion برای نمایش و عملیات مربوط به چرخشها و جهتها در سه بعد استفاده میشود. در زیر توضیحات برخی از متدهای این کلاس به همراه نمونه کد آمده است:1. `Quaternion.Euler(float x, float y, float z)`:
- توضیح: ایجاد یک Quaternion بر اساس زوایای Euler (Pitch، Yaw، Roll).
- نمونه کد:
Quaternion rotation = Quaternion.Euler(45.0f, 90.0f, 0.0f);
2. `Quaternion.AngleAxis(float angle, Vector3 axis)`:
- توضیح: ایجاد یک Quaternion بر اساس یک زاویه و محور چرخش.
- نمونه کد:
float angle = 30.0f;
Vector3 axis = new Vector3(0.0f, 1.0f, 0.0f);
Quaternion rotation = Quaternion.AngleAxis(angle, axis);
3. `Quaternion.identity`:
- توضیح: Quaternion هویت (بدون چرخش یا جهت).
- نمونه کد:
Quaternion identityQuaternion = Quaternion.identity;
4. `Quaternion.LookRotation(Vector3 forward, Vector3 upwards)`:
- توضیح: ایجاد یک Quaternion که به سمت یک جهت مشخص نگاه میکند.
- نمونه کد:
Vector3 forwardDirection = new Vector3(0.0f, 0.0f, 1.0f);
Vector3 upDirection = Vector3.up;
Quaternion rotation = Quaternion.LookRotation(forwardDirection, upDirection);
5. `Quaternion.Slerp(Quaternion a, Quaternion b, float t)`:
- توضیح: ایجاد یک Quaternion در طول یک مسیر قطبی بین دو Quaternion مبدأ و مقصد.
- نمونه کد:
Quaternion quaternionA = Quaternion.Euler(0.0f, 90.0f, 0.0f);
Quaternion quaternionB = Quaternion.Euler(0.0f, 180.0f, 0.0f);
float t = 0.5f;
Quaternion slerpedQuaternion = Quaternion.Slerp(quaternionA, quaternionB, t);
6. `Quaternion.Lerp(Quaternion a, Quaternion b, float t)`:
- توضیح: ایجاد یک Quaternion در طول یک مسیر خطی بین دو Quaternion مبدأ و مقصد.
- نمونه کد:
Quaternion quaternionA = Quaternion.Euler(0.0f, 90.0f, 0.0f);
Quaternion quaternionB = Quaternion.Euler(0.0f, 180.0f, 0.0f);
float t = 0.5f;
Quaternion lerpedQuaternion = Quaternion.Lerp(quaternionA, quaternionB, t);
7. `Quaternion.identity`:
- توضیح: Quaternion هویت (بدون چرخش یا جهت).
- نمونه کد:
Quaternion identityQuaternion = Quaternion.identity;
8. `Quaternion.Inverse(Quaternion rotation)`:
- توضیح: معکوس یک Quaternion.
- نمونه کد:
Quaternion originalRotation = Quaternion.Euler(30.0f, 45.0f, 60.0f);
Quaternion inverseRotation = Quaternion.Inverse(originalRotation);
9. `Quaternion.Euler(float x, float y, float z)`:
- توضیح: ایجاد یک Quaternion بر اساس زوایای Euler (Pitch، Yaw، Roll).
- نمونه کد:
Quaternion rotation = Quaternion.Euler(45.0f, 90.0f, 0.0f);
10. `Quaternion.RotateTowards(Quaternion from, Quaternion to, float maxDegreesDelta)`:
- توضیح: چرخش یک Quaternion به سمت یک Quaternion هدف با محدودیت زاویه.
- نمونه کد:
Quaternion fromRotation = Quaternion.Euler(0.0f, 90.0f, 0.0f);
Quaternion toRotation = Quaternion.Euler(0.0f, 180.0f
, 0.0f);
float maxDegreesDelta = 30.0f;
Quaternion rotatedQuaternion = Quaternion.RotateTowards(fromRotation, toRotation, maxDegreesDelta);
11. `Quaternion.Euler(Vector3 euler)`:
- توضیح: ایجاد یک Quaternion بر اساس زوایای Euler (Pitch، Yaw، Roll) در یک Vector3.
- نمونه کد:
Vector3 eulerAngles = new Vector3(45.0f, 90.0f, 0.0f);
Quaternion rotation = Quaternion.Euler(eulerAngles);
این متدها تنها یک بخش کوچک از توابع
Quaternion در Unity هستند و برای کاربردهای مختلف میتوانید به مستندات Unity مراجعه کنید.#یونیتی #برنامه_نویسی
🔥3⚡1👍1
در Unity، اتربیوتها (Attributes) ابزارهایی هستند که به توسعهدهندگان این امکان را میدهند تا رفتار و نمایش خصوصیات مختلفی را برای کلاسها و متدها در ادیتور Unity تعیین کنند. در زیر چند اتربیوت اصلی با توضیحات آمدهاند:
1. `[SerializeField]`:
- توضیح: این اتربیوت به Unity میگوید که یک متغیر خصوصی در کلاس را در ادیتور نمایش دهد و به طور مستقیم با پنل اینسپکتور ارتباط دارد. این کار به توسعهدهندگان این امکان را میدهد که به متغیرهای خصوصی دسترسی داشته باشند و در عین حال، آنها را در ادیتور تغییر دهند.
- نمونه کد:
2. `[Header("My Section")]`:
- توضیح: این اتربیوت به توسعهدهندگان اجازه میدهد تا یک بخش جدید در پنل اینسپکتور برای گروهبندی و سازماندهی متغیرها و فیلدهای این کلاس ایجاد کنند.
- نمونه کد:
3. `[Range(min, max)]`:
- توضیح: این اتربیوت به توسعهدهندگان این امکان را میدهد تا یک محدوده برای یک عدد اعشاری یا صحیح تعیین کنند و یک اسلایدر در پنل اینسپکتور برای تنظیم آن فراهم شود.
- نمونه کد:
4. `[Tooltip("This is a tooltip.")]`:
- توضیح: این اتربیوت به توسعهدهندگان این امکان را میدهد تا یک توضیح کوتاه برای یک فیلد یا متغیر در پنل اینسپکتور ایجاد کنند. وقتی ماوس را بر روی فیلد میبرند، توضیح ظاهر میشود.
- نمونه کد:
5. `[HideInInspector]`:
- توضیح: این اتربیوت به Unity میگوید که یک متغیر خصوصی را در پنل اینسپکتور نمایش ندهد. معمولاً برای مخفی کردن متغیرهایی که برنامه نیازی به تنظیم آن در ادیتور ندارد، استفاده میشود.
- نمونه کد:
6. `[ExecuteInEditMode]`:
- توضیح: این اتربیوت به توسعهدهندگان اجازه میدهد که اسکریپت را در حالت ویرایش اجرا کنند و تغییرات را در صفحهی اصلی Unity نیز مشاهده کنند.
- نمونه کد:
اینها تنها چند نمونه از
اتربیوتهایی هستند که میتوانید در Unity استفاده کنید. هر اتربیوت ویژگیهای خاص خود را دارد و به توسعهدهندگان کمک میکند تا تعامل با پنل اینسپکتور را بهبود بخشند و اطلاعات بیشتری از وضعیت اجزای مختلف بازی در اختیار داشته باشند.
#یونیتی #برنامه_نویسی
1. `[SerializeField]`:
- توضیح: این اتربیوت به Unity میگوید که یک متغیر خصوصی در کلاس را در ادیتور نمایش دهد و به طور مستقیم با پنل اینسپکتور ارتباط دارد. این کار به توسعهدهندگان این امکان را میدهد که به متغیرهای خصوصی دسترسی داشته باشند و در عین حال، آنها را در ادیتور تغییر دهند.
- نمونه کد:
public class Example : MonoBehaviour
{
[SerializeField]
private int myInt = 42;
}
2. `[Header("My Section")]`:
- توضیح: این اتربیوت به توسعهدهندگان اجازه میدهد تا یک بخش جدید در پنل اینسپکتور برای گروهبندی و سازماندهی متغیرها و فیلدهای این کلاس ایجاد کنند.
- نمونه کد:
public class Example : MonoBehaviour
{
[Header("My Settings")]
public int myInt = 42;
public float myFloat = 3.14f;
}
3. `[Range(min, max)]`:
- توضیح: این اتربیوت به توسعهدهندگان این امکان را میدهد تا یک محدوده برای یک عدد اعشاری یا صحیح تعیین کنند و یک اسلایدر در پنل اینسپکتور برای تنظیم آن فراهم شود.
- نمونه کد:
public class Example : MonoBehaviour
{
[Range(0, 100)]
public int myIntInRange = 42;
}
4. `[Tooltip("This is a tooltip.")]`:
- توضیح: این اتربیوت به توسعهدهندگان این امکان را میدهد تا یک توضیح کوتاه برای یک فیلد یا متغیر در پنل اینسپکتور ایجاد کنند. وقتی ماوس را بر روی فیلد میبرند، توضیح ظاهر میشود.
- نمونه کد:
public class Example : MonoBehaviour
{
[Tooltip("This is the tooltip for myInt.")]
public int myInt = 42;
}
5. `[HideInInspector]`:
- توضیح: این اتربیوت به Unity میگوید که یک متغیر خصوصی را در پنل اینسپکتور نمایش ندهد. معمولاً برای مخفی کردن متغیرهایی که برنامه نیازی به تنظیم آن در ادیتور ندارد، استفاده میشود.
- نمونه کد:
public class Example : MonoBehaviour
{
[HideInInspector]
public int myHiddenInt = 42;
}
6. `[ExecuteInEditMode]`:
- توضیح: این اتربیوت به توسعهدهندگان اجازه میدهد که اسکریپت را در حالت ویرایش اجرا کنند و تغییرات را در صفحهی اصلی Unity نیز مشاهده کنند.
- نمونه کد:
[ExecuteInEditMode]
public class Example : MonoBehaviour
{
// کد اینجا قرار میگیرد
}
اینها تنها چند نمونه از
اتربیوتهایی هستند که میتوانید در Unity استفاده کنید. هر اتربیوت ویژگیهای خاص خود را دارد و به توسعهدهندگان کمک میکند تا تعامل با پنل اینسپکتور را بهبود بخشند و اطلاعات بیشتری از وضعیت اجزای مختلف بازی در اختیار داشته باشند.
#یونیتی #برنامه_نویسی
👍4🔥4⚡2
ترنسفرم یک مفهوم کلیدی در Unity است که موقعیت، چرخش و مقیاس یک شیء در فضای سه بعدی را تعیین میکند. در Unity، کلاس
1. `Translate(Vector3 translation)`:
- توضیح: افزودن یک ترجمه (تغییر موقعیت) به ترنسفرم.
- نمونه کد:
2. `Rotate(Vector3 eulerAngles)`:
- توضیح: افزودن یک چرخش به ترنسفرم با زوایا Euler به واحدهای درجه.
- نمونه کد:
3. `Scale(Vector3 scale)`:
- توضیح: افزودن یک مقیاس به ترنسفرم.
- نمونه کد:
4. `LookAt(Transform target, Vector3 upDirection)`:
- توضیح: چرخش به سمت یک نقطه خاص.
- نمونه کد:
5. `TransformPoint(Vector3 position)`:
- توضیح: تبدیل یک نقطه از فضای محلی به فضای جهانی ترنسفرم.
- نمونه کد:
6. `InverseTransformPoint(Vector3 position)`:
- توضیح: تبدیل یک نقطه از فضای جهانی به فضای محلی ترنسفرم.
- نمونه کد:
7. `TransformDirection(Vector3 direction)`:
- توضیح: تبدیل یک جهت از فضای محلی به فضای جهانی ترنسفرم.
- نمونه کد:
8. `InverseTransformDirection(Vector3 direction)`:
- توضیح: تبدیل یک جهت از فضای جهانی به فضای محلی ترنسفرم.
- نمونه کد:
9. `SetPositionAndRotation(Vector3 position, Quaternion rotation)`:
- توضیح: تنظیم همزمان موقعیت و چرخش ترنسفرم.
- نمونه کد:
10. `RotateAround(Vector3 point, Vector3 axis, float angle)`:
- توضیح: چرخش اطراف یک نقطه خاص.
- نمونه کد:
این متدها تنها یک بخش از عملکردهای
#یونیتی #برنامه_نویسی
Transform این ترنسفرم را به عنوان یک کامپوننت در اختیار شیءها قرار میدهد. در زیر، متدهای مهم کلاس Transform توضیح داده شدهاند:1. `Translate(Vector3 translation)`:
- توضیح: افزودن یک ترجمه (تغییر موقعیت) به ترنسفرم.
- نمونه کد:
// تغییر موقعیت به سمت راست 2 واحد
transform.Translate(Vector3.right * 2.0f);
2. `Rotate(Vector3 eulerAngles)`:
- توضیح: افزودن یک چرخش به ترنسفرم با زوایا Euler به واحدهای درجه.
- نمونه کد:
// چرخش به اندازه 45 درجه در اطراف محور Y
transform.Rotate(new Vector3(0.0f, 45.0f, 0.0f));
3. `Scale(Vector3 scale)`:
- توضیح: افزودن یک مقیاس به ترنسفرم.
- نمونه کد:
// تغییر اندازه به 2 برابر در سه محور
transform.Scale(new Vector3(2.0f, 2.0f, 2.0f));
4. `LookAt(Transform target, Vector3 upDirection)`:
- توضیح: چرخش به سمت یک نقطه خاص.
- نمونه کد:
// چرخش به سمت یک شیء خاص
transform.LookAt(targetTransform);
5. `TransformPoint(Vector3 position)`:
- توضیح: تبدیل یک نقطه از فضای محلی به فضای جهانی ترنسفرم.
- نمونه کد:
// تبدیل نقطه از فضای محلی به فضای جهانی
Vector3 localPoint = new Vector3(1.0f, 0.0f, 0.0f);
Vector3 globalPoint = transform.TransformPoint(localPoint);
6. `InverseTransformPoint(Vector3 position)`:
- توضیح: تبدیل یک نقطه از فضای جهانی به فضای محلی ترنسفرم.
- نمونه کد:
// تبدیل نقطه از فضای جهانی به فضای محلی
Vector3 globalPoint = new Vector3(1.0f, 0.0f, 0.0f);
Vector3 localPoint = transform.InverseTransformPoint(globalPoint);
7. `TransformDirection(Vector3 direction)`:
- توضیح: تبدیل یک جهت از فضای محلی به فضای جهانی ترنسفرم.
- نمونه کد:
// تبدیل جهت از فضای محلی به فضای جهانی
Vector3 localDirection = new Vector3(1.0f, 0.0f, 0.0f);
Vector3 globalDirection = transform.TransformDirection(localDirection);
8. `InverseTransformDirection(Vector3 direction)`:
- توضیح: تبدیل یک جهت از فضای جهانی به فضای محلی ترنسفرم.
- نمونه کد:
// تبدیل جهت ا
ز فضای جهانی به فضای محلی
Vector3 globalDirection = new Vector3(1.0f, 0.0f, 0.0f);
Vector3 localDirection = transform.InverseTransformDirection(globalDirection);
9. `SetPositionAndRotation(Vector3 position, Quaternion rotation)`:
- توضیح: تنظیم همزمان موقعیت و چرخش ترنسفرم.
- نمونه کد:
// تنظیم همزمان موقعیت و چرخش
Vector3 newPosition = new Vector3(1.0f, 0.0f, 0.0f);
Quaternion newRotation = Quaternion.Euler(0.0f, 90.0f, 0.0f);
transform.SetPositionAndRotation(newPosition, newRotation);
10. `RotateAround(Vector3 point, Vector3 axis, float angle)`:
- توضیح: چرخش اطراف یک نقطه خاص.
- نمونه کد:
// چرخش اطراف یک نقطه در اطراف محور Y با زاویه 45 درجه
Vector3 rotationPoint = new Vector3(0.0f, 0.0f, 1.0f);
Vector3 rotationAxis = Vector3.up;
float rotationAngle = 45.0f;
transform.RotateAround(rotationPoint, rotationAxis, rotationAngle);
این متدها تنها یک بخش از عملکردهای
Transform در Unity هستند. برای اطلاعات بیشتر، به مستندات Unity مراجعه کنید.#یونیتی #برنامه_نویسی
🔥4👍3
