¡¡À߷פò¸µ¤Ë¡¢ÆüËܸì¤Ç¥³¥á¥ó¥È¤ò½ñ¤¤¤Æ¤«¤é¡¢½èÍý¤Î¼ÂÁõ¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡¥×¥í¥°¥é¥à¤Ï¾å¤«¤é²¼¤Ë½èÍý¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤¤Þ¤¹¤Î¤Ç¡¢½èÍý¤ò½ñ¤¯½çÈÖ¤¬ÂçÀڤˤʤê¤Þ¤¹¡£
¡¡Êý¸þ¤Î·×»»¡¡¢ª¡¡ZÀ®Ê¬¤Î½üµî(direction,z ¤ò 0 ¤Ë¤¹¤ë)¡¡¢ª¡¡Àµµ¬²½
¡¡¤³¤Î½çÈ֤ǽèÍý¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ë¤è¤Ã¤Æ¡¢Êý¸þ¤ÎÃͤ¬Àµµ¬²½¤µ¤ì¤Þ¤¹¡£
¡¡¤É¤Î¤è¤¦¤Ë¡¢ZÀ®Ê¬¤Î½üµî¤äÀµµ¬²½½èÍý¤ò¹Ô¤¦¤«¡¢¤Ç¤¹¤¬¡¢ZÀ®Ê¬¤Î½üµî¤¹¤ëÊýË¡¤Ï¿§¡¹¤¢¤ê¤Þ¤¹¡£Vector3.Scale ¥á¥½¥Ã¥É¤òÍøÍѤ¹¤ëÊýË¡¤¬¤ï¤«¤ê¤ä¤¹¤¤ÊýË¡¤Ë¤Ê¤ê¤Þ¤¹¡£
¤Þ¤¿Àµµ¬²½½èÍý¤Ï¡¢Unity ¤ÎÍÑ°Õ¤·¤Æ¤¤¤ë
Vector3.normalized ÊÑ¿ô¤òÍøÍѤ¹¤ì¤Ð¼Â¹Ô¤Ç¤¤Þ¤¹¡£
Vector3 ·¿¤ÎÉôʬ¤ËÀµµ¬²½¤ò¹Ô¤¤¤¿¤¤ÊÑ¿ô¤ò»ØÄꤷ¤Þ¤¹¡£
¡¡¤É¤Á¤é¤â²¼¤Ë²òÀ⤬¤¢¤ê¤Þ¤¹¤Î¤Ç¡¢ÌܤòÄ̤·¤Æ¤«¤é¥¹¥¯¥ê¥×¥È¤Î½¤Àµ¤ËÄ©À路¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¡¡¼«Ê¬¤¬¼ÂÁõ¤·¤¿¤¤½èÍý¤¬¥¤¥á¡¼¥¸½ÐÍ褿¾ì¹ç¤Ë¤Ï¡¢¤½¤ì¤ò¼Â¸½¤¹¤ë¤¿¤á¤Ë¤É¤ó¤Ê½èÍý¤¬¤¢¤ì¤Ð¾å¼ê¤¯¤¤¤¯¤Î¤«¡¢¼«Ê¬¤Ç¤¹¤Ù¤Æ½èÍý¤ò½ñ¤¯É¬Íפ¬¤¢¤ë¤Î¤«¡¢
¤¢¤ë¤¤¤Ï Unity ¤¬ÍÑ°Õ¤·¤Æ¤¤¤ë¾ðÊ󤬤¢¤ë¤Î¤«¡¢¤½¤¦¤¤¤Ã¤¿¤³¤È¤òÄ´¤Ù¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
PlayerController.cs
¡¡<=¡¡¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤¤Þ¤¹¡£
¡¡¡ù¡¡Á£¤Î£³¤«½ê¤ò½¤Àµ¤·¤Þ¤¹¡£
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public GameObject bulletPrefab;¡¡¡¡¡¡// Bullet ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î¥×¥ì¥Õ¥¡¥Ö¤Î¾ðÊó¤òÅÐÏ¿¤¹¤ë¤¿¤á¤ÎÊÑ¿ô¡£¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤è¤ê¥¢¥µ¥¤¥ó¤·¤ÆÅÐÏ¿¤¹¤ë
void Update() {
// ¥Þ¥¦¥¹¤Îº¸¥¯¥ê¥Ã¥¯¤ò¤·¤¿¤é
if (Input.GetMouseButtonDown(0)) {
// ²èÌ̤ò¥¿¥Ã¥×(¥¯¥ê¥Ã¥¯)¤·¤¿°ÌÃÖ¤ò¥«¥á¥é¤Î¥¹¥¯¥ê¡¼¥óºÂɸ¤Î¾ðÊó¤òÄ̤¸¤Æ¥ï¡¼¥ë¥ÉºÂɸ¤ËÊÑ´¹
Vector3 tapPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Debug.Log("¥¿¥Ã¥×¤·¤¿°ÌÃÖ¾ðÊó : " +tapPos);
// Êý¸þ¤ò·×»»
Vector3 direction = tapPos - transform.position;
////* ¤³¤³¤«¤é½¤Àµ *////
// Êý¸þ¤Î¾ðÊ󤫤顢ÉÔÍ×¤Ê ZÀ®Ê¬(Z¼´¾ðÊó) ¤Î½üµî¤ò¹Ô¤¦
direction = Vector3.Scale(direction, new Vector3(1, 1, 0));
// Àµµ¬²½½èÍý¤ò¹Ô¤¤¡¢Ã±°Ì¥Ù¥¯¥È¥ë¤È¤¹¤ë(Êý¸þ¤Î¾ðÊó¤Ï»ý¤Á¤Ä¤Ä¡¢µ÷Î¥¤Ë¤è¤ë®ÅÙº¹¤ò¤Ê¤¯¤·¤Æ°ìÄêÃͤˤ¹¤ë)
direction = direction.normalized;
Debug.Log("Àµµ¬²½½èÍý¸å¤ÎÊý¸þ : " + direction);
////* ¤³¤³¤Þ¤Ç *////
// ¥Ð¥ì¥Ã¥ÈÀ¸À®
GenerateBullet(direction);
}
}
/// <summary>
/// ¥Ð¥ì¥Ã¥È¤ÎÀ¸À®
/// </summary>
private void GenerateBullet(Vector3 direction) {
¡¡¡¡¡¡¡¡// bulletPrefab ÊÑ¿ô¤ÎÃÍ(Bullet ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È)¤Î¥¯¥í¡¼¥ó¤òÀ¸À®¤·¡¢Ìá¤êÃͤò bulletObj ÊÑ¿ô¤ËÂåÆþ¡£À¸À®°ÌÃÖ¤Ï PlayerSet ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Î»Ò¥ª¥Ö¥¸¥§¥¯¥È¤ò»ØÄê
GameObject bulletObj = Instantiate(bulletPrefab, transform);
¡¡¡¡¡¡¡¡// bulletObj ÊÑ¿ô(Bullet ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤¬ÂåÆþ¤µ¤ì¤Æ¤¤¤ë)¤Ë¥¢¥¿¥Ã¥Á¤µ¤ì¤Æ¤¤¤ë Bullet ¥¹¥¯¥ê¥×¥È¤Î¾ðÊó¤ò¼èÆÀ¤·¡¢ShotBullet ¥á¥½¥Ã¥É¤Ë½èÍý¤ò¹Ô¤¦¤è¤¦¤ËÌ¿Îá¤ò½Ð¤¹
bulletObj.GetComponent<Bullet>().ShotBullet(direction);
}
}