1. 개발 현황
2. 금일 개발 내용
1. 도끼 무기 추가
1) RigidBody 2D 내 Gravity Scale 추가
2) 공격 방향 제어 로직 추가
void FireAxe()
{
Vector3 dir;
if(mShotCnt % 2 == 0)
{
dir.x = 1;
dir.y = 2;
dir.z = 0;
}
else
{
dir.x = -1;
dir.y = 2;
dir.z = 0;
}
dir = dir.normalized;
// Debug.Log(dir);
Transform bullet = mWeaponPool.Get().transform; // 부족한 것을 오브젝트 풀로 추가
bullet.parent = mWeaponPool.transform;
bullet.position = GameManager.instance.mPlayer.transform.position;
bullet.rotation = Quaternion.FromToRotation(Vector3.up, dir);
bullet.GetComponent<Range>().Init(Mathf.RoundToInt(GameManager.instance.mWeaponLastData[mId].Damage), GameManager.instance.mWeaponLastData[mId].Pierce, dir, GameManager.instance.mWeaponLastData[mId].Speed);
}
2. 마늘 무기 추가
1) OnTriggerEnter2D 로직 추가
2) Coroutine 추가
IEnumerator KnockBack()
{
//yield return null; // 1 프레임 쉬기
//yield return new WaitForSeconds(2f); // 2초 쉬기
yield return mWaitFixedFrame;
Vector3 playerPos = GameManager.instance.mPlayer.transform.position;
Vector3 dirVec = transform.position - playerPos;
mRigid.AddForce(dirVec.normalized * mKnockBackForce, ForceMode2D.Impulse);
}
IEnumerator HitGalic()
{
yield return mWaitFixedFrame;
mHealth -= mGarlicDamage;
if (mHealth > 0)
{
StartCoroutine(KnockBack());
mAnim.SetTrigger("Hit");
}
else
{
mIsLive = false;
mIsGarlic = false;
mColl.enabled = false;
mRigid.simulated = false;
mSpriter.sortingOrder = 1;
mAnim.SetBool("Dead", true);
GameManager.instance.mPlayerData.Kill++;
GameManager.instance.GetExp(mDropExp);
}
}
3) 범위 제어 옵션 추가
melee.localScale = Vector3.one * GameManager.instance.mWeaponLastData[mId].ProjectileSize;
3. HUD 프리팹 추가
1) 목적: Item 추가에 따른 확장 가능성을 키우기 위함
2) 적용방안:
- Json 데이터 개수에 따라 GameObject 배열 크기 가변
public GameObject mRootHUD;
GameObject[] mItems;
void Awake()
{
mRect = GetComponent<RectTransform>();
mItems = new GameObject[GameManager.instance.mWeaponJsonData.Length + GameManager.instance.mPerkJsonData.Length];
mItems[0] = mRootHUD;
for (int i = 1; i < mItems.Length; ++i)
{
mItems[i] = Instantiate(mRootHUD);
mItems[i].GetComponent<HUDItem>().mId = i;
mItems[i].transform.SetParent(mRootHUD.transform.parent);
mItems[i].transform.name = "Item " + i;
mItems[i].transform.localScale = mRootHUD.transform.localScale;
}
}
3. TODO
1. 무기 구현
1) 거미줄 공격
2) 폭발형 공격
3) 원거리 폭발형 공격
2. 캐릭터 구현
3. 골드 및 경험치 드롭 구현
4. 필드 장애물 구현
5. 필드 드롭 아이템 구현
6. 필드 이벤트 구현
728x90
반응형
'--------게임만들기-------- > |unity| by C#' 카테고리의 다른 글
[Unity] Day8 - 무기 프리팹 일원화, 아이템 드롭, 픽업, 오디오, 세팅창 구현, 스크린 제어(TMP_Dropdown, Toggle, 스크립트 제어) (0) | 2024.06.09 |
---|---|
[Unity] Day7 - 원거리 폭발형 무기 구현, HUD 프리펩 구현, 업적 시스템 구현 (0) | 2024.06.07 |
[Unity] Day5 - 단검 무기 구현, 버그 개선 (position, localPosition) (0) | 2024.06.06 |
[Unity] localPosition, position (0) | 2024.06.05 |
[Unity] Day4 - 싱글턴 구현 완료, 투사체 방사 로직 구현 (0) | 2024.06.05 |