Unity3D學習日記(三)貝塞爾曲線

2021-07-11 07:53:30 字數 1073 閱讀 1249

從上圖我們可以看出大體上用法有3種,如果看不懂這些不要緊,這裡我們把p1,p2等可以看作引數,t可以看作乙個0-1的引數這樣將其化作簡單**語言來看待,那麼我們可以根據引數多少大體知道有3個不同的引數的函式。接下來我們繼續往下把貝塞爾曲線函式實現出來,這裡寫成了靜態函式方便呼叫,因為很簡單所以就直接上**了,如果連將數學公式轉化為簡單的**語言都不會,怎麼你可要慎重考慮是否適合做這行了,**如下:

using unityengine;

[system.serializable]

public class bezier : system.object

/// ///

///

///

///

///

/// 0.0 >= t <= 1.0

///

public static vector3 beziercurve(vector3 p0, vector3 p1, vector3 p2, float t)

/// ///

///

///

///

///

///

/// 0.0 >= t <= 1.0

///

public static vector3 beziercurve(vector3 p0, vector3 p1, vector3 p2, vector3 p3, float t)

}

一般公式是教你怎麼使用公式,這裡我們可以忽略掉的。這裡要注意的是,我們是通過t來繪製到曲線的每乙個點位置,但是要記得t是乙個0到1值,所以可以利用for迴圈來繪製所需要的點,大體用法就如圖所示:

最後的效果如圖顯示:

Unity 3D學習日記(2)

1.例項化用instantiate 要生成的物體,生成的位置,旋轉角度 2.檢測滑鼠左鍵並生成物體 if input.getbuttondown fire1 3.給物體加力 n.rigibody.addforce fwd 28000 4.轉換方向 vector3代表xyz vector3 fwd t...

Unity 3D學習日記(6)

2.第一人稱控制器 character controller slope limit 坡度限制 step offset 台階高度 skin width 兩個碰撞物體可以互相滲透的深度 大 顫抖 小 卡 等於半徑的10 min move distance 最小移動距離 一般為0 center radi...

Unity3d學習日記(六)

public static texture2d getmodifiedtexture2d texture2d source,int newwidth,int newheight,float alpha return re 用的話就像下面這樣呼叫就行了,s是縮放大小,a是透明度 var texture...