<div>using UnityEngine;</div> <div>using System.Collections;</div> <div><br></div> <div>public class Player3 : MonoBehaviour</div> <div>{</div> <div> public Animation anim1;</div> <div> public CharacterController CC;</div> <div><br></div> <div> RaycastHit Hit;</div> <div> Vector3 Vdir;</div> <div> Vector3 v1;</div> <div> Vector3 v2;</div> <div> Quaternion dir;</div> <div> </div> <div> float MoveSpeed = 5f;</div> <div> float TurnSpeed = 5f;</div> <div> float Distancedir;</div> <div> </div> <div><br></div> <div> bool MoveOn;</div> <div> bool AttackOn;</div> <div> bool MonsterHiting;</div> <div><br></div> <div><br></div> <div> void Update()</div> <div> {</div> <div> </div> <div> if (Input.GetMouseButton(0))</div> <div> {</div> <div> Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out Hit, Mathf.Infinity, (1 << 8) | (1<<9));</div> <div> if (!MoveOn) MoveOn = true;</div> <div><br></div> <div> if(Hit.collider.tag == "Monster")</div> <div> {</div> <div> MonsterHiting = true;</div> <div> Vdir = Hit.collider.transform.position;<span style="font-size:9pt;"> </span></div> <div> }</div> <div> else</div> <div> {</div> <div> MonsterHiting = false;</div> <div> Vdir = Hit.point;</div> <div> }</div> <div> }</div> <div> if(AttackOn)</div> <div> {</div> <div> anim1.CrossFade("Attack", 1f);</div> <div> Destroy(Hit.collider.gameObject, 1f);</div> <div> }</div> <div><br></div> <div> else if (MoveOn)</div> <div><br></div> <div> {</div> <div> v1 = (Vdir - transform.position).normalized;</div> <div> Distancedir = Vector3.Distance(Vdir, transform.position);</div> <div><br></div> <div> CC.Move(v1 * MoveSpeed * Time.deltaTime);</div> <div> CC.Move(new Vector3(0, -0.5f, 0));</div> <div><br></div> <div> dir = Quaternion.LookRotation(v1);</div> <div> v2.y = dir.eulerAngles.y;</div> <div> dir.eulerAngles = v2;</div> <div><br></div> <div> transform.rotation = Quaternion.Slerp(transform.rotation, dir, TurnSpeed * Time.deltaTime);</div> <div><br></div> <div><br></div> <div> if (Distancedir > 2f)</div> <div> {</div> <div> anim1.CrossFade("Run", 2f);</div> <div> MoveSpeed = 5f;</div> <div> }</div> <div> else if (Distancedir > 0.25f )</div> <div> {</div> <div> anim1.CrossFade("Walk", 1f);</div> <div> MoveSpeed = 3.5f;</div> <div> }</div> <div> else</div> <div> {</div> <div> if (MoveOn)</div> <div> </div> <div> MoveOn = false;</div> <div><br></div> <div> if (MonsterHiting)</div> <div> {</div> <div> AttackOn = true;</div> <div> }</div> <div> else</div> <div> {</div> <div> anim1.CrossFade("idle", 0.25f);</div> <div> }<span style="font-size:9pt;"> </span></div> <div> }</div> <div> }</div> <div><span style="font-size:9pt;"> }</span></div> <div>}</div> <div><br></div> <div>이렇게 만들었는데 이게 플레이어가 마우스로 클릭을 하면 그 좌표로 달려가다가 가까이 갈수록 걷고 도착하면 멈춘다 </div> <div> </div> <div>그리고 tag 가 monster 인 오브젝트를 클리기하면 Attack 하려고 만들었는데 </div> <div><br></div> <div>일단 플레이어가 도착을하면 idle 이 적용 되서 멈춰야 되는데 계속 Walk가 동작되네요 ;; 그리고</div> <div><br></div> <div>태그가 몬스터인 오브젝트를 누르면 눌리기는 하는데 어택이 동작을 안하고 뭐가 문제인지 알 수 있을 까여 ?</div> <div><br></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.