unity中控制人物移动有很多方法,经过这么长时间的学习后,我总结了一些;
创新互联成立于2013年,我们提供高端成都网站建设、成都网站制作、成都网站设计公司、网站定制、网络营销推广、成都小程序开发、微信公众号开发、成都网站推广服务,提供专业营销思路、内容策划、视觉设计、程序开发来完成项目落地,为成都石雕企业提供源源不断的流量和订单咨询。利用transform的translate方法控制人物移动;(结合动画的控制就不说了)
float mx = Input.GetAxis("Horizontal") * moveSpeed * Time.deltaTime; float mz = Input.GetAxis("Vertical") * moveSpeed * Time.deltaTime; transform.translate(mx,0,mz);
2.利用Rigidbody组件rigidbody.MovePosition()方法进行移动(包含动画控制部分),鼠标控制人物移动;
void FixedUpdate() { float h=Input.GetAxis("Horizontal"); float v=Input.GetAxis("Vertical"); Move(h,v); Turning(); Animating(h,v); } void Move(float h,float v) { Vector3 movement; movement.Set(h,0,v); movement=movement.normalized*speed*Time.deltaTime; rigidbody.MovePosition(transform.position+movement); } void Turning() { Ray camRay=Camera.main.ScreenPointToRay(Input.mousePosition); RayCastHit hitInfo; if(Physics.RayCast(camRay,out hitInfo,distance,floorMask)) { Vector3 playerToMouse=hitInfo.point-transform.position; playerToMouse.y=0; Quaternion newRotation=Quaternion.LookRotation(playerToMouse); rigidbody.MovePosition(newRotation); } } void Animating(float h,float v) { bool walking=h!=0||v!=0; m_ator.SetBool("Walk",walking); }
3.还有一种就是利用Rigidbody的velocity属性来控制人物移动了
float moveSpeed =10; Animator m_ator; Rigidbody rigid; Vector3 m_Pos; void Start () { m_ator = transform.GetComponent(); rigid = transform.GetComponent (); m_Pos = transform.position; } void Update () { float mx = Input.GetAxis("Horizontal") ; float mz = Input.GetAxis("Vertical") ; Vector3 nowVelocity = rigid.velocity; if (Mathf.Abs(mx) > 0.01f || Mathf.Abs(mz) > 0.01f) { m_Pos = transform.position; transform.LookAt(m_Pos+new Vector3(mx, 0, mz)); rigid.velocity = new Vector3(mx * moveSpeed, nowVelocity.y * moveSpeed, mz * moveSpeed); m_ator.SetBool("Walk",true); } else { rigid.velocity = new Vector3(0,nowVelocity.y*moveSpeed,0); m_ator.SetBool("Walk",false); } }
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。