{
float vertical = Input.GetAxis("Vertical");
float horizontal = Input.GetAxis("Horizontal");
transform.position += new Vector3(horizontal, vertical, vertical) * (Time.deltaTime * 3f);
//transform.Translate(new Vector3(horizontal,vertical,vertical) *(Time.deltaTime * 3f));
//RotateToTarget2D(transform, target.transform.position, 3f);
//var transformPosition = target.transform.position - transform.position;
if (Input.GetMouseButtonDown(0))
{
var mouse = Input.mousePosition;
mouse = Camera.main.ScreenToWorldPoint(Input.mousePosition);
mouse = new Vector3(mouse.x, mouse.y, this.transform.position.z);
LaunchProjectile(mouse, 0);
LaunchProjectile(mouse, 30);
LaunchProjectile(mouse, -30);
}
}
GameObject LaunchProjectile(Vector3 targetPoint, float angle)
{
var projectileObject = Instantiate(projectile, this.transform.position,
Quaternion.identity);
projectileObject.transform.Rotate((GetQuaternionBetweenPoints(this.transform.position, targetPoint).eulerAngles
+ new Vector3(0,0, angle)));
return projectileObject;
}
float GetAngleBetweenPoints(Vector3 self, Vector3 target)
{
Vector3 selfToTargetVector = target - self;
return Mathf.Atan2(selfToTargetVector.y, selfToTargetVector.x) * Mathf.Rad2Deg;
}
Quaternion GetQuaternionBetweenPoints(Vector3 self, Vector3 target)
{
return Quaternion.AngleAxis(GetAngleBetweenPoints(self, target), Vector3.forward);
}
λ§μΉ¨ λλ νλ €κ³ νλκ±΄λ° λ΄κ° νλ €κ³ νλκ±°λ κ·Έλ λ€μ΄λμ²λΌ ν¬λ¬Όμ 그리면μ λκ°λκ±°μμ μ€κ°μ λλ νλ‘μ νΈ κ²Ήμ³μ μ€νκ²Έ νλ μμ±ν¨
μ€ λκ° λ κ²κ°κΈ°λ νλ€ μ°Έκ³ ν κ² κ³ λ§μ ν½
μμ§μ΄λ μ€μ·μΊ‘μ³ λλ‘ν¨? μ€μ·λ 보μ¬μ€
λλ gifcamμ΄λκ±° μ¨μ€ λ€μ΄λ²μ κ²μνλ©΄ λμ΄
μ¬μ¬μ©μ±μ΄ νΈνκ² μμ ν΄λ΄