Orodha ya maudhui:

Portal ya AR kuelekea Upside Down Kutoka kwa Mambo ya Ajabu: Hatua 10 (na Picha)
Portal ya AR kuelekea Upside Down Kutoka kwa Mambo ya Ajabu: Hatua 10 (na Picha)

Video: Portal ya AR kuelekea Upside Down Kutoka kwa Mambo ya Ajabu: Hatua 10 (na Picha)

Video: Portal ya AR kuelekea Upside Down Kutoka kwa Mambo ya Ajabu: Hatua 10 (na Picha)
Video: Шок!!! ДУШИ МЕРТВЕЦОВ В ЗАТОЧЕНИИ У ДЕМОНА В ЭТОМ СТРАШНОМ ДОМЕ / HERE ARE THE SOULS OF THE DEAD 2024, Julai
Anonim
Portal ya AR kwa kichwa chini kutoka kwa vitu vya wageni
Portal ya AR kwa kichwa chini kutoka kwa vitu vya wageni
Portal ya AR kwa kichwa chini kutoka kwa vitu vya wageni
Portal ya AR kwa kichwa chini kutoka kwa vitu vya wageni

Hii inayoweza kufundishwa itapitia kuunda ukweli uliodhabitiwa programu ya rununu ya iPhone na bandari ambayo inaongoza kwa kichwa chini kutoka kwa Mambo ya Mgeni. Unaweza kwenda ndani ya lango, utembee, na urudi nje. Kila kitu ndani ya bandari kinaweza kuonekana tu kupitia lango mpaka uingie ndani. Mara tu ndani, kila kitu kitatoa kila mahali, mpaka utarudi kwenye ulimwengu wa kweli. Tutatumia injini ya mchezo wa video ya Unity 3D na programu-jalizi ya Apple ARKit. Programu yote tutakayotumia inaweza kupakuliwa na kutumiwa bure. Huna haja ya kuwa mtaalam kufuata, tutapitia kila hatua!

Hatua ya 1: Anza Mradi Mpya wa Umoja

Anza Mradi Mpya wa Umoja
Anza Mradi Mpya wa Umoja

Kwanza, pakua Unity3D na uhakikishe kusanikisha faili za kujenga kwa jukwaa la IOS. Utahitaji pia kupakua Xcode na ujisajili kwa akaunti ya bure ya msanidi programu. IPhone yako pia italazimika kuendesha IOS 11 au zaidi. Kuanzia leo Febariari 5th 2018, IOS 11.3 iko nje lakini xCode 9.2 bado haina faili za msaada kwa hiyo. Kwa hivyo ikiwa unaendesha toleo la hivi karibuni la IOS hakikisha kupakua toleo la hivi karibuni la beta ya Xcode kutoka Apple. Developer.com.

Mara tu unapokuwa na mipango yote muhimu, fungua Umoja na uanze mradi mpya, iite chochote unachotaka. Tutahitaji programu-jalizi ya Apple ARKit ili tuweze kutumia kamera ya simu yetu kugundua vitu vya mahali chini kwenye sakafu. Wacha tuingize hiyo sasa kwa kwenda kwenye kichupo cha Duka la Mali na utafute "ARKit". Utahitaji kuunda akaunti ya Unity ya bure ikiwa tayari unayo, kisha bonyeza kuagiza ili kupata programu-jalizi.

Nenda kwenye folda ya mifano kwenye folda ya ARKit na upate "UnityARKitScene." Bonyeza mara mbili ili kuifungua. Tutatumia eneo kama hatua ya kuanzia na kujenga kutoka hapa. Eneo hili kwa chaguo-msingi litakuruhusu kugundua ardhi na wakati unagonga skrini, mchemraba utawekwa katika nafasi hiyo.

Hebu kwanza tupate mipangilio yetu ya kujenga mraba ili tusisahau kuifanya baadaye. Bonyeza faili, jenga mipangilio na uondoe pazia zote kutoka kwenye orodha hiyo. Bonyeza ongeza pazia wazi ili kuongeza moja yetu ya sasa. Jambo la mwisho tunalohitaji kusanidi hapa ni katika mipangilio ya kichezaji nenda chini kwa kitambulisho cha kifungu na fomati ya kamba hii ni com. YourCompanyName. YourAppName, kwa hivyo katika kesi yangu mimi hufanya kitu kama com. MatthewHallberg. PortalTest.

Hatua ya 2: Sanidi eneo la tukio

Sanidi eneo la tukio
Sanidi eneo la tukio

Kwanza angalia kushoto na upate kitu cha mchezo kinachoitwa "GeneratePlanes". Pamoja na hiyo iliyoangaziwa, angalia kulia sasa na ubonyeze kisanduku cha kuangalia ili kuizima. Kwa njia hii hatuna mraba mbaya wa bluu unaozalishwa wakati ARKit inagundua ndege ya ardhini. Halafu futa kitu cha mchezo wa "RandomCube" kwa sababu hatutaki kuiona kwenye eneo letu.

Sasa tunahitaji kwanza kuunda mlango wetu wa milango. Futa mchemraba ambaye ni mtoto wa "HitCubeParent". Bonyeza kulia na uchague kuunda kitu tupu cha mchezo. Ipe jina "Portal". Sasa bonyeza kulia kwenye kitu hicho na unda mchemraba, hii itamfanya mtoto wa lango. Ipe jina "PostLeft" na hii itakuwa post ya kushoto ya portal yetu. Punguza kwa hivyo x ni 1 y ni 28 na z ni moja. Fanya kitu kimoja kwa chapisho sahihi. Sasa tengeneza chapisho la juu na upime y hadi 14. Geuza upande huu na uusogeze ili unganishe machapisho mengine. Fanya kiwango chote cha milango 1.3 x 1.4 x 1.

Nenda kwa google na andika kwenye muundo wa kuni au gome. Pakua moja ya picha hizo na uburute kwenye folda yako ya mali katika Umoja. Sasa buruta picha hiyo kwenye machapisho yako yote ya milango.

Bonyeza kitu cha "Portal" tena na bonyeza kitufe cha kuongeza upande wa kulia. Ongeza hati ya "UnityARHitTestExample" kwake. Kuna nafasi tupu huko kwa "Hit Transform", buruta kitu cha "HitCubeParent" kwenye nafasi hiyo.

Hatua ya 3: Wacha Tutengeneze Chembechembe

Wacha Tutengeneze Chembechembe
Wacha Tutengeneze Chembechembe

Sasa tutatumia mfumo wa chembe ya umoja kufanya moshi na athari ya chembe inayoelea ndani ya bandari yetu. Nenda kwenye Mali kwenye upau wa menyu ya juu, mali ya kawaida, na uingize mifumo ya chembe.

Unda vitu viwili vya mchezo tupu ndani ya bandari yako na piga simu moja "SmokeParticles" na nyingine "Nakala za Kuelea."

Ongeza sehemu ya mfumo wa chembe kwenye chembe za moshi.

Sehemu hii ina rundo la chaguzi lakini tunahitaji tu kubadilisha wanandoa.

Badilisha rangi ya kuanza kuwa kitu cha hudhurungi na uwazi karibu 50%. Fanya kiwango cha chafu 100. Ndani ya sura, fanya radius.01. Katika sehemu ya mtoaji chini badilisha ukubwa wa min hadi.8 na saizi kubwa hadi 5. Kwenye sehemu ya nyenzo chagua tu nyenzo za moshi kutoka kwenye orodha, lakini tutabadilisha hii baadaye.

Ongeza mfumo wa chembe kwenye kitu cha mchezo wa chembe zinazoelea sasa na weka chafu hadi 500. Weka maisha ya kuanza kwa 2, radius hadi 10, saizi ya chembe min hadi.01, na saizi kubwa ya chembe hadi.015. Weka nyenzo kuwa chembe chaguomsingi kwa sasa.

Mwishowe chukua vitu vyote viwili vya mchezo na uzungushe kwa digrii 90 kwenye x na uwainue hewani kwa hivyo wanashuka kwenye mlango wa mlango.

Hatua ya 4: Kupunguza kasi ya Chembe

Kupunguza kasi ya Chembe
Kupunguza kasi ya Chembe

Kwa kuwa tunataka chembe hizi kufunika eneo kubwa lakini pia ziende polepole tunahitaji kuunda kazi yetu ya sampuli. Kwa hivyo bonyeza kulia kwenye folda ya mali na unda hati mpya ya C # na uiita "SampuliSampuli." Nakili na ubandike katika nambari hii:

kutumia System. Collections;

kutumia System. Collections. Generic; kutumia UnityEngine; darasa la umma ParticleSampuli: MonoBehaviour {private ParticleSystem ps; // Tumia hii kwa uanzishaji wa batili Anza () {ps = GetComponent (); StartCoroutine (SampuliParticleRoutine ()); } IEnumerator SampleParticleRoutine () {var main = ps.main; simulationSpeed = 1000f; ps. Cheza (); mavuno kurudi WaitForSeconds mpya (.1f); kuu. SimulationSpeed =.05f; }}

Sasa buruta hati hii kwenye kila moja ya vitu vya mchezo wa mfumo wa chembe.

Hatua ya 5: Kuunda Portal

Kuunda Portal!
Kuunda Portal!

Sasa tunahitaji kuunda bandari ili bonyeza haki kwenye kitu cha mchezo wa portal na tengeneze quad. Ongeza mraba kwa hivyo inashughulikia milango yote, hii itakuwa dirisha la milango yetu. Jambo la kwanza tunalohitaji kuiongeza ni kizingiti cha bandari, hii itatoa tu vitu na kivuli kingine maalum juu yao. Bonyeza kulia kwenye folda ya mali na uunda shader mpya isiyowaka. Ondoa kila kitu ndani na ubandike kwenye nambari hii:

Shader "Portal / portal Window"

{SubShader {Zwrite off Colormask 0 ondoa Stencil {Ref 1 Pass badala} Pass {}}}

Bonyeza kulia kwenye safu ya uongozi na unda nyenzo mpya, iite PortalWindowMat, kwenye menyu kunjuzi ya nyenzo hii pata sehemu ya bandari, na uchague dirisha la milango. Buruta nyenzo hii kwenye mraba wako wa milango.

Hatua ya 6: Vivuli vya chembe

Vivuli vya chembe
Vivuli vya chembe

Bonyeza kulia kwenye folda ya mali tena na uunda shader mpya. Tunahitaji kutengeneza vivuli kwa chembe zinazoingia ndani ya lango. Badilisha nambari zote na hii:

Kivuli "Portal / Chembe" {

Sifa {_TintColor ("Rangi ya Tint", Rangi) = (0.5, 0.5, 0.5, 0.5) _MainTex ("Mchanganyiko wa Chembe", 2D) = "nyeupe" {} _InvFade ("Soft Particles Factor", Range (0.01, 3.0) = 1.0 _Stencil ("stencil", int) = 6} Jamii {Tags {"Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" "PreviewType" = "Ndege"} Mchanganyiko SrcAlpha OneMinusSrcAlpha Rangi ya ColourMask RGB Zima ZWrite Off SubShader {Stencil {Ref 1 Comp [_Stencil]} Pass {CGPROGRAM #pragma vertex vert #pragma fragment frag #pragma target 2.0 #pragma multi_compile_particles #pragma multi_compile_fog #include "UnityCG.2; fasta4 _TintColor; muundo appdata_t {float4 vertex: POSITION; fasta4 rangi: RANGI; kuelea2 texcoord: TEXCOORD0; UMOJA_VERTEX_INPUT_INSTANCE_ID}; muundo v2f {float4 vertex: SV_POSITION; fasta4 rangi: RANGI; kuelea2 texcoord: TEXCOORD0; UMOJA_FOG_COORDS (1) #ifdef SOFTPARTICLES_ON float4 projPos: TEXCOORD2; # endIFU UMOJA_LETEX_OUTPUT_STEREO}; kuelea4 _MainTex_ST; v2f vert (appdata_t v) {v2f o; UNITY_SETUP_INSTANCE_ID (v); UMOJA_INITIALIZE_VERTEX_OUTPUT_STEREO (o); o.vertex = UnityObjectToClipPos (v. vertex); #ifdef SOFTPARTICLES_ON o.projPos = ComputeScreenPos (o. vertex); COMPUTE_EYEDEPTH (o.projPos.z); # endif o.color = v. rangi * _TintColor; o.texcoord = TRANSFORM_TEX (v.texcoord, _MainTex); UMOJA_TRANSFER_FOG (o, o.tex); kurudi o; } UMOJA_DECLARE_DEPTH_TEXTURE (_CameraDepthTexture); kuelea _InvFade; fasta4 frag (v2f i): SV_Target {#ifdef SOFTPARTICLES_ON eneo la kuelea Z = LinearEyeDepth (SAMPLE_DEPTH_TEXTURE_PROJ (_CameraDepthTexture, UNITY_PROJ_COORD (i.projPos))); kuelea sehemuZ = i.projPos.z; kuelea fade = kueneza (_InvFade * (eneoZ-sehemuZ)); i.color.a * = kufifia; # endif fast4 col = 2.0f * i.color * tex2D (_MainTex, i.texcoord); UMOJA_APPLY_FOG (i.fogCoord, col); kurudi col; } ENDCG}}}}

Unda vifaa vipya viwili, moja inaitwa portalSmoke, na moja inaitwa portalParticles.

Kwa kila mmoja chagua kivuli hiki, kutoka kwa kushuka chini, kwenye milango, chembe. Kwa chembe za moshi chagua muundo wa moshi na kwa chembe chagua muundo wa chembe. Badilisha rangi ya moshi iwe bluu nyeusi na uwazi karibu 50%. Nenda kwa sehemu ya mtoaji wa kila mfumo wa chembe kwenye bandari yako na uchague vifaa vyao ambavyo tumeunda tu.

Hatua ya 7: Unda Skybox

Unda Skybox
Unda Skybox

Sasa ili kuunda kweli sura ya kichwa chini lazima tint kila kitu giza bluu. Kwa hili tutatumia kisanduku cha uwazi kwa hivyo tengeneza kivuli kipya na ubandike kwenye nambari hii:

Shader "Portal / portalSkybox" {

Sifa za _ (0, 360)) = 0 [NoScaleOffset] _Tex ("Cubemap (HDR)", Cube) = "kijivu" {} _Stencil ("StencilNum", int) = 6} SubShader {Tags {"Queue" = "Background" "RenderType" = "Usuli" "PreviewType" = "Skybox"} Zima ZWrite Off Blend SrcAlpha OneMinusSrcAlpha Stencil {Ref 1 Comp [_Stencil]} Pass {CGPROGRAM #pragma vertex vert #pragma fragment frag #pragma target 2.0 #include "UnityCG.cincinc "samplerCUBE _Tex; nusu4 _Tex_HDR; nusu4 _Tint; mfiduo wa nusu _; kuelea _Rotation; kuelea3 ZungushaKazungukaYInDegrees (kuelea vertex3, digrii za kuelea) {float alpha = digrii * UNITY_PI / 180.0; kuelea sina, cosa; sincos (alpha, sina, cosa); kuelea2x2 m = kuelea2x2 (cosa, -sina, sina, cosa); kurudi kuelea3 (mul (m, vertex.xz), vertex.y).xzy; } muundo appdata_t {float4 vertex: POSITION; UMOJA_VERTEX_INPUT_INSTANCE_ID}; muundo v2f {float4 vertex: SV_POSITION; kuelea3 texcoord: TEXCOORD0; UMOJA_VERTEX_OUTPUT_STEREO}; v2f vert (appdata_t v) {v2f o; UNITY_SETUP_INSTANCE_ID (v); UMOJA_INITIALIZE_VERTEX_OUTPUT_STEREO (o); kuelea3 kuzungushwa = RotateAroundYInDegrees (v. vertex, _Rotation); o.vertex = UnityObjectToClipPos (imezungushwa); o.texcoord = v. vertex.xyz; kurudi o; } fasta4 frag (v2f i): SV_Target {half4 tex = texCUBE (_Tex, i.texcoord); nusu3 c = KuamuaHDR (tex, _Tex_HDR); c = c * _Tint.rgb * umoja_ColorSpaceDouble.rgb; c * = _ Mfiduo; kurudi nusu4 (c,.5); } ENDCG}} Kuanguka tena}

Sasa tengeneza nyenzo mpya ya kisanduku cha angani, iite "PortalSkybox" na uchague hii portalSkybox shader kutoka kwenye menyu ya portal. Nenda kwenye Dirisha, Taa, juu na uchague kisanduku hiki cha angani ambacho tumetengeneza tu. Nenda kwenye kamera kuu na uweke bendera wazi kwenye kisanduku cha angani. Wakati tuko hapa lets kuongeza vifaa kwenye kamera yetu ili tuweze kugundua migongano. Ongeza sehemu ya rigidbody kwenye kamera na uondoe utumiaji wa mvuto. Ongeza kisanduku cha sanduku na angalia ni kichocheo. Fanya ukubwa wa viboreshaji vya sanduku.5 x 1 x 4. Weka ndege ya kukata kwenye kamera hadi.01.

Hatua ya 8: Mantiki ya Portal

Mantiki ya Portal
Mantiki ya Portal

Jambo la mwisho tunalohitaji kufanya ni kuunda mantiki inayodhibiti milango yetu. Unda hati mpya ya C # na uiita PortalController.

kutumia System. Collections;

kutumia System. Collections. Generic; kutumia UnityEngine; nafasi ya jina UnityEngine. XR.iOS {darasa la umma PortalController: MonoBehaviour {public Material vifaa; umma MeshRenderer meshRenderer; Umoja wa ummaARVideo UnityARVideo; bool ya faragha isInside = false; bool ya kibinafsi niOutside = kweli; // Tumia hii kwa uanzishaji wa batili Anza () {OutsidePortal (); } batili OnTriggerStay (Collider col) {Vector3 playerPos = Camera.main.transform.position + Camera.main.transform.forward * (Camera.main.nearClipPlane * 4); ikiwa (transform. InverseTransformPoint (playerPos).z <= 0) {if (isOutside) {isOutside = false; isInside = kweli; NdaniPortal (); }} mwingine {if (isInside) {isInside = false; isOutside = kweli; Nje ya Portal (); }}} batili nje ya Portal () {StartCoroutine (DelayChangeMat (3)); } batili InsidePortal () {StartCoroutine (DelayChangeMat (6)); } IEnumerator DelayChangeMat (int stencilNum) {UnityARVideo.shouldRender = uwongo; mavuno rudisha WaitForEndOfFrame mpya (); meshRenderer.enabled = uwongo; foreach (Kitanda cha nyenzo katika vifaa) {mat. SetInt ("_Stencil", stencilNum); } mavuno rudisha WaitForEndOfFrame mpya (); meshRenderer.enabled = kweli; UnityARVideo.shouldRender = kweli; }}}

Buruta hati hii mpya kwenye dirisha lako la milango. Hii itatuingiza ndani na nje ya bandari wakati kila kontena kwenye kamera yetu inagongana na dirisha la lango. Sasa katika kazi ambayo inabadilisha vifaa vyote tunaambia programu-jalizi ya ARkit isitoe fremu, kwa hivyo nenda kwa kamera kuu na ufungue hati ya UnityARVideo. Unda bool ya umma inapaswa Kutoa juu na kuiweka sawa na kweli. Chini katika kazi ya OnPreRender () funga kila kitu kwa taarifa ikiwa kila kitu ndani kitatumika ikiwa lazimaRender ni kweli. Hati yote inapaswa kuonekana kama hii:

kutumia Mfumo;

kutumia System. Runtime. InteropServices; kutumia UnityEngine; kutumia UnityEngine. Utoaji; nafasi ya jina UnityEngine. XR.iOS {darasa la umma UnityARVideo: MonoBehaviour {public Material m_ClearMaterial; [HideInInspector] bool ya umma inapaswa Kutoa = kweli; binafsi CommandBuffer m_VideoCommandBuffer; Ubunifu wa kibinafsi2D _videoMaundoY; Texture2D ya kibinafsi _videoTextureCbCr; faragha Matrix4x4 _displayTransform; boti ya kibinafsi bCommandBufferInitialized; Start void ya umma () {UnityARSessionNativeInterface. ARFrameUpdatedEvent + = UpdateFrame; bCommandBufferInitialized = uwongo; } batili MwishoFrame (UnityARCamera cam) {_displayTransform = new Matrix4x4 (); _displayTransform. SetColumn (0, cam.displayTransform.column0); _displayTransform. SetColumn (1, cam.displayTransform.column1); _displayTransform. SetColumn (2, cam.displayTransform.column2); _displayTransform. SetColumn (3, cam.displayTransform.column3); } batili AnzishaCommandBuffer () {m_VideoCommandBuffer = CommandBuffer mpya (); m_VideoCommandBuffer. Blit (null, BuiltinRenderTextureType. CurrentActive, m_ClearMaterial); OngezaCommandBuffer (CameraEvent. BeforeForwardOpaque, m_VideoCommandBuffer); bCommandBufferInitialized = kweli; } batili OnDestroy () {GetComponent (). OndoaCommandBuffer (CameraEvent. BeforeForwardOpaque, m_VideoCommandBuffer); UnityARSessionNativeInterface. ARFrameUpdatedEvent - = SasishaFrame; bCommandBufferInitialized = uwongo; } # ikiwa! UNITY_EDITOR umma batili OnPreRender () {if (shouldRender) {ARTextureHandles Hushughulikia = UnityARSessionNativeInterface. GetARSessionNativeInterface (). GetARVideoTextureHandles (); ikiwa (hushughulikia.utawabuY == Mfumo. IntPtr. Zero || vipini.textureCbCr == System. IntPtr. Zero) {kurudi; } ikiwa (! bCommandBufferInitialized) {InitializeCommandBuffer (); } Azimio la sasaResolution = Screen.currentResolution; // Texture Y if (_videoTextureY == null) {_videoTextureY = Texture2D. CreateExternalTexture (currentResolution.width, currentResolution.height, TextureFormat. R8, uwongo, uwongo, (System. IntPtr) hushughulikia. TextureY); _videoTextureY.filterMode = FilterMode. Bilinear; _videoTextureY.wrapMode = TextureWrapMode. Rudia; m_ClearMaterial. SetTexture ("_ textureY", _VideoTextureY); } // Texture CbCr if (_videoTextureCbCr == null) {_videoTextureCbCr = Texture2D. CreateExternalTexture (currentResolution.width, currentResolution.height, TextureFormat. RG16, uongo, uwongo, (System. IntPtr) hushughulikia.textureCbCr); _videoTextureCbCr.filterMode = FilterMode. Bilinear; _videoTextureCbCr.wrapMode = TextureWrapMode. Rudia; m_ClearMaterial. SetTexture ("_ textureCbCr", _VideoTextureCbCr); } _Mseto wa videoY. SasishaUbadilishaji wa nje (hushughulikia.ubuniY); _VideoTextureCbCr. PdateExternalTexture (Hushughulikia.textureCbCr); m_ClearMaterial. SetMatrix ("_ DisplayTransform", _displayTransform); }} #na utupu wa umma SetYTexure (Texture2D YTex) {_videoTextureY = YTex; } utupu wa umma SetUVTexure (Texture2D UVTex) {_videoTextureCbCr = UVTex; } utupu wa umma OnPreRender () {if (! bCommandBufferInitialized) {InitializeCommandBuffer (); } m_ClearMaterial. SetTexture ("_ textureY", _VideoTextureY); m_ClearMaterial. SetTexture ("_ textureCbCr", _VideoTextureCbCr); m_ClearMaterial. SetMatrix ("_ DisplayTransform", _displayTransform); } # mwisho}}

Hatua ya 9: Karibu Umekamilika

Karibu Umekamilisha!
Karibu Umekamilisha!

Mwishowe tunapobofya skrini na kuweka lango tunalotaka likabiliane nasi kila wakati. Ili kufanya hivyo nenda kwa hati ya "UnityARHitTestExample" kwenye lango. Badilisha kila kitu ndani na hii:

kutumia Mfumo;

kutumia System. Collections. Generic; nafasi ya jina UnityEngine. XR.iOS {darasa la umma UnityARHitTestExample: MonoBehaviour {public Transform m_HitTransform; kuelea umma maxRayDistance = 30.0f; Public LayerMask collisionLayer = 1 <0) {foreach (var hitResult in hitResults) {Debug. Log ("Umepata!"); m_HitTransform.position = UnityARMatrixOps. GetPosition (hitResult.worldTransform); m_HitTransform.rotation = UnityARMatrixOps. GetRotation (hitResult.worldTransform); Ondoa utatuzi. Ungu (kamba. Fomati ("x: {0: 0. # # # # # #} Y: {1: 0. # # # # } ", m_HitTransform.position.x, m_HitTransform.position.y, m_HitTransform.position.z)); Vector3 currAngle = kubadilisha.eulerAngles; kubadilisha. LookAt (Camera.main.transform); kubadilisha.eulerAngles = mpya Vector3 (currAngle.x, transform.eulerAngles.y, currAngle.z); kurudi kweli; }} kurudi uwongo; } // Sasisho huitwa mara moja kwa kila tupu Sasisho la Utupu {Ray ray = Kamera.main. ScreenPointToRay (Input.mousePosition); RaycastHit hit; // tutajaribu kugonga moja ya vitu vya mchezo wa kugonga ndege ambavyo vilitengenezwa na programu-jalizi // sawa sawa na kupiga HitTest na ARHitTestResultType. ARHitTestResultTypeExistingPlaneUsingExtent if (Physics. Raycast (ray, hit, maxRayDistance, collisionLayer)) {// tutapata msimamo kutoka kwa eneo la mawasiliano m_HitTransform.position = hit.point; Ondoa utatuzi. Ungu (kamba. Fomati ("x: {0: 0. # # # # # #} Y: {1: 0. # # # # } ", m_HitTransform.position.x, m_HitTransform.position.y, m_HitTransform.position.z)); // na kuzungusha kutoka kwa mabadiliko ya mkusanyaji wa ndege m_HitTransform.rotation = hit.transform.rotation; }} #else if (Input.touchCount> 0 && m_HitTransform! = null) {var touch = Input. GetTouch (0); ikiwa (touch.phase == TouchPhase. Began || touch.phase == TouchPhase. Moved) {var screenPosition = Camera.main. ScreenToViewportPoint (touch.position); ARPoint point = ARPoint mpya {x = screenPosition.x, y = screenPosition.y}; // Kipaumbele reults aina ARHitTestResultType resultTypes = {ARHitTestResultType. ARHitTestResultTypeExistingPlaneUsingExtent, // kama unataka kutumia ndege usio tumia hii: //ARHitTestResultType. ARHitTestResultTypeExistingPlane, ARHitTestResultType. ARHitTestResultTypeHorizontalPlane, ARHitTestResultType. ARHitTestResultTypeFeaturePoint}; foreach (ARHitTestResultType resultType in resultTypes) {if (HitTestWithResultType (point, resultType)) {kurudi; }}}} # mwisho}}}

Hatua ya 10: Weka Programu kwenye Simu yako

Weka App kwenye simu yako!
Weka App kwenye simu yako!

Mwishowe tumemaliza. Nenda kwenye faili, jenga mipangilio na bonyeza bonyeza. Fungua Xcode na uchague folda ambayo iliundwa kutoka kwa muundo. Chagua timu yako ya maendeleo na uweke programu kwenye simu yako! Unaweza kutaka kubadilisha rangi za chembe na kisanduku cha angani ili kukidhi mahitaji yako. Napenda kujua katika maoni ikiwa una maswali yoyote na asante kwa kutafuta!

Ilipendekeza: