public void Update() { if (mAgent != null) { var npcOBJ = gameObject; var agent = mAgent; Vector3 direction = (agent.transform.position - npcOBJ.transform.position).normalized; Quaternion lookRotation = Quaternion.LookRotation(direction); //Char float angleChar = 0; if (mRequestLockBack) { Quaternion i_lookRotation = Quaternion.LookRotation((npcOBJ.transform.position - agent.transform.position).normalized); agent.transform.rotation = Quaternion.Slerp(agent.transform.rotation, i_lookRotation, Time.deltaTime * 5); angleChar = Quaternion.Angle(agent.transform.rotation, i_lookRotation); } //NPC npcOBJ.transform.rotation = Quaternion.Slerp(npcOBJ.transform.rotation, lookRotation, Time.deltaTime * 5); var angleNPC = Quaternion.Angle(npcOBJ.transform.rotation, lookRotation); if (angleChar <= 1 && angleNPC <= 1) { mAgent = null; if (mOnFinish != null) { var callBack = mOnFinish; mOnFinish = null; callBack(this); } } } }
public void StopLock() { // if(mOnFinish != null){ // Debug.LogWarning("Can't stop Lock when Waiting"); // return; // } mOnFinish = null; mRequest = false; }
public void StopLock() { // if(mOnFinish != null){ // Debug.LogWarning("Can't stop Lock when Waiting"); // return; // } mAgent = null; mOnFinish = null; }
public bool LookTo(GameObject agent, bool requestLockBack, OnFinishLook callback) { if (mOnFinish != null) { return(false); } mAgent = agent; mRequestLockBack = requestLockBack; mOnFinish = callback; return(true); }
public void Update() { if (mRequest) { transform.rotation = Quaternion.Slerp(transform.rotation, mLookRotation, Time.deltaTime * 5); var angleNPC = Quaternion.Angle(transform.rotation, mLookRotation); // Debug.Log(angleNPC.ToString()); if (angleNPC <= 0.5) { mRequest = false; if (mOnFinish != null) { var callBack = mOnFinish; mOnFinish = null; callBack(this); } } } }
public void LookTo(Vector3 d, OnFinishLook callback) { mLookRotation = Quaternion.LookRotation(d.normalized); mOnFinish = callback; mRequest = true; }
public void LookTo(Transform to, OnFinishLook callback) { Vector3 d = to.position - transform.position; LookTo(d, callback); }