需求:
我們現(xiàn)在在做的產(chǎn)品需要通過兩個軟件之間的互相的信息傳遞來達(dá)成一個AR的效果,分為server端軟件和client端軟件,client端的目的是為了通過leapmotion去進(jìn)行定位和互動,server端則是用攝像頭結(jié)合實(shí)景并同步顯示client端定位和互動后的結(jié)果。要求是實(shí)現(xiàn)client(操作端)server(顯示同步端兼AR算法端)的socket雙向通信,要求無阻塞無粘包或斷包。
具體技術(shù)要求:
一、Transform同步
Transform.localPosition
Transform.localRotation
Transform.localScale
Transform.parent
二、動畫同步
1、骨骼動畫(Animation)
Animation.clipName(動畫名稱)
Animation.time(動畫時間)
Animation.speed(動畫速度)
CrossFade|DirectPlay|Stop(融合動畫、直接播放還是停止)
2、頂點(diǎn)動畫(Mesh同步)
Mesh.vertices(網(wǎng)格頂點(diǎn))
Mesh.normals(網(wǎng)格法線)
Mesh.triangles(三角面索引排列)
三、攝像機(jī)同步(Camera)
Camera.FieldOfView(視角)
Camera.ViewportRect(分屏框)
Camera.Depth(深度)
四、場景切換同步(SceneManager)
LevelName|LevelIndex(同步關(guān)卡名稱還是關(guān)卡索引)
LevelValue
DirectLoad|AsynLoad(直接切換還是異步加載)
五、Renderer屬性同步
Renderer.enabled(是否可見)
1、線條渲染LineRenderer
LineRenderer.positions(連接點(diǎn)數(shù)組)
LineRenderer.startWidth(起始寬度)
LineRenderer.endWidth(末尾寬度)
LineRenderer.startColor(起始顏色)
LineRenderer.endColor(末尾顏色)
LineRenderer.UseWorldSpace(連接點(diǎn)數(shù)組是采用世界坐標(biāo)還是本地坐標(biāo))
2、軌跡渲染TrailRenderer
TrailRenderer.Time(拖尾時間)
TrailRenderer.StartWidth(起始寬度)
TrailRenderer.EndWidth(末尾寬度)
TrailRenderer.Colors(漸變色數(shù)組)
TrailRenderer.MinVertexDistance(斷點(diǎn)最小距離)
TrailRenderer.Autodestruct(拖尾時間過后是否自動刪除)
六、Material屬性同步
propertyName(材質(zhì)球同步屬性名稱)
Color|Float|Vector(傳入顏色、數(shù)值還是四維數(shù)組)
propertyValue
七、GameObject同步
Active(是否可用)
SendMessage|BroadCastMessage|SendMessageUpwards(僅向自己發(fā)送消息、向包含自己在內(nèi)的所有子物體發(fā)送消息還是向包含自己在內(nèi)的所有上級物體發(fā)送消息?)
functionName(要接受消息的函數(shù)名)
parameters(接受消息的函數(shù)對應(yīng)的傳參字段)
方式:遠(yuǎn)程+見面對需求方式