ユニティのヒント

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/wangjiangrong/article/details/97016565

コピーペーストの1.Component

インスペクターウィンドウコンポーネント、貼り付け部品の値、新規として貼り付けコンポーネントの下にコピーすることと等価です

#if UNITY_EDITOR

//首先复制需要复制的组件
UnityEditorInternal.ComponentUtility.CopyComponent(needCopyComponent);

//粘贴组件的值到另一个组件上
UnityEditorInternal.ComponentUtility.PasteComponentValues(newComponent);

//为GameObject添加复制的组件
UnityEditorInternal.ComponentUtility.PasteComponentAsNew(gameObject);

#endif

 

2.コンポーネントの削除

//Running模式下
Destroy(component);

//Editor模式下
DestroyImmediate(component);

 

3.Editor下のUpdateメソッドまたはOnGUIスクリプト実行モード

時には計画を支援し、自動的に運転を行うために役立つエディタモードで必要ないくつかの編集ツールを実行するためには、更新の下でテストされます。クラス定義の前にExecuteInEditModeラベル缶を追加します。

[ExecuteInEditMode]
public class TestComponent : MonoBehaviour
{
}

 

4.ラジアン角変換

Mathf.Sin(フロート)、メソッドMathf.Cos(フロート)この正弦余弦、ユニットパラメータであるラジアンではなく角度

ラジアン:円弧の半径に等しい弧長、それが1つのラジアン単位略語ラジアンであったため、中心角。(アーク長rα角度は、次に、角度αは、アーク長aは半径rの円)

我々が知っていることができ、定義によって、2 NRは、360°に対応する、すなわち2 NR =°で360円の円周である180 [PI] R =°です1radアーク長rに対応し、得ることができる1rad÷π≈57.295= 180°の°の電源を入れ、1゜≈0.01745rad

Mathfを変換するための2つの変数があります。

Mathf.Deg2Rad = 0.0174532924F; //ラジアン度は、

Mathf.Rad2Deg = 57.29578F;ラジアン単位の回転角度//

我々はsin30°を尋ねるのであれば、言葉遣いはする必要があります

Mathf.Sin(30 * Mathf.Deg2Rad);

 

5.Vector3.ProjectOnPlane

Vector3.ProjectOnPlane(するVector3ベクターのVector3 planeNormal);ベクトルの法線ベクトルは、平面planeNormalに投影されたベクトルです。

たとえば、あなたはベクトルするVector3 V =新しいのVector3(x、y、z)を持って、あなたは彼にxy平面内の軸のベクトル(z軸法線ベクトルを)お願いしたいと思います、この方法を使用することができます

Vector3.ProjectOnPlane(v, Vector3.forward);

 

前記ベクトル内積、外積

ドット積

Vector3.Dot(するVector3 LHS、RHSのVector3)。

以下のように計算:| |・| COS <A、B>ここで| | B・B = |と| B |表されるベクトルの大きさは、<A、B> 2つのベクトル間の角度を表します。また、ドット積に関係なく、注文の<A、B>と<B>角度です。

ドット積が負であれば、Bの非ゼロの前提の下で、次に、Bが90度以上の角度を形成し;ゼロならば、B垂直;陽性であれば、その後、Bが鋭角を形成します。金型は単位ベクトルであるため、二つの単位ベクトルの内積2つのベクトル間の角度のCOS得られるので、我々は2つのベクトル間の角度を計算することができ、ドット積を。

Vector3 a = new Vector3(7, 0, 0);
Vector3 b = new Vector3(0, 8, 0);

//cos<a,b> = x
float x = Vector3.Dot(a.normalized, b.normalized);

//反余弦 Cos(r) = x, r = Acos(x);
float r = Mathf.Acos(x);

//前面得到的是弧度,转角度
float angle = r * Mathf.Rad2Deg;

クロス製品

Vector3.Cross(するVector3 LHS、RHSのVector3)。

計算:| C | = | AXB | = | |・| B |罪<A、B>

Vector3.Cross(B)得られた値がまだベクトルc、Cに垂直な面であり、bが形成され、右手の法則のコンプライアンス(すなわち、B曲げ方向への方向が右に操舵を意味大4方向は、cの親指の方向)であり、従ってAXB≠BXA、しかし= AXB - BXAしたがって、我々は、Bの相対的な位置を決定するために、このプロパティを使用することができ、また、のB、角度αを得ることができる2つのベクトル間の角度の罪のような2つの単位ベクトルの型クロス積

Vector3 a = new Vector3(1, 0, 1);
Vector3 b = new Vector3(0, 0, 1);

Vector3 c1 = Vector3.Cross(a, b);
Debug.Log("c1:" + c1);//c1:(0.0, -1.0, 0.0)
//xz平面上,b到a为顺时针

Vector3 c2 = Vector3.Cross(b, a);
Debug.Log("c2:" + c2);//c2:(0.0, 1.0, 0.0)
//xz平面上,a到b为顺时针

//|c| = sin<a, b>
Vector3 c = Vector3.Cross(a.normalized, b.normalized);
//x = |c|
float x = Vector3.Distance(Vector3.zero, c);
//反余弦 Sin(r) = x, r = Asin(x);
float r = Mathf.Asin(x);

//前面得到的是弧度,转角度
float angle = r * Mathf.Rad2Deg;
Debug.Log("angle:" + angle);//angle:45

 

等速運動、等加速度7オブジェクト

距離=速度時間*:方程式によって均一な運動、

float speed = 10;

void Update()
{
    transform.position += transform.forward * speed * Time.deltaTime;
}

均一式により、動きを加速:

float speed = 0;
float endspeed;
int acceleration = 10;//加速度

void Update()
{
    endspeed = speed + acceleration * Time.deltaTime;
    //transform.position += transform.forward * (speed * Time.deltaTime + acceleration * Time.deltaTime* Time.deltaTime*0.5f);
    transform.position += transform.forward * (speed + endspeed) * 0.5f * Time.deltaTime;
    speed = endspeed;
}

 

8.Unityプロジェクトが開きます

あなたがシミュレートするテストを開く必要がある場合、一部の項目は、オンラインマルチプレイヤーが必要です。しかし、唯一の時に開い統一プロジェクトで、我々はよりオープン達成するのと同じ方法のカップリングにより、新しいプロジェクトを参照することができます。示されているように、元のプロジェクトを開くために必要がMainProjectだった、とMainProject_copyは、私たちのミラープロジェクトです

次のように私たちは、プロジェクトを開くために必要な同レベルのルートディレクトリに.batファイルを作成します。

%cd%
 
rem 需要创建的目录
set dir = CopeProjectFolderName
 
rem 如果没有则创建
if not exist %dir% ( md %dir%) 
 
rem 创建链接
mklink /J %dir%\Assets YourProjectFolderName\Assets
mklink /J %dir%\ProjectSettings YourProjectFolderName\ProjectSettings
 
pause

CopeProjectFolderName:ミラープロジェクトファイル名

YourProjectFolderName:元のプロジェクトのファイル名

原理は、元のディレクトリ変更するように、ディレクトリを作成し、鏡の中のオリジナル作品プロジェクトの資産ProjectSettingsディレクトリに参加することで、それはディレクトリも変更されますミラー。

後には、.batファイルを実行して、新しいプロジェクトを設定し、最後に新しいプロジェクトを開くことができ団結と。

おすすめ

転載: blog.csdn.net/wangjiangrong/article/details/97016565