¡¡DefenseBase ¥¹¥¯¥ê¥×¥È¤Ç¤Î¥¨¥Õ¥§¥¯¥È¤ÎÀ¸À®Ì¿Îá¤ò»²¹Í¤Ë¤·¤Æ¡¢
Ì£Êý¥¥ã¥é¤È¥¨¥Í¥ß¡¼¤Î¥¥ã¥é¤Ë¤â¥¨¥Õ¥§¥¯¥È¤ò¼ÂÁõ¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¡¡ÇÛÃÖ¤¹¤ëÌ£Êý¥¥ã¥é¤È¥¨¥Í¥ß¡¼¤Î¥¥ã¥éÍѤΥ¨¥Õ¥§¥¯¥È¤ò BattleEffectManager ¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤Ë¥¢¥µ¥¤¥ó¤·¤Æ¤¢¤ê¤Þ¤¹¡£
¥¨¥Í¥ß¡¼¤Ë¤Ä¤¤¤Æ¤Ï¡¢Ì£Êý¥¥ã¥é¤«¤é¹¶·â¤ò¼õ¤±¤¿¾ì¹ç¤Î½èÍý¤È¡¢Ç˲õ¤µ¤ì¤¿¾ì¹ç¤Î¥¨¥Õ¥§¥¯¥È¤È¤¬¤¢¤ê¤Þ¤¹¡£
¡¡Å¬µ¹¤Ê¥¿¥¤¥ß¥ó¥°¤Ç¤³¤Î¥¨¥Õ¥§¥¯¥È¤¬ºÆÀ¸¤µ¤ì¤ë¤è¤¦¤Ë¡¢Á°²ó¤Î¼ê½ç¤Î EffectType ¤ÎÎóµó»Ò¤Ø¤Î¥³¥á¥ó¥È¤â¸«¤Ê¤¬¤é¡¢¥í¥¸¥Ã¥¯¤ò¹Í¤¨¤Æ¼ÂÁõ¤ËÄ©À路¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£
¡¡¤Ê¤ª¡¢²¼µ¤Ë¼ÂÁõÎã¤òÄ󼨤·¤Þ¤¹¤¬¡¢¤³¤Á¤é¤Ï
¼ÂÁõ¤ËÄ©À路¤Æ¤«¤é¸«¤ë¤è¤¦¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£
¤´¼«Ê¬¤Ç¼ÂÁõ¤¬¤Ç¤¤¿¤Î¤Ç¤¢¤ì¤Ð¡¢¤³¤ÎÄ̤ê¤Ë½¤Àµ¤¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£¤¢¤¯¤Þ¤Ç¤â¼ÂÁõÎã¤Ç¤¢¤ë¤³¤È¤òǰƬ¤ËÃÖ¤¤Þ¤·¤ç¤¦¡£
¡ã¼ÂÁõÎã¡ä

CharaController.cs

¡¡<=¡¡¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤¤Þ¤¹¡£
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CharaController : MonoBehaviour
{
[SerializeField, Header("¹¶·âÎÏ")]
private int attackPower = 1;
[SerializeField, Header("¹¶·â¤¹¤ë¤Þ¤Ç¤ÎÂÔµ¡»þ´Ö")]
private float intervalAttackTime = 60.0f;
[SerializeField]
private bool isAttack;
[SerializeField]
private EnemyController enemy;
[SerializeField]
private int attackCount = 3; // TODO ¸½ºß¤Î¹¶·â²ó¿ô¤Î»Ä¤ê¡£¤¢¤È¤Ç CharaData ¥¯¥é¥¹¤ÎÃͤòÈ¿±Ç¤µ¤»¤ë
[SerializeField]
private UnityEngine.UI.Text txtAttackCount;
[SerializeField]
private BoxCollider2D attackRangeArea;
[SerializeField]
private CharaData charaData;
private GameManager gameManager;
private Animator anim;
private string overrideClipName = "Chara_4"; // ¡¡¡¡<= ¡ù¡¡ÂåÆþ¤¹¤ëʸ»úÎó¤Ï¼«Ê¬¤Î¥×¥í¥¸¥§¥¯¥È¤Î Animation¥Ó¥å¡¼ ¤Î Motion ¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë AnimationClip ¤Î̾Á°¤òÅÐÏ¿¤¹¤ë
private AnimatorOverrideController overrideController;
private void OnTriggerStay2D(Collider2D collision) {
// ¹¶·âÃæ¤Ç¤Ï¤Ê¤¤¾ì¹ç¤Ç¡¢¤«¤Ä¡¢Å¨¤Î¾ðÊó¤ò̤¼èÆÀ¤Ç¤¢¤ë¾ì¹ç
if (&& !isAttack && !enemy) {
Debug.Log("Ũȯ¸«");
// Ũ¤Î¾ðÊó(EnemyController)¤ò¼èÆÀ¤¹¤ë
if (collision.gameObject.TryGetComponent(out enemy)) {
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// ¾ðÊó¤ò¼èÆÀ¤Ç¤¤¿¤é¡¢¹¶·â¾õÂ֤ˤ¹¤ë
isAttack = true;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// ¹¶·â¤Î½àÈ÷¤ËÆþ¤ë
StartCoroutine(PrepareteAttack());
}
}
}
/// <summary>
/// ¹¶·â½àÈ÷
/// </summary>
/// <returns></returns>
public IEnumerator PrepareteAttack() {
Debug.Log("¹¶·â½àÈ÷³«»Ï");
int timer = 0;
¡¡¡¡¡¡¡¡// ¹¶·âÃæ¤Î´Ö¤À¤±¥ë¡¼¥×½èÍý¤ò·«¤êÊÖ¤¹
while (isAttack) {
// ¥²¡¼¥à¥×¥ì¥¤Ãæ¤Î¤ß¹¶·â¤¹¤ë
if (gameManager.currentGameState == GameManager.GameState.Play) {
¡¡¡¡timer++;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// ¹¶·â¤Î¤¿¤á¤ÎÂÔµ¡»þ´Ö¤¬·Ð²á¤·¤¿¤é
¡¡¡¡¡¡¡¡ ¡¡¡¡if (timer > intervalAttackTime) {
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// ¼¡¤Î¹¶·â¤ËÈ÷¤¨¤Æ¡¢ÂÔµ¡»þ´Ö¤Î¥¿¥¤¥Þ¡¼¤ò¥ê¥»¥Ã¥È
¡¡¡¡timer = 0;
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// ¹¶·â
¡¡¡¡Attack();
¡¡¡¡// ¹¶·â²ó¿ô´ØÏ¢¤Î½èÍý¤ò¤³¤³¤Ëµ½Ò¤¹¤ë
¡¡¡¡attackCount--;
// »Ä¤ê¹¶·â²ó¿ô¤Îɽ¼¨¹¹¿·
UpdateDisplayAttackCount();
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡// ¹¶·â²ó¿ô¤¬¤Ê¤¯¤Ê¤Ã¤¿¤é
¡¡¡¡if (attackCount <= 0) {
////* ¤³¤³¤«¤é½¤Àµ *////
// ¥¥ã¥é¤òÇ˲õ
DestroyChara();¡¡¡¡¡¡ ¡¡¡¡¡¡//¡¡¡ù¡¡ÄɲÃ
¡¡¡¡ // ¥¥ã¥éÇ˲õ
¡¡¡¡ //Destroy(gameObject);¡¡¡¡¡¡//¡¡DestroyChara ¥á¥½¥Ã¥ÉÆâ¤Ë½èÍý¤ò°Ü¹Ô¤¹¤ë¤Î¤Ç¥³¥á¥ó¥È¥¢¥¦¥È
// ¥¥ã¥é¤Î¥ê¥¹¥È¤«¤é¾ðÊó¤òºï½ü
//gameManager.RemoveCharasList(this);¡¡¡¡¡¡//¡¡DestroyChara ¥á¥½¥Ã¥ÉÆâ¤Ë½èÍý¤ò°Ü¹Ô¤¹¤ë¤Î¤Ç¥³¥á¥ó¥È¥¢¥¦¥È
////* ¤³¤³¤Þ¤Ç *////
}
}
}
¡¡¡¡¡¡¡¡¡¡¡¡// £±¥Õ¥ì¡¼¥à½èÍý¤òÃæÃǤ¹¤ë(¤³¤Î½èÍý¤ò½ñ¤Ëº¤ì¤ë¤È̵¸Â¥ë¡¼¥×¤Ë¤Ê¤ê¡¢Unity ¥¨¥Ç¥£¥¿¡¼¤¬Æ°¤«¤Ê¤¯¤Ê¤Ã¤ÆºÆµ¯Æ°¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£Ãí°Õ¡ª)
yield return null;
}
}
/// <summary>
/// ¹¶·â
/// </summary>
private void Attack() {
Debug.Log("¹¶·â");
// TODO ¥¥ã¥é¤Î¾å¤Ë¹¶·â¥¨¥Õ¥§¥¯¥È¤òÀ¸À®
// Ũ¥¥ã¥é¦¤ËÍѰդ·¤¿¥À¥á¡¼¥¸·×»»ÍѤΥ᥽¥Ã¥É¤ò¸Æ¤Ó½Ð¤·¤Æ¡¢Å¨¤Ë¥À¥á¡¼¥¸¤òÍ¿¤¨¤ë
enemy.CulcDamage(attackPower);
}
private void OnTriggerExit2D(Collider2D collision) {
if (collision.tag == "Enemy") {
Debug.Log("Ũ¤Ê¤·");
isAttack = false;
enemy = null;
}
}
/// <summary>
/// »Ä¤ê¹¶·â²ó¿ô¤Îɽ¼¨¹¹¿·
/// </summary>
private void UpdateDisplayAttackCount() {
txtAttackCount.text = attackCount.ToString();
}
/// <summary>
/// ¥¥ã¥é¤ÎÀßÄê
/// </summary>
/// <param name="charaData"></param>
/// <param name="gameManager"></param>
public void SetUpChara(CharaData charaData, GameManager gameManager) {
this.charaData = charaData;
this.gameManager = gameManager;
¡¡¡¡¡¡¡¡// ³ÆÃͤò CharaData ¤«¤é¼èÆÀ¤·¤ÆÀßÄê
attackPower = this.charaData.attackPower;
intervalAttackTime = this.charaData.intervalAttackTime;
¡¡¡¡¡¡¡¡// DataBaseManager ¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë AttackRangeSizeSO ¥¹¥¯¥ê¥×¥¿¥Ö¥ë¡¦¥ª¥Ö¥¸¥§¥¯¥È¤Î¥Ç¡¼¥¿¤È¾È¹ç¤ò¹Ô¤¤¡¢CharaData ¤Î AttackRangeType ¤Î¾ðÊó¤ò¸µ¤Ë Size ¤òÀßÄê
attackRangeArea.size = DataBaseManager.instance.attackRangeSizeSO.GetAttackRangeSize(this.charaData.attackRange);
attackCount = this.charaData.maxAttackCount;
// »Ä¤ê¤Î¹¶·â²ó¿ô¤Îɽ¼¨¹¹¿·
¡¡¡¡¡¡¡¡UpdateDisplayAttackCount():
// ¥¥ã¥é¤´¤È¤Î AnimationClip ¤òÀßÄê
SetUpAnimation();
}
/// <summary>
/// Motion ¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë AnimationClip ¤òÊѹ¹
/// </summary>
private void SetUpAnimation() {
if (TryGetComponent(out anim)) {
overrideController = new AnimatorOverrideController();
overrideController.runtimeAnimatorController = anim.runtimeAnimatorController;
anim.runtimeAnimatorController = overrideController;
AnimatorStateInfo[] layerInfo = new AnimatorStateInfo[anim.layerCount];
for (int i = 0; i < anim.layerCount; i++) {
layerInfo[i] = anim.GetCurrentAnimatorStateInfo(i);
}
overrideController[overrideClipName] = this.charaData.charaAnim;
anim.runtimeAnimatorController = overrideController;
anim.Update(0.0f);
for (int i = 0; i < anim.layerCount; i++) {
anim.Play(layerInfo[i].fullPathHash, i, layerInfo[i].normalizedTime);
}
}
}
/// <summary>
/// ¥¥ã¥é¤ò¥¿¥Ã¥×¤·¤¿ºÝ¤Î½èÍý(EventTrigger ¤ËÅÐÏ¿¤¹¤ë¥á¥½¥Ã¥É)
/// </summary>
public void OnClickChara() {
¡¡¡¡¡¡¡¡// GameManager ¤ò·Ðͳ¤·¤Æ¡¢¥²¡¼¥à¤Î¿Ê¹Ô¾õÂÖ¤òÀÚ¤êÂØ¤¨¤Ä¤Ä¡¢UIManager ¤Ø½èÍý¤ò¤Ä¤Ê¤²¤Æ¤â¤é¤¦¤¿¤á¤Î¥á¥½¥Ã¥É
gameManager.PreparateCreateReturnCharaPopUp(this);
}
////* ¤³¤³¤«¤é¥á¥½¥Ã¥É¤ò£±¤ÄÄɲà *////
/// <summary>
/// ¥¥ã¥é¤¬Ç˲õ¤µ¤ì¤¿¾ì¹ç¤Î½èÍý
/// </summary>
private void DestroyChara() {
// ¥¨¥Õ¥§¥¯¥È
GameObject effect = Instantiate(BattleEffectManager.instance.GetEffect(EffectType.Destroy_Chara), transform.position, Quaternion.identity);
// ¥¥ã¥éÇ˲õ
Destroy(gameObject);
gameManager.RemoveCharasList(this);
}
////* ¤³¤³¤Þ¤Ç *////
}
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤ò¹Ô¤¤¤Þ¤¹¡£
EnemyController.cs

¡¡<=¡¡¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤¤Þ¤¹
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
using System.Linq;
public class EnemyController : MonoBehaviour
{
[SerializeField, Header("°Üư·ÐÏ©¤Î¾ðÊó")]
private PathData pathData;
[SerializeField, Header("°Üư®ÅÙ")]
private float moveSpeed;
[SerializeField, Header("ºÇÂçHP")]
private int maxHp;
[SerializeField]
private int hp;
private Tween tween;
private Vector3[] paths;
private Animator anim;¡¡¡¡¡¡¡¡¡¡¡¡ // Animator ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î¼èÆÀÍÑ
private GameManager gameManager;
public int attackPower;
public EnemyDataSO.EnemyData enemyData;
/// <summary>
/// Ũ¤ÎÀßÄê
/// </summary>
public void SetUpEnemyController(Vector3[] pathsData, GameManager gameManager, EnemyDataSO.EnemyData enemyData) {
// °ú¿ô¤ÇÆÏ¤¤¤¿ EnemyData ¤Î¾ðÊó¤òÂåÆþ¤·¤ÆÍøÍѤǤ¤ë¾õÂ֤ˤ¹¤ë
this.enemyData = enemyData;¡¡
¡¡¡¡¡¡¡¡// ³Æ¿ôÃͤò EnemyData ¤Î¾ðÊó¤ÎÃͤ˽ñ¤´¹¤¨¤ë
moveSpeed = this.enemyData.moveSpeed;
attackPower = this.enemyData.attackPower;
maxHp = this.enemyData.hp;
this.gameManager = gameManager;¡¡
hp = maxHp;
¡¡¡¡¡¡¡¡// Animator ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤ò¼èÆÀ¤·¤Æ anim ÊÑ¿ô¤ËÂåÆþ
if (TryGetComponent(out anim)) {
// Animator ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤¬¼èÆÀ¤Ç¤¤¿¾ì¹ç¤Ë¤Ï¡¢¥¢¥Ë¥á¡¼¥·¥ç¥ó¤ÎÀßÄ꤬¹Ô¤¨¤ë¤«³Îǧ¤·¤Æ¤«¤é¥¢¥Ë¥á¡¼¥·¥ç¥ó¤Î¾å½ñ¤¤ò¤¹¤ë
SetUpAnimation();
}
// °Üư¤¹¤ëÃÏÅÀ¤ò¼èÆÀ
paths = pathsData;
// ³ÆÃÏÅÀ¤Ë¸þ¤±¤Æ°Üư¡£º£¸å¤³¤Î½èÍý¤òÀ©¸æ¤¹¤ë¤¿¤á¡¢Tween ·¿¤ÎÊÑ¿ô¤Ë DOPath ¥á¥½¥Ã¥É¤Î½èÍý¤òÂåÆþ¤·¤Æ¤ª¤¯
tween = transform.DOPath(paths, 1000 / moveSpeed).SetEase(Ease.Linear).OnWaypointChange(ChangeAnimeDirection);
// °Üư¤ò°ì»þÄä»ß
PauseMove();
}
/// <summary>
/// Ũ¤Î¿Ê¹ÔÊý¸þ¤ò¼èÆÀ¤·¤Æ¡¢°Üư¥¢¥Ë¥á¤ÈƱ´ü
/// </summary>
private void ChangeAnimeDirection(int index) {
¡¡¡¡¡¡¡¡// ¼¡¤Î°ÜưÀè¤ÎÃÏÅÀ¤¬¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢¤³¤³¤Ç½èÍý¤ò½ªÎ»¤¹¤ë
if (index >= paths.Length) {
return;
}
// ÌÜɸ¤Î°ÌÃ֤ȸ½ºß¤Î°ÌÃ֤Ȥε÷Î¥¤ÈÊý¸þ¤ò¼èÆÀ¤·¡¢Àµµ¬²½½èÍý¤ò¹Ô¤¤¡¢Ã±°Ì¥Ù¥¯¥È¥ë¤È¤¹¤ë(Êý¸þ¤Î¾ðÊó¤Ï»ý¤Á¤Ä¤Ä¡¢µ÷Î¥¤Ë¤è¤ë®ÅÙº¹¤ò¤Ê¤¯¤·¤Æ°ìÄêÃͤˤ¹¤ë)
Vector3 direction = (transform.position - paths[index]).normalized;
¡¡¡¡¡¡¡¡// ¥¢¥Ë¥á¡¼¥·¥ç¥ó¤Î Palameter ¤ÎÃͤò¹¹¿·¤·¡¢°Üư¥¢¥Ë¥á¤Î BlendTree ¤òÀ©¸æ¤·¤Æ°Üư¤ÎÊý¸þ¤È°Üư¥¢¥Ë¥á¤òƱ´ü
anim.SetFloat("X", direction.x);
anim.SetFloat("Y", direction.y);
}
/// <summary>
/// ¥À¥á¡¼¥¸·×»»
/// </summary>
/// <param name="amount"></param>
public void CulcDamage(int amount) {
¡¡¡¡¡¡¡¡// Hp ¤ÎÃͤò¸º»»¤·¤¿·ë²ÌÃͤò¡¢ºÇÄãÃͤȺÇÂçÃͤÎÈÏ°ÏÆâ¤Ë¼ý¤Þ¤ë¤è¤¦¤Ë¤·¤Æ¹¹¿·
hp = Mathf.Clamp(hp -= amount, 0, maxHp);
Debug.Log("»Ä¤êHP : " + hp);
¡¡¡¡¡¡¡¡// Hp ¤¬ 0 °Ê²¼¤Ë¤Ê¤Ã¤¿¾ì¹ç
if (hp <= 0) {
// Ç˲õ½èÍý¤ò¼Â¹Ô¤¹¤ë¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹
DestroyEnemy();
////*¡¡TODO ¤ò¼ÂÁõ¡¡¡*////
} else { // else ʸ¤òÄɲÃ
// ±é½ÐÍѤΥ¨¥Õ¥§¥¯¥ÈÀ¸À®
CreateHitEffect();
// ¥Ò¥Ã¥È¥¹¥È¥Ã¥×±é½Ð
StartCoroutine(WaitMove()); // else ʸ¤ÎÃæ¤Ë°Üư
} // else ʸ¤Î½ª¤ï¤ê¤Î¥Ö¥í¥Ã¥¯¤òÄɲÃ
////*¡¡¤³¤³¤Þ¤Ç¡¡*////
}
/// <summary>
/// ŨÇ˲õ½èÍý
/// </summary>
public void DestroyEnemy() {
¡¡¡¡¡¡¡¡// Kill ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤·¡¢tween ÊÑ¿ô¤ËÂåÆþ¤µ¤ì¤Æ¤¤¤ë½èÍý(DOPath ¤Î½èÍý)¤ò½ªÎ»¤¹¤ë
tween.Kill();
// TODO SE¤Î½èÍý
////*¡¡TODO ¤ò¼ÂÁõ¢¡¡*////
¡¡¡¡¡¡¡¡// Ç˲õ»þ¤Î¥¨¥Õ¥§¥¯¥È¤ÎÀ¸À®¤ä´ØÏ¢¤¹¤ë½èÍý
GameObject effect = Instantiate(BattleEffectManager.instance.GetEffect(EffectType.Destroy_Enemy), transform.position, Quaternion.identity);
Destroy(effect, 1.5f);
////*¡¡¤³¤³¤Þ¤Ç¡¡*////
// Ũ¤òÇ˲õ¤·¤¿¿ô¤ò¥«¥¦¥ó¥È¥¢¥Ã¥×¤¹¤ë
// ¤µ¤é¤Ë¤³¤Î¥á¥½¥Ã¥ÉÆâ¤Ç¡¢Å¨¤Î¾ðÊó¤ò´ÉÍý¤·¤Æ¤¤¤ë List ¤«¤é¤³¤ÎŨ¤Î¾ðÊó¤òºï½ü¤â¤·¤Æ¤â¤é¤¦¤¿¤á¤Ë¡¢EnemyController ¤Î¾ðÊó¤ò°ú¿ô¤ÇÅϤ·¤Æ¤¤¤ë
gameManager.CountUpDestoryEnemyCount(this);
¡¡¡¡¡¡¡¡// Ũ¥¥ã¥é¤ÎÇ˲õ
Destroy(gameObject);
}
/// <summary>
/// °Üư¤ò°ì»þÄä»ß
/// </summary>
public void PauseMove() {
tween.Pause();
}
/// <summary>
/// °Üư¤ò³«»Ï
/// </summary>
public void ResumeMove() {
tween.Play();
}
/// <summary>
/// ¥Ò¥Ã¥È¥¹¥È¥Ã¥×±é½Ð
/// </summary>
/// <returns></returns>
private IEnumerator WaitMove() {
tween.timeScale = 0.05f;
yield return new WaitForSeconds(0.5f);
tween.timeScale = 1.0f;
}
/// <summary>
/// AnimatorController ¤ò AnimatorOverrideController ¤òÍøÍѤ·¤ÆÊѹ¹
/// </summary>
private void SetUpAnimation() {
¡¡¡¡¡¡¡¡// ¤³¤Î¥¨¥Í¥ß¡¼¤Î EnemyData Æâ¤Ë¥¢¥Ë¥á¡¼¥·¥ç¥óÍѤΥǡ¼¥¿¤¬¤¢¤ë¤«³Îǧ¤¹¤ë
if (enemyData.enemyOverrideController != null) {
¡¡¡¡¡¡¡¡¡¡¡¡// ¥¢¥Ë¥á¡¼¥·¥ç¥ó¤Î¥Ç¡¼¥¿¤¬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢¥¢¥Ë¥á¡¼¥·¥ç¥ó¤ò¾å½ñ¤¤¹¤ë
anim.runtimeAnimatorController = enemyData.enemyOverrideController;
}
}
////*¡¡¤³¤³¤«¤é¥á¥½¥Ã¥É¤ò£±¤ÄÄɲá¡*////
/// <summary>
/// ¥Ò¥Ã¥È¥¨¥Õ¥§¥¯¥ÈÀ¸À®
/// </summary>
private void CreateHitEffect() {
// TODO SE
¡¡¡¡¡¡¡¡// Èï¥À¥á¡¼¥¸»þ¤Î¥Ò¥Ã¥È¥¨¥Õ¥§¥¯¥ÈÀ¸À®
GameObject effect = Instantiate(BattleEffectManager.instance.GetEffect(EffectType.Hit_Enemy) , transform.position, Quaternion.identity);
¡¡¡¡¡¡¡¡// ¥¨¥Õ¥§¥¯¥È¤òÇ˲õ
Destroy(effect, 1.5f);
}
////*¡¡¤³¤³¤Þ¤Ç¡¡*////
}
¡¡¥¹¥¯¥ê¥×¥È¤ò½¤Àµ¤·¤¿¤é¥»¡¼¥Ö¤ò¹Ô¤¤¤Þ¤¹¡£
¥³¥á¥ó¥È¤ò¤«¤¯