i-school - VR¥¢¥¯¥·¥ç¥ó¡¡¾ã³²Êª­£
¡¡°ú¤­Â³¤­¡¢¾ã³²Êª¤Ë¤Ä¤¤¤ÆÀ߷פȼÂÁõ¤ò¹Ô¤¤¤Þ¤¹¡£

¡¡¾ã³²Êª¤Î»ë³¦µ¡Ç½¤Ë¤Ä¤¤¤Æ¡¢£²²ó¤Ëʬ¤±¤Æ¼ÂÁõ¤ò¹Ô¤¤¤Þ¤¹¡£

¡¡º£²ó¤ÎÀ߷פǤϾ㳲ʪ¤Î»ë³¦¤ÎÀßÄê¤ò¹Ô¤¤¡¢¼¡¤Î¼ê½ç¤Ç¤Ï¡¢»ë³¦Æâ¤Ë¥×¥ì¥¤¥ä¡¼¤ò´¶ÃΤ·¤¿ºÝ¤Î½èÍý¤Ë¤Ä¤¤¤Æ¼ÂÁõ¤·¤Þ¤¹¡£


¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯


¡¡ÀĤ¤È¾Æ©ÌÀ¤ÎÀ𷿤ÎÉôʬ¤¬¾ã³²Êª¤Î»ë³¦¤Ë¤Ê¤ê¤Þ¤¹¡£




¡ã¿·¤·¤¯³Ø½¬¤¹¤ëÆâÍÆ¡ä
¡¡¡¦OnDrawGizmos ¥á¥½¥Ã¥É¤È OnDrawGizmos ¥á¥½¥Ã¥ÉÆâ¤ÇÍøÍѤǤ­¤ë¥á¥½¥Ã¥É



Àß·×


¡¡¾ã³²Êª¤Ë»ë³¦¤Î¾ðÊó¤òÍ¿¤¨¤Æ¡¢¤³¤ÎÈÏ°ÏÆâ¤Ë¥×¥ì¥¤¥ä¡¼¤¬¿¯Æþ¤·¤¿¤È¤­¤À¤±¡¢Äɤ¤¤«¤±¤¿¤ê¤¹¤ë¤è¤¦¤Ë¤·¤Þ¤¹¡£

¡¡¥³¥é¥¤¥À¡¼Á´ÂΤò»ë³¦¤È¤·¤Æ¤â¤è¤¤¤Ç¤¹¤¬¡¢¤½¤Î¾ì¹ç¡¢Ä̾ï¤Ï¸«¤¨¤Ê¤¤¸åÊý¤Þ¤Ç»ë³¦¤È¤·¤Æǧ¼±¤·¤Æ¤·¤Þ¤¦¤¿¤á¡¢
¥³¥é¥¤¥À¡¼¤Î¤¦¤Á¡¢¾ã³²Êª¤ÎÁ°Êý¤ËÀð·Á¤ò¥¤¥á¡¼¥¸¤·¡¢¤½¤ÎÈÏ°ÏÆâ¤Î¤ß¤ò»ë³¦¤È¤·¤ÆÍøÍѤ¹¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç¡¢¤è¤ê¿Í´ÖŪ¤Ê»ë³¦¤È¤·¤Æµ¡Ç½¤µ¤»¤Þ¤¹¡£


»ë³¦¤È¤Ê¤ë¥µ¡¼¥ÁÈÏ°ÏÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤¹¤ë


¡¡¾ã³²Êª¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î»Ò¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ¡¢»ë³¦ÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¤Þ¤¹¡£
¿·¤·¤¯ Sphere ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¡¢¤½¤Î¥³¥é¥¤¥À¡¼¤ÎÈϰϤΰìÉô¤ò»ë³¦¤È¤·¤ÆȽÄê¤ËÍøÍѤ¹¤ëÀ߷פǤ¹¡£

¡¡MeshRenderer ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ÏÉÔÍפǤ¹¤Î¤Ç¡¢¥¹¥¤¥Ã¥Á¤òÀڤ뤫¡¢¥ê¥à¡¼¥Ö¤·¤Æ¤¯¤À¤µ¤¤¡£

¡¡¥³¥é¥¤¥À¡¼¤Î¥µ¥¤¥º¤ÏǤ°Õ¤Ç¤¹¡£


¥Ò¥¨¥é¥ë¥­¡¼²èÁü



Scene ¥Ó¥å¡¼²èÁü



¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü



SearchPlayer ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë


¡¡UniRX ¤Î Triggers ¤Ç¤Ï OnTriggerEnter ¥á¥½¥Ã¥É¤Ê¤É¤Î¥³¡¼¥ë¥Ð¥Ã¥¯¥á¥½¥Ã¥É¤òÈóƱ´ü½èÍý¤È¤·¤Æ¼ÂÁõ¤¹¤ë¤³¤È¤¬½ÐÍè¤Þ¤¹¡£
º£²ó¤Ï³Ø½¬¤Î¤¿¤á¡¢¤½¤Á¤é¤ÎÊý¼°¤Çµ­½Ò¤·¤Æ¤¤¤Þ¤¹¡£

¡¡ReactiveProperty ¤Ç¤¢¤ë IsSearch ¤Î¾ðÊó¤Ï¡¢¸åÄø MovingObstacle ¥¹¥¯¥ê¥×¥È¤ÎÊý¤Ç¹ØÆɤ·¡¢ÃͤÎÊѲ½¤òÍøÍѤ·¤Þ¤¹¡£

¡¡º£²ó¤Î¼ÂÁõ¤Ç¤Ï¡¢¥³¥é¥¤¥À¡¼¤ÎÁ´ÈϰϤò»ë³¦¤È¤Ï¤»¤º¡¢¥³¥é¥¤¥À¡¼Æâ¤Î»ØÄꤷ¤¿³ÑÅÙ¤ò»ë³¦¤È¤·¤ÆÍøÍѤ·¤Þ¤¹¡£

¡¡¤³¤Á¤é¤Îµ­»ö¤ò»²¹Í¤ËºîÀ®¤·¤Æ¤¤¤Þ¤¹¡£¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£
¤«¤á¤¯¤á ÍÍ
Unity¤ÇŨ¤¬¼ç¿Í¸ø¤ò¸¡ÃΤ¹¤ëÈϰϤò»ë³ÐÆâ¤Ë¸ÂÄꤹ¤ë
https://gametukurikata.com/program/onlyforwardsear...


SearchPlayer.cs

<= ¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤­¤Þ¤¹



¡ãOnDrawGizmos ¥á¥½¥Ã¥É¤È OnDrawGizmos ¥á¥½¥Ã¥ÉÆâ¤ÇÍøÍѤǤ­¤ë¥á¥½¥Ã¥É¡ä


¡¡¥³¥é¥¤¥À¡¼¤ÎÈϰϤò²Ä»ë²½¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢OnDrawGizmos ¥á¥½¥Ã¥É¤È Handles ¥¯¥é¥¹¤Ë¤¢¤ë¥á¥½¥Ã¥É¤òÍøÍѤ¹¤ë¤ÈÊØÍø¤Ç¤¹¡£
OnDrawGizmos ¥á¥½¥Ã¥É¤Ï¡¢MonoBehaviour ¥¯¥é¥¹¤ò·Ñ¾µ¤·¤Æ¤¤¤ì¤ÐÍøÍѤǤ­¤Þ¤¹¤¬¡¢
Handles ¥¯¥é¥¹¤òÍøÍѤ¹¤ë¤¿¤á¤Ë¤Ï¡¢ using UnityEditor ¤ÎÀë¸À¤¬É¬Íפˤʤê¤Þ¤¹¡£

¡¡Handles ¥¯¥é¥¹¤Ë¤¢¤ë¥á¥½¥Ã¥É¤Ï¡¢ÀìÍѤΠOnDrawGizmos ¥á¥½¥Ã¥ÉÆâ¤Ëµ­½Ò¤·¤Ê¤¤¤È¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤¹¡£
OnDrawGizmos ¥á¥½¥Ã¥É¤Ï¥³¡¼¥ë¥Ð¥Ã¥¯¡¦¥á¥½¥Ã¥É¤Ç¤¹¤Î¤Ç¡¢¥³¥é¥¤¥À¡¼¤¬¤¢¤ë¸Â¤ê¡¢¼«Æ°Åª¤Ë¤³¤Î¥á¥½¥Ã¥É¤Î½èÍý¤¬¼Â¹Ô¤µ¤ì¤Þ¤¹¡£

#if UNITY_EDITOR
¡¡¡¡// Scene ¥Ó¥å¡¼¤Ë»ë³¦ÈϰϤò²Ä»ë²½
    private void OnDrawGizmos() {

¡¡¡¡¡¡¡¡// using UnityEditor ÍѤΥ¯¥é¥¹¡£¿§¤ÎÀßÄê¡£¥¢¥ë¥Õ¥¡¤ò²¼¤²¤ÆÆ©ÌÀÅÙ¤ò¾å¤²¤Æ¤¤¤ë
        Handles.color = new Color(0, 0, 1, 0.3f);

¡¡¡¡¡¡¡¡// Àð·Á¤òºîÀ®¤·¡¢»ë³¦ÈϰϤξðÊó¤ò²Ä»ë²½
        Handles.DrawSolidArc(transform.position, Vector3.up, Quaternion.Euler(0f, -searchAngle, 0f) * transform.forward, searchAngle * 2.0f, searchArea.radius);
    }
#endif

»²¹Í¥µ¥¤¥È
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
MonoBehaviour.OnDrawGizmos
https://docs.unity3d.com/ja/current/ScriptReferenc...
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Handles
https://docs.unity3d.com/ja/current/ScriptReferenc...
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Handles-color
https://docs.unity3d.com/ja/current/ScriptReferenc...
Unity¸ø¼°¥¹¥¯¥ê¥×¥È¥ê¥Õ¥¡¥ì¥ó¥¹
Handles.DrawSolidArc
https://docs.unity3d.com/ja/current/ScriptReferenc...


¥µ¡¼¥ÁÈÏ°ÏÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë SearchPlayer ¥¹¥¯¥ê¥×¥È¤ò¥¢¥¿¥Ã¥Á¤¹¤ë


¡¡SearchPlayer ¥¹¥¯¥ê¥×¥È¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥¿¥Ã¥Á¤·¡¢ÀßÄê¤ò¹Ô¤¤¤Þ¤¹¡£

¡¡SearchArea ÊÑ¿ô¤Ë¤Ï¡¢¥µ¡¼¥ÁÈÏ°ÏÍѤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î SphereCollider ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤·¤Æ¥¢¥µ¥¤¥ó¤·¤Æ¤¯¤À¤µ¤¤¡£

¡¡SearchAngles ÊÑ¿ô¤Ë¤Ï¡¢0 ¡Á 360 ÅÙ¤ÎÃæ¤Ç¡¢Ç¤°Õ¤ÎÃͤòÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£¤½¤ì¤¬»ë³¦¤Î³ÑÅ٤Ȥ·¤ÆÍøÍѤµ¤ì¤Þ¤¹¡£


¥¤¥ó¥¹¥Ú¥¯¥¿¡¼²èÁü



¡¡Scene ¥Ó¥å¡¼¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£OnDrawGizmos ¥á¥½¥Ã¥É¤Ë¤è¤ê¡¢¥³¥é¥¤¥À¡¼Æâ¤Î¤¦¤Á¤Ç¡¢¾ã³²Êª¤Î»ë³¦¤È¤·¤ÆÀßÄꤵ¤ì¤Æ¤¤¤ëÈϰϤ¬²Ä»ë²½¤µ¤ì¤Þ¤¹¡£
¤³¤ì¤Ï searchAngele ÊÑ¿ô¤ò¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤ÇÊѹ¹¤¹¤ë¤³¤È¤Ç¡¢Æ°Åª¤ËÊѲ½¤·¤Þ¤¹¤Î¤Ç¡¢³ÑÅÙ¤ÏǤ°Õ¤Î³ÑÅÙ¤ËÄ´À°¤·¤Æ¤¯¤À¤µ¤¤¡£
¾ã³²Êª¤Ë¤è¤Ã¤ÆÊѲ½¤µ¤»¤Æ¤â¤è¤¤¤Ç¤·¤ç¤¦¡£


Scene ¥Ó¥å¡¼²èÁü



¡¡°Ê¾å¤ÇÀßÄê¤Ï´°Î»¤Ç¤¹¡£


PlayerController ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë


¡¡PlayerController ¥¹¥¯¥ê¥×¥È¤òºîÀ®¤¹¤ë¤«¡¢OVRPlayerController ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë¥¹¥¯¥ê¥×¥È¤Ë½èÍý¤òÄɵ­¤·¤Þ¤¹¡£


PlayerController.cs

¡¡<=¡¡¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤­¤Þ¤¹

¡¡
¡¡ºîÀ®¤·¤¿¤é¡¢Ç¤°Õ¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥¿¥Ã¥Á¤·¤Þ¤¹¡£
OVRPlayerController ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤â¤è¤¤¤Ç¤¹¤¬¡¢²¾¤Î¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤òºîÀ®¤·¤Æ¥¢¥¿¥Ã¥Á¤·¤Æ¥Ç¥Ð¥Ã¥°¤ò¹Ô¤Ã¤Æ¤â¤¤¤¤¤Ç¤¹¡£


¥²¡¼¥à¤ò¼Â¹Ô¤·¤ÆÆ°ºî¤ò³Îǧ¤¹¤ë


¡¡¤¤¤Þ¤Þ¤Ç¤ÈƱ¤¸¤è¤¦¤Ë¡¢¾ã³²Êª¤ò°ÜÆ°¤µ¤»¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
»ë³¦¤¬¾ã³²Êª¤Î¸þ¤­¤Ë¹ç¤ï¤»¤ÆÊѤï¤Ã¤Æ¤¤¤ë¤³¤È¤¬Ê¬¤«¤ë¤È»×¤¤¤Þ¤¹¡£

¡¡¤Þ¤À¥×¥ì¥¤¥ä¡¼¤ò¸«¤Ä¤±¤¿ºÝ¤Î½èÍý¤Ï¤¹¤Ù¤Æ´°À®¤·¤Æ¤¤¤Þ¤»¤ó¤Î¤Ç¡¢
¸½»þÅÀ¤Ç¤Ï¡¢Console ¥Ó¥å¡¼¤Ë¥×¥ì¥¤¥ä¡¼È¯¸«¤Îʸ»ú¤¬½Ð¤ì¤ÐÀ©¸æÀ®¸ù¤Ç¤¹¡£


¡ã¼ÂÁõÆ°²è¡ä
Æ°²è¥Õ¥¡¥¤¥ë¤Ø¤Î¥ê¥ó¥¯





¡¡°Ê¾å¤Ç¤³¤Î¼ê½ç¤Ï½ªÎ»¤Ç¤¹¡£