UnityChan(Channel)
403 subscribers
1.79K photos
62 videos
13 files
41 links
کانال آموزش و نکات UnityChan

گروه یونیتی https://t.me/UnityChan
Download Telegram
زمانی که بخواهیم یک ابجکت وقتی از ابجکت هدف چرخشی انجام میدهد بر اساس آن هدف چرخش انجام بدهد یعنی مقادیر چرخش هاش را کپی کند از Rotation Constraint استقاده میکنیم همانند قبلی به ابجکت مکعب خودمان اضافه میکنیم و در قسمت Sources با زدن + شکل هدف که کره هست را اضافه میکنیم
👍1
همان طور که مشاهده میکنید من کامپوننت را اضافه کردم و تیک Lock زدم تا قفل بشه
اگر من ابجکت هدف (کروی) را بچرخونم معکب ما هم خواهد چرخید
اول از همه به محور ها در یونیتی و بلندر توجه کنید که جای z و y در این دو نرم افزار فرق دارند و قاطی نکنید
UnityChan(Channel)
اگر من ابجکت هدف (کروی) را بچرخونم معکب ما هم خواهد چرخید
بر اساس محور ها در یونیتی اگر بخواهیم فقط محور x را تلقید کند باید در کامپوننت فقط محور x را قفل کنید
معادل این محدودیت در بلندر copy rotation هست که چرخش دیگر استخوان را کپی میکند
یک ایده جالب و خاص : شما میتوانید همانند بلندر در یونیتی محدودیتی بسازید که انگشتان کاراکتر با کپی کردن چرخش های دیگر استخوان خم بشوند
😍1
Parent Constraint

یک محدودیت والد یک GameObject را حرکت می دهد و می چرخاند انگار فرزند GameObject دیگری در پنجره Hierarchy است. با این حال، مزایای خاصی را ارائه می دهد که زمانی که یک GameObject را والد دیگری می کنید امکان پذیر نیست:

یک محدودیت والد بر مقیاس تأثیر نمی گذارد.

یک محدودیت والد می تواند به چندین GameObject پیوند دهد.

یک GameObject لازم نیست فرزند GameObject هایی باشد که محدودیت والد به آنها پیوند می دهد.

شما می توانید اثر محدودیت را با تعیین وزن و همچنین وزن برای هر یک از GameObject های منبع آن تغییر دهید.

به عنوان مثال، برای قرار دادن یک شمشیر در دست یک کاراکتر، یک مولفه Parent Constraint را به GameObject شمشیر اضافه کنید. در فهرست منابع محدودیت والدین، به دست شخصیت پیوند دهید. بدین ترتیب حرکت شمشیر به موقعیت و چرخش دست محدود می شود.
دوستان همان طور که میدانیم میتوانیم با استفاده از کد نویسی c# یک ابجکت را به ابجکت دیگر parent یا والد کنیم :
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour
{
public GameObject player;

public void SetParent(GameObject newParent)
{

player.transform.parent = newParent.transform;


Debug.Log("Player's Parent: " + player.transform.parent.name);


if (newParent.transform.parent != null)
{

Debug.Log("Player's Grand parent: " + player.transform.parent.parent.name);
}
}

public void DetachFromParent()
{

transform.parent = null;
}
}
UnityChan(Channel)
دوستان همان طور که میدانیم میتوانیم با استفاده از کد نویسی c# یک ابجکت را به ابجکت دیگر parent یا والد کنیم : using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public GameObject player; public void SetParent(GameObject…
ولی اگر بخواهیم بدون نیاز به کد نویسی اینکار انجام بدیم با استفاده Parent Constraint ممکن هست حالا چه کاربردی دارد ؟ کاربردش این هست که مثلا شما میخواهید با استفاده از بازیکن شمشیر یا اسلحه یا هر چی بردارید باید والد دست کاراکتر انجام بدید که با transform دست هماهنگ باشد
UnityChan(Channel)
Parent Constraint یک محدودیت والد یک GameObject را حرکت می دهد و می چرخاند انگار فرزند GameObject دیگری در پنجره Hierarchy است. با این حال، مزایای خاصی را ارائه می دهد که زمانی که یک GameObject را والد دیگری می کنید امکان پذیر نیست: یک محدودیت والد بر مقیاس…
خواص :

Activate : بعد از اینکه GameObject محدود شده و GameObjects منبع آن را چرخانید، روی Activate کلیک کنید تا این اطلاعات ذخیره شود. Activate offset فعلی را از مبدأ GameObjects در Rotation At Rest و Rotation Offset ذخیره می‌کند، سپس گزینه Is Active و Lock را بررسی می‌کند.

Zero : چرخش GameObject محدود شده را به GameObjects مبدا تنظیم می کند. Zero فیلدهای Rotation At Rest و Rotation Offset را بازنشانی می کند، سپس گزینه Is Active و Lock را بررسی می کند.

Is Active : ارزیابی یا عدم ارزیابی محدودیت را تغییر می دهد. برای اعمال محدودیت، مطمئن شوید که Lock علامت زده شده است.

Weight : قدرت محدودیت. وزن 1 باعث می شود که Constraint این GameObject را با همان سرعت GameObjects منبع آن بچرخاند. وزن 0 اثر محدودیت را به طور کامل حذف می کند. این وزن روی همه GameObject های منبع تاثیر می گذارد. هر GameObject در لیست Sources یک وزن نیز دارد.

Rotation At Rest : مقادیر X، Y و Z برای استفاده زمانی که Weight 0 است یا زمانی که محورهای چرخش انجماد مربوطه علامت نخورده است. برای ویرایش این فیلدها، علامت Lock را بردارید.

Position At Rest : مقادیر X، Y و Z برای استفاده در زمانی که Weight 0 است یا زمانی که محورهای موقعیت انجماد مربوطه علامت نخورده اند. برای ویرایش این فیلدها، علامت Lock را بردارید.

Position Offset : موقعیت X، Y و Z از تبدیلی که محدودیت تحمیل می‌کند جبران می‌شود. برای ویرایش این فیلدها، علامت Lock را بردارید.

Rotation Offset : X، Y و Z از تبدیلی که توسط محدودیت تحمیل می شود، جبران می شود. برای ویرایش این فیلدها، علامت Lock را بردارید.

Freeze Rotation Axes : X، Y یا Z را علامت بزنید تا به Constraint اجازه دهید محورهای مربوطه را کنترل کند. علامت یک محور را بردارید تا محدودیت کنترل آن را متوقف کند. این به شما امکان می دهد محور unfrozen را ویرایش، متحرک یا اسکریپت کنید.

Freeze Position Axes: X، Y یا Z را علامت بزنید تا به Constraint اجازه دهید محورهای موقعیت مربوطه را کنترل کند. علامت یک محور را بردارید تا محدودیت کنترل آن را متوقف کند، که به شما امکان می دهد آن را ویرایش، متحرک یا اسکریپت کنید.

Sources : لیست GameObject هایی که این GameObject را محدود می کنند. یونیتی GameObject های منبع را به ترتیبی که در این لیست ظاهر می شوند ارزیابی می کند. این ترتیب بر نحوه چرخش این محدودیت GameObject محدود تأثیر می گذارد. برای به دست آوردن نتیجه دلخواه، موارد را در این لیست بکشید و رها کنید. هر منبع دارای وزنی از 0 تا 1 است.
اگر من ابجکت هدف را حرکت بدم مکعب ما هم حرکت خواهد کرد - حتا اگر چرخش هم بدم همانطور ولی اگر تغییر مقیاس بدم خیر
snap_childof2.gif
11.2 MB
یک مثال از کاربرد parent کردن
معادل این محدودیت در بلندر child of هست همان طور که در این مثال میبنید شمشیر با استفاده از این محدودیت به ریگ دست کاراکتر وصل شده و اگر دست کاراکتر حرکت کند شمشیر هم حرکت خواهد کرد
Scale Constraints

یک جزء Scale Constraint اندازه یک GameObject را تغییر می دهد برای مطابقت با مقیاس GameObjects منبع آن.

خواص :
UnityChan(Channel)
Scale Constraints یک جزء Scale Constraint اندازه یک GameObject را تغییر می دهد برای مطابقت با مقیاس GameObjects منبع آن. خواص :
Activate : پس از تغییر اندازه GameObject محدود شده و GameObjects منبع آن، روی Activate کلیک کنید تا این اطلاعات ذخیره شود. Activate offset فعلی را از مبدأ GameObjects در Scale At Rest و Scale Offset ذخیره می‌کند، سپس گزینه Is Active و Lock را بررسی می‌کند.

Zero : چرخش GameObject محدود شده را به GameObjects مبدا تنظیم می کند. Zero فیلدهای Scale At Rest و Scale Offset را بازنشانی می کند و سپس گزینه Is Active و Lock را بررسی می کند.

Is Active : ارزیابی یا عدم ارزیابی محدودیت را تغییر می دهد. برای اعمال محدودیت، مطمئن شوید که Lock علامت زده شده است.

Weight : قدرت محدودیت. وزن 1 باعث می شود که Constraint اندازه این GameObject را با همان سرعت GameObjects منبع آن تغییر دهد. وزن 0 اثر محدودیت را به طور کامل حذف می کند. این وزن روی همه GameObject های منبع تاثیر می گذارد. هر GameObject در لیست Sources یک وزن نیز دارد

Constraint Settings:

Lock: غییر اندازه دهید تا Constraint اندازه GameObject را تغییر دهد. برای ویرایش مقیاس این GameObject، علامت این ویژگی را بردارید. همچنین می توانید ویژگی های Scale At Rest و Scale Offset را ویرایش کنید. اگر فعال است علامت زده شود، وقتی اندازه GameObject یا GameObjects منبع آن را تغییر می‌دهید، Constraint ویژگی‌های Scale At Rest یا Scale Offset را برای شما به‌روزرسانی می‌کند. وقتی از تغییرات خود راضی بودید، Lock را علامت بزنید تا به Constraint اجازه دهید این GameObject را کنترل کند. این ویژگی در حالت پخش تاثیری ندارد.

Scale At Rest : مقادیر X، Y و Z برای استفاده زمانی که وزن 0 است یا زمانی که محورهای مقیاس انجماد مربوطه علامت نخورده است. برای ویرایش این فیلدها، علامت Lock را بردارید.

Scale Offset : X، Y و Z از تبدیلی که توسط محدودیت تحمیل می شود، جبران می شود. برای ویرایش این فیلدها، علامت Lock را بردارید.

Freeze Scale Axes : X، Y یا Z را علامت بزنید تا به Constraint اجازه دهید محورهای مربوطه را کنترل کند. علامت یک محور را بردارید تا محدودیت کنترل آن را متوقف کند. این به شما امکان می دهد محور unfrozen را ویرایش، متحرک یا اسکریپت کنید.

Sources : لیست GameObject هایی که این GameObject را محدود می کنند. هر منبع دارای وزنی از 0 تا 1 است.
و باز هم مثل قبل کامپوننت را اضافه و تنظیم و در نهایت lock میکنیم
اگر شما ابجکت هدف را تغییر مقیاس بدهید مشاهده خواهید کرد ابجکت مکعب هم بزرگ خواهد شد
Position Constraint

یک جزء محدودیت موقعیت یک GameObject را حرکت می دهد تا GameObjects منبع خود را دنبال کند.

خواص :
Activate : پس از اینکه GameObject محدود شده و GameObjects منبع آن را قرار دادید، روی Activate کلیک کنید تا این اطلاعات ذخیره شود. Activate offset فعلی را از GameObjects منبع در Position At Rest و Position Offset ذخیره می کند، سپس گزینه Is Active و Lock را بررسی می کند.

Zero : موقعیت GameObject محدود شده را به GameObjects مبدا تنظیم می کند. Zero فیلدهای Position At Rest و Position Offset را بازنشانی می کند، سپس گزینه Is Active و Lock را بررسی می کند.

Is Active : ارزیابی یا عدم ارزیابی محدودیت را تغییر می دهد. برای اعمال محدودیت، مطمئن شوید که Lock علامت زده شده است.

Weight : قدرت محدودیت. وزن 1 باعث می شود که Constraint این GameObject را با همان سرعت GameObjects منبع آن حرکت دهد. وزن 0 اثر محدودیت را به طور کامل حذف می کند. این وزن روی همه GameObject های منبع تاثیر می گذارد. هر GameObject در لیست Sources یک وزن نیز دارد

Constraint Settings:

Lock : تغییر حالت دهید تا Constraint GameObject را جابجا کند. تیک این ویژگی را برای ویرایش موقعیت این GameObject بردارید. همچنین می توانید ویژگی های Position At Rest و Position Offset را ویرایش کنید. اگر گزینه Is Active باشد، وقتی GameObject یا GameObjects منبع آن را جابه‌جا می‌کنید، Constraint ویژگی‌های At Rest یا Offset را برای شما به‌روزرسانی می‌کند. وقتی از تغییرات خود راضی بودید، Lock را علامت بزنید تا به Constraint اجازه دهید این GameObject را کنترل کند. این ویژگی در حالت پخش تاثیری ندارد.

Position At Rest : مقادیر X، Y و Z برای استفاده زمانی که وزن 0 است یا زمانی که محورهای موقعیت انجماد مربوطه علامت نخورده است. برای ویرایش این فیلدها، علامت Lock را بردارید.

Position Offset : X، Y و Z از تبدیلی که توسط محدودیت تحمیل شده است، جبران می شود. برای ویرایش این فیلدها، علامت Lock را بردارید.

Freeze Position Axes : X، Y یا Z را علامت بزنید تا به Constraint اجازه دهید محورهای مربوطه را کنترل کند. علامت یک محور را بردارید تا محدودیت کنترل آن را متوقف کند. این به شما امکان می دهد محور unfrozen را ویرایش، متحرک یا اسکریپت کنید.

Sources : لیست GameObject هایی که این GameObject را محدود می کنند. هر منبع دارای وزنی از 0 تا 1 است.
بعد از تنظیم کامپوننت اگر ابجکن هدف را جابه جایی کنید مقدار جابه جایی آن در مکعب کپی میشود
🤔1