๋ฌผ์ฒด๋ฅผ 0~360๋„ ๋Œ๋ฆฌ๋ ค๊ณ ํ•˜๋Š”๋ฐ


๊ทธ๋ƒฅ rotation์— ๋„ฃ์œผ๋ฉด ์ž˜ ๋Œ์•„๊ฐ€๋Š”๊ฑธ ํ™•์ธํ›„


๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์›€์ง์ด๊ฒŒ ํ•˜๊ธฐ์œ„ํ•ด ๊ทธ ๋’ค slerp๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋Š”๋ฐ


์ฟผํ„ฐ๋‹ˆ์–ธ์˜ ํŠน์ง•๋•Œ๋ฌธ์ด๋ผ๋‚˜ ๋ญ๋ผ๋‚˜ -180~180์‚ฌ์ด์˜ ๊ฐ’์œผ๋กœ๋งŒ ์ด๋™์ด ๋˜์„œ


๋ฌผ์ฒด๊ฐ€ ํ•œ์ชฝ๋ฐฉํ–ฅ์œผ๋กœ ์ญ‰ ๋Œ์•„๊ฐ€๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ


180-120๋„๋ฅผ ๊ณ„์† ์™”๋‹ค๊ฐ”๋‹ค ํ•˜๋„ค์š”.


dot product๋ฅผ ์ด์šฉํ•˜๊ฑฐ๋‚˜ ํ•ด์„œ ์ด๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ ๋Š” ํ•˜๋Š”๋ฐ ์ œ๊ฐ€ ๊ทธ์ชฝ ์ง€์‹์ด ์งง์•„์„œ ํ˜น์‹œ ์ข€ ๋” ์‰ฌ์šด๋ฐฉ๋ฒ•์ด๋‚˜ ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค...



๊ธฐ๋ณธ์ ์œผ๋กœ ์œ„์˜ ๊ฐ’๋“ค ์ด์šฉํ• ๋•Œ ์˜ค์ผ๋Ÿฌ ๊ฐ์„ ์ด์šฉํ•ด์„œ ์ ‘๊ทผํ–ˆ์Šต๋‹ˆ๋‹ค.



//์ถ”๊ฐ€

public float velocity=5f;

ย  ย  // Start is called before the first frame update

ย  ย  void Start()

ย  ย  {

ย  ย  ย  ย ย 

ย  ย  }


ย  ย  // Update is called once per frame

ย  ย  void Update()

ย  ย  {

ย  ย  ย  ย  transform.rotation = Quaternion.Slerp(transform.rotation, destinationQuaternion, velocity*Time.unscaledDeltaTime);

ย  ย  }

ย  ย  public void turnobject()

ย  ย  {

ย  ย  ย  ย  Vector3 vector = new Vector3();

ย  ย  ย  ย  vector = Quaternion.AngleAxis(60, new Vector3(1,0,0)) * vector;

ย  ย  ย  ย  Debug.Log(vector);

ย  ย  ย  ย  destinationQuaternion = Quaternion.Euler( gameObject.transform.rotation.eulerAngles.x+60f, gameObject.transform.rotation.eulerAngles.y , gameObject.transform.rotation.eulerAngles.z);

ย  ย  }

ย  ย  public void OnMouseDown()

ย  ย  {

ย  ย  ย  ย  turnobject();

ย  ย  }

}


์›๋ž˜๋Š” ๊ทธ๋ƒฅ ๋ฒ„ํŠผ๋ˆ„๋ฅด๋ฉด transform.rotation์— ์˜ค์ผ๋Ÿฌ๊ฐ’ ๋บ€๊ฑธ ๋„ฃ์—‡์—ˆ์Šต๋‹ˆ๋‹ค.