0407 화살 피하기 게임
2021. 4. 7. 12:21ㆍunity
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, -1.0f, 0);
//화면 밖으로 나오면 오브젝트를 소멸시킨다.
if (transform.position.y < -5.0f)
{
Destroy(gameObject);
}
//충돌판정
Vector2 p1 = transform.position; //화살의 중심 좌표
Vector2 p2 = this.player.transform.position; //플레이어의 중심 좌표
Vector2 dir = p1 - p2;
float d = dir.magnitude;
float r1 = 0.5f;
float r2 = 1.0f;
if (d < r1 + r2)
{
//감독 스크립트에 플레이어와 화살이 충돌했다고 전달한다.
GameObject director = GameObject.Find("GameDirector");
director.GetComponent<GameDirector>().DecreaseHp();
//충돌한 경우는 화살을 지운다.
Destroy(gameObject);
}
}
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(arrowPrefab) as GameObject;
int px = Random.Range(-6, 7);
go.transform.position = new Vector3(px, 7, 0);
}
}
}
using UnityEngine;
public class PlayerController : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.LeftArrow))
{
transform.Translate(-3, 0, 0); //왼쪽으로 3움직인다.
}
else if (Input.GetKeyDown(KeyCode.RightArrow))
{
transform.Translate(3, 0, 0); //오른쪽으로 3움직인다.
}
}
}
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");
}
// Update is called once per frame
public void DecreaseHp()
{
this.hpGauge.GetComponent<Image>().fillAmount -= 0.1f;
}
}
Fill Amount = 이미지 표시 영역을 줄일 수 있다.
'unity' 카테고리의 다른 글
0407 3d 밤송이 던지기 (0) | 2021.04.07 |
---|---|
0407 애니메이션 구현하기 (0) | 2021.04.07 |
0407 오브젝트 호출, 거리 계산, ui 반영, 사운드 삽입 (0) | 2021.04.07 |
0405 오브젝트 회전시키기 (0) | 2021.04.05 |
0405 Magnitude 백터의 감산 (0) | 2021.04.05 |