{"id":11231,"date":"2020-11-08T12:20:06","date_gmt":"2020-11-08T11:20:06","guid":{"rendered":"http:\/\/www.keris-studio.fr\/blog\/?p=11231"},"modified":"2020-11-08T12:20:08","modified_gmt":"2020-11-08T11:20:08","slug":"virus-run-in-unity","status":"publish","type":"post","link":"https:\/\/www.keris-studio.fr\/blog\/?p=11231","title":{"rendered":"Virus run&#8230;in Unity"},"content":{"rendered":"<p>This is the first step of a little app done in Unity. The goal is to escape the covid, each time the Player is touch by the virus, it multiplies\u2026<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1386\" height=\"607\" class=\"wp-image-11232\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/d-laurent-downloads-whatsapp-image-2020-11-05-at.jpeg\" alt=\"D:\\LAURENT\\Downloads\\WhatsApp Image 2020-11-05 at 21.10.52.jpeg\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/d-laurent-downloads-whatsapp-image-2020-11-05-at.jpeg 1386w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/d-laurent-downloads-whatsapp-image-2020-11-05-at-300x131.jpeg 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/d-laurent-downloads-whatsapp-image-2020-11-05-at-1024x448.jpeg 1024w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/d-laurent-downloads-whatsapp-image-2020-11-05-at-768x336.jpeg 768w\" sizes=\"auto, (max-width: 1386px) 100vw, 1386px\" \/><\/p>\n<p><!--more-->The labyrinth is created in Sketchup, but could have been created in any 3D software and exported as a 3DS file in Unity.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1982\" height=\"861\" class=\"wp-image-11233\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-779.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-779.png 1982w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-779-300x130.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-779-1024x445.png 1024w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-779-768x334.png 768w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-779-1536x667.png 1536w\" sizes=\"auto, (max-width: 1982px) 100vw, 1982px\" \/><\/p>\n<p>The site is prepared as Navigation Static<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"864\" height=\"93\" class=\"wp-image-11234\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-780.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-780.png 864w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-780-300x32.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-780-768x83.png 768w\" sizes=\"auto, (max-width: 864px) 100vw, 864px\" \/><\/p>\n<p>In the navigation panel it is defined as Walkable<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"872\" height=\"248\" class=\"wp-image-11235\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-781.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-781.png 872w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-781-300x85.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-781-768x218.png 768w\" sizes=\"auto, (max-width: 872px) 100vw, 872px\" \/><\/p>\n<p>And then it is possible to bake the mesh.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"881\" height=\"432\" class=\"wp-image-11236\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-782.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-782.png 881w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-782-300x147.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-782-768x377.png 768w\" sizes=\"auto, (max-width: 881px) 100vw, 881px\" \/><\/p>\n<p>As a result, a walkable zone is defined<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1682\" height=\"759\" class=\"wp-image-11237\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-783.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-783.png 1682w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-783-300x135.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-783-1024x462.png 1024w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-783-768x347.png 768w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-783-1536x693.png 1536w\" sizes=\"auto, (max-width: 1682px) 100vw, 1682px\" \/><\/p>\n<p>We will use Third Person Controller &#8211; Basic Locomotion FREE<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1325\" height=\"665\" class=\"wp-image-11238\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-784.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-784.png 1325w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-784-300x151.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-784-1024x514.png 1024w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-784-768x385.png 768w\" sizes=\"auto, (max-width: 1325px) 100vw, 1325px\" \/><\/p>\n<p>Check that the Tag Player is set.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"875\" height=\"99\" class=\"wp-image-11239\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-785.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-785.png 875w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-785-300x34.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-785-768x87.png 768w\" sizes=\"auto, (max-width: 875px) 100vw, 875px\" \/><\/p>\n<p>Create a virus model<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1137\" height=\"619\" class=\"wp-image-11240\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-786.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-786.png 1137w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-786-300x163.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-786-1024x557.png 1024w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-786-768x418.png 768w\" sizes=\"auto, (max-width: 1137px) 100vw, 1137px\" \/><\/p>\n<p>Add a Nav Mesh Agent Component<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"872\" height=\"404\" class=\"wp-image-11241\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-787.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-787.png 872w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-787-300x139.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-787-768x356.png 768w\" sizes=\"auto, (max-width: 872px) 100vw, 872px\" \/><\/p>\n<p><strong>Add a CSharp script<\/strong><\/p>\n<pre lang=\"languagestring\">using System.Collections;\nusing System.Collections.Generic;\nusing UnityEngine;\nusing UnityEngine.AI;\n\npublic class Seek : MonoBehaviour\n\n{\n\npublic float Mass = 15;\npublic float MaxVelocity = 3;\npublic float MaxForce = 15;\n\nprivate Vector3 velocity;\n\npublic Transform target;\n\nprivate void Start()\n\n{\nvelocity = Vector3.zero;\n}\nprivate void Update()\n{\nvar desiredVelocity = target.transform.position - transform.position;\ndesiredVelocity = desiredVelocity.normalized * MaxVelocity;\nvar steering = desiredVelocity - velocity;\nsteering = Vector3.ClampMagnitude(steering, MaxForce);\nsteering \/= Mass;\nvelocity = Vector3.ClampMagnitude(velocity + steering, MaxVelocity);\ntransform.position += velocity * Time.deltaTime;\ntransform.forward = velocity.normalized;\nDebug.DrawRay(transform.position, velocity.normalized * 2, Color.green);\nDebug.DrawRay(transform.position, desiredVelocity.normalized * 2, Color.magenta);\n}\n}\n<\/pre>\n<p>Add the script to the Virus<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"874\" height=\"135\" class=\"wp-image-11242\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-788.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-788.png 874w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-788-300x46.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-788-768x119.png 768w\" sizes=\"auto, (max-width: 874px) 100vw, 874px\" \/><\/p>\n<p>As target, the Head Top End can be chosen\u2026<\/p>\n<p>Test the application<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1573\" height=\"734\" class=\"wp-image-11243\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-789.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-789.png 1573w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-789-300x140.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-789-1024x478.png 1024w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-789-768x358.png 768w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-789-1536x717.png 1536w\" sizes=\"auto, (max-width: 1573px) 100vw, 1573px\" \/><\/p>\n<p>Now the virus has to multiply;<\/p>\n<p>Add a sphere to the virus<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"480\" height=\"35\" class=\"wp-image-11244\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-790.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-790.png 480w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-790-300x22.png 300w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1468\" height=\"585\" class=\"wp-image-11245\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-791.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-791.png 1468w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-791-300x120.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-791-1024x408.png 1024w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-791-768x306.png 768w\" sizes=\"auto, (max-width: 1468px) 100vw, 1468px\" \/><\/p>\n<p>Uncheck the Mesh Renderer<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"874\" height=\"35\" class=\"wp-image-11246\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-792.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-792.png 874w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-792-300x12.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-792-768x31.png 768w\" sizes=\"auto, (max-width: 874px) 100vw, 874px\" \/><\/p>\n<p>Enlarge the Sphere Collider and ckeck the is Trigger box<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"873\" height=\"146\" class=\"wp-image-11247\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-793.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-793.png 873w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-793-300x50.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-793-768x128.png 768w\" sizes=\"auto, (max-width: 873px) 100vw, 873px\" \/><\/p>\n<p>Add an Audio Source for an audio feedback, add an audio file<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"871\" height=\"400\" class=\"wp-image-11248\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-794.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-794.png 871w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-794-300x138.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-794-768x353.png 768w\" sizes=\"auto, (max-width: 871px) 100vw, 871px\" \/><\/p>\n<p>Add the Contamination script<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"871\" height=\"129\" class=\"wp-image-11249\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-795.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-795.png 871w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-795-300x44.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-795-768x114.png 768w\" sizes=\"auto, (max-width: 871px) 100vw, 871px\" \/><\/p>\n<pre lang=\"languagestring\">using System.Collections;\nusing System.Collections.Generic;\nusing UnityEngine;\n\npublic class Duplicate : MonoBehaviour\n\n{\n\nAudioSource _audioSource;\n\npublic AudioClip _audioClip;\npublic Transform Spawnpoint;\npublic GameObject Virus;\npublic Duplicate(GameObject virus)\n\n{\n\nVirus = virus;\n\n}\nvoid Start()\n{\n\n_audioSource = GetComponent&lt;AudioSource&gt;();\n\n}\nvoid OnTriggerEnter(Collider other)\n{\n\nif (other.CompareTag(\"Player\"))\n\n{\nInstantiate(Virus, Spawnpoint.position, Spawnpoint.rotation);\n_audioSource.PlayOneShot(_audioClip);\n}\n\n}\n\n}\n<\/pre>\n<p>Once done create a Prefab from the Virus.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"68\" height=\"88\" class=\"wp-image-11250\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-796.png\"><\/p>\n<p>The Prefab holds all scripts and heriarchies.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1297\" height=\"575\" class=\"wp-image-11251\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-797.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-797.png 1297w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-797-300x133.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-797-1024x454.png 1024w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-797-768x340.png 768w\" sizes=\"auto, (max-width: 1297px) 100vw, 1297px\" \/><\/p>\n<p>Put Prefabs in the scene and play!!<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"1681\" height=\"795\" class=\"wp-image-11252\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-798.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-798.png 1681w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-798-300x142.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-798-1024x484.png 1024w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-798-768x363.png 768w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-798-1536x726.png 1536w\" sizes=\"auto, (max-width: 1681px) 100vw, 1681px\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"2471\" height=\"960\" class=\"wp-image-11253\" src=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-799.png\" srcset=\"https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-799.png 2471w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-799-300x117.png 300w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-799-1024x398.png 1024w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-799-768x298.png 768w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-799-1536x597.png 1536w, https:\/\/www.keris-studio.fr\/blog\/wp-content\/word-image-799-2048x796.png 2048w\" sizes=\"auto, (max-width: 2471px) 100vw, 2471px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is the first step of a little app done in Unity. The goal is to escape the covid, each time the Player is touch by the virus, it multiplies\u2026<\/p>\n","protected":false},"author":2,"featured_media":11251,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,179,14,25,8,128,174,205],"tags":[424,423,140,320,425],"class_list":["post-11231","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-3d","category-articles","category-conception","category-etats-de-lart","category-methodologie","category-references","category-simulations","category-unity-2","tag-covid","tag-game","tag-unity","tag-unity-3d","tag-virus"],"_links":{"self":[{"href":"https:\/\/www.keris-studio.fr\/blog\/index.php?rest_route=\/wp\/v2\/posts\/11231","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.keris-studio.fr\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.keris-studio.fr\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.keris-studio.fr\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.keris-studio.fr\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11231"}],"version-history":[{"count":1,"href":"https:\/\/www.keris-studio.fr\/blog\/index.php?rest_route=\/wp\/v2\/posts\/11231\/revisions"}],"predecessor-version":[{"id":11254,"href":"https:\/\/www.keris-studio.fr\/blog\/index.php?rest_route=\/wp\/v2\/posts\/11231\/revisions\/11254"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.keris-studio.fr\/blog\/index.php?rest_route=\/wp\/v2\/media\/11251"}],"wp:attachment":[{"href":"https:\/\/www.keris-studio.fr\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11231"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.keris-studio.fr\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11231"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.keris-studio.fr\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11231"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}