์ œ๊ฐ€ ์„ค๋ช…์„ ์ž˜ ๋ชปํ•ด์„œ ์•„์˜ˆ ์›€์งค๋กœ ๋งŒ๋“ค์–ด์™”์–ด์š”


์˜ค๋ฅธ์ชฝ์ด ๊ฒŒ์ž„ํ™”๋ฉด, ์™ผ์ชฝ์€ ์œ„์—์„œ ๋ณธ ํ™”๋ฉด์ž…๋‹ˆ๋‹ค


์–˜๋Š” bullet.transform.rotation = transform.rotation ์ผ๋•Œ

this๊ฐ€ ํ•ญ์ƒ ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๋ฐ”๋ผ๋ณด๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ๋ฐฉํ–ฅ์œผ๋กœ ์˜๊ณ  3์—ฐ๋ฐœ์ด ํ•ญ์ƒ ๊ฐ™์€ ๋ฐฉํ–ฅ์œผ๋กœ ๋‚˜๊ฐ€์š”


์–˜๋Š” player์„ target์œผ๋กœ ์žก์•„๋†“๊ณ  target.transform.position - transform.position ์„ var๋กœ ํ•˜๋‚˜ ์žก์•„์„œ ํ•œ๊ฑด๋ฐ์š”

์™ผ์ชฝ ํ™”๋ฉด์ด ๋”ฑ ์ œ๊ฐ€ ์›ํ•˜๋Š” ํ™”๋ฉด์ž…๋‹ˆ๋‹ค

ํ”Œ๋ ˆ์ด์–ด๋ฅผ ํ–ฅํ•ด ๊ฐ€๋Š”๋ฐ z์ถ•์€ ๋ณ€ํ™” ์—†์ด

๊ทผ๋ฐ ๋ณด์‹œ๋ฉด ์•„์‹œ๊ฒ ์ง€๋งŒ target.transform.position์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ›์•„์™€์„œ 3์—ฐ๋ฐœ์ด ๋ฐฉํ–ฅ์ด ํํŠธ๋Ÿฌ์ ธ์š”...


์ด๊ฑฐ๋Š” ๋Œ“๊ธ€์—์„œ ๋‹ฌ์•„์ฃผ์‹  eulerAngles ์ด์šฉํ•œ๊ฑด๋ฐ ์ œ๊ฐ€ ๋ญ˜ ์ž˜๋ชปํ•œ๊ฑด์ง€ ์•ˆ์›€์ง์—ฌ๋„ 3์—ฐ๋ฐœ์ด ํํŠธ๋Ÿฌ์ง‘๋‹ˆ๋‹ค...ใ… ใ… 



์Šคํฌ๋ฆฝํŠธ ์ฒจ๋ถ€

public class enemy1Frame : MonoBehaviour {

ย ย ย  private Transform target;

ย ย ย  float shootDelay = 3f;
ย ย ย  float shootTimer = 0;

ย ย ย  float patternDelay = 18f;
ย ย ย  float patternTimer = 16f;

ย ย ย  void Start ()
ย ย ย  {
ย ย ย ย ย ย ย  target = GameObject.FindGameObjectWithTag("Player").transform;
ย ย ย  }

ย ย ย  void Update()
ย ย ย  {
ย ย ย ย ย ย ย  Move();
ย ย ย  }

ย ย ย  void Move()
ย ย ย  {
ย ย ย ย ย ย ย  if (transform.position.y <= 2.5f)
ย ย ย ย ย ย ย  {
ย ย ย ย ย ย ย ย ย ย ย  transform.position = new Vector3(transform.position.x, 2.5f, transform.position.z);
ย ย ย ย ย ย ย ย ย ย ย  if (patternTimer <= 9f)
ย ย ย ย ย ย ย ย ย ย ย  {
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย  transform.rotation = Quaternion.RotateTowards(transform.rotation, Quaternion.LookRotation(transform.position - target.position), Time.deltaTime * mapRotation.rotatingTime * 100f);
ย ย ย ย ย ย ย ย ย ย ย  }

ย ย ย ย ย ย ย ย ย ย ย  if (patternTimer > 9f)
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย  pattern();
ย ย ย ย ย ย ย ย ย ย ย  if (patternTimer > patternDelay)
ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย  patternTimer = 0;
ย ย ย ย ย ย ย ย ย ย ย  patternTimer += Time.deltaTime * mapRotation.rotatingTime * 10f;
ย ย ย ย ย ย ย  }

ย ย ย ย ย ย ย  //์ผ์ • ๊ฑฐ๋ฆฌ ์ดํ•˜๋กœ ๋‚ด๋ ค์˜ค๋ฉด ๋ฉˆ์ถ”๊ณ  ํ”Œ๋ ˆ์ด์–ด๋ฅผ ํ–ฅํ•ด ๋ฐ”๋ผ๋ด„ + ํŒจํ„ด์‹คํ–‰(ํŒจํ„ด์‹คํ–‰์ค‘์—๋Š” ํ”Œ๋ ˆ์ด์–ด๋ฅผ ๋ณด๋Š”๊ฒƒ์„ ๋ฉˆ์ถค)


ย ย ย ย ย ย ย  if (transform.position.y > 2.5f)
ย ย ย ย ย ย ย  {
ย ย ย ย ย ย ย ย ย ย ย  transform.Translate(Vector3.back * Time.deltaTime * 5 * mapRotation.rotatingTime);
ย ย ย ย ย ย ย  }

ย ย ย ย ย ย ย  //์ผ์ • ๊ฑฐ๋ฆฌ๊ฐ€ ๋ ๋•Œ๊นŒ์ง€ ๋‚ด๋ ค์˜ด

ย ย ย  }

ย ย ย  void pattern()
ย ย ย  {
ย ย ย ย ย ย ย  if (shootTimer > shootDelay)
ย ย ย ย ย ย ย  {
ย ย ย ย ย ย ย ย ย ย ย  BulletSetting1(enemyObjManager.Call().GetObject("Bullet"));

ย ย ย ย ย ย ย ย ย ย ย  shootTimer = 0;
ย ย ย ย ย ย ย  }
ย ย ย ย ย ย ย  shootTimer += Time.deltaTime * mapRotation.rotatingTime * 10f;
ย ย ย  }

ย ย ย  void BulletSetting1(GameObject _bullet)
ย ย ย  {
ย ย ย ย ย ย ย  if (_bullet == null) return;

ย ย ย ย ย ย ย  _bullet.transform.position = transform.position;
ย ย ย ย ย ย ย  _bullet.transform.rotation = transform.rotation;

ย ย ย ย ย ย ย  _bullet.SetActive(true);
ย ย ย  }
}