Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- rendermonkey
- C++
- 화살표 함수
- swipe
- 비주얼스튜디오
- 화살표 메서드
- 다중상속
- 가변배열
- Unity
- visualstudio2022
- 이득우
- python
- premake5
- 그림자 효과
- c++class
- 게임만들기
- 렌더몽키
- 이득우언리얼
- 3차원배열
- uidesign
- 셰이더
- c#
- IMGUI
- 언리얼
- 파이썬
- 공부
- 화살피하기
- 표창던지기
- 배열문제
- 유니티
Archives
- Today
- Total
신입 개발자 공부 과정
Unity - CatEscape 물체 피하기 게임 본문
*프리팹(prefab)=설계도 / 게임 오브젝트를 파일화 된것 (재사용하기 위해)
*프리팹을 hierachy창에 가져가면 인스턴스화 하면서 packing되어있다(unpack할수도있다)
*프리팹 베리언트=일부 변화를 할 수 있는 프리팹
목표= 플레이어를 움직여 떨어지는 화살을 피하는 게임
Action=
1. 화면 중앙에 플레이어 표시하고
2. 오른쪽 위에는 HP게이지를 표시
3. 화살을 랜덤으로 떨어지게 생성한다
4. 좌우 화살표 버튼으로 움직여 화살을 피하게한다
5. 화살에 맞으면 HP게이지가 줄어든다
PC에서 할경우
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GameDirector : MonoBehaviour
{
GameObject hpGauge;
// Start is called before the first frame update
void Start()
{
this.hpGauge = GameObject.Find("hpGauge");
}
public void DecreaseHp()
{
this.hpGauge.GetComponent<Image>().fillAmount -= 0.1f;
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ArrowGenerator : MonoBehaviour
{
public GameObject arrowPrefab;
float span = 1.0f;
float delta = 0; //시간 누적
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
this.delta += Time.deltaTime;
if(this.delta >= this.span)
{
this.delta = 0;
GameObject go = Instantiate<GameObject>(this.arrowPrefab);
int px = Random.Range(-6, 7);
go.transform.position = new Vector3(px, 7, 0);
}
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ArrowController : MonoBehaviour
{
GameObject player;
// Start is called before the first frame update
void Start()
{
this.player = GameObject.Find("player");
}
// Update is called once per frame
void Update()
{
transform.Translate(0, -0.1f, 0);//속도 -0.1로 떨어진다
if(transform.position.y< -4.03f)//-4.03에 도착하면 사라진다
{
Destroy(gameObject);
}
Vector2 p1 = transform.position;//화살의 중심 좌표
Vector2 p2 = this.player.transform.position;//플레이어의 중심 좌표
Vector2 dir = p1 - p2;
float d = dir.magnitude;//중심간의 거리
float r1 = 0.5f;//화살의 반경이 0.5
float r2 = 1.0f;//플레이어의 반경이 1.0
if(d<r1+r2)//화살의 반경과 플레이어 반경을 합친 값이 2개의 값의 거리보다 적으면(충돌)
{
GameObject director = GameObject.Find("GameDirector");//gamedirector에게 맞으면 피깍이게
director.GetComponent<GameDirector>().DecreaseHp();
Destroy(gameObject);//화살을 제거
}
// private void OnDrawGizmos()
//{
//}
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
public void LButtonDown()
{
transform.Translate(-2, 0, 0);
}
public void RButtonDown()
{
transform.Translate(2, 0, 0);
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.LeftArrow))//왼쪽으로 3 움직인다
{
transform.Translate(-2, 0, 0);
}
if (Input.GetKeyDown(KeyCode.RightArrow))//오른쪽으로 3 움직인다
{
transform.Translate(2, 0, 0);
}
}
}
'C# > 수업 내용' 카테고리의 다른 글
과제 ninjastar <표창 날리기 게임> (0) | 2022.01.18 |
---|---|
1/17 Unity - swipe car 자동차 멈추기 게임 (0) | 2022.01.17 |
1/17 Unity - 게임 기획/유니티 교과서 룰렛만들기 (0) | 2022.01.17 |
c# out, ref, Int32.TryParse,TryParse(String, Int32) 과 (0) | 2022.01.12 |
1/11 - (테이블만들기, Json변환, 파일읽고쓰기, 직렬화, 역직렬화, 사전넣기, 싱글톤만들기) (0) | 2022.01.12 |