Unity 人物跟谁手指的移动(第一种方式)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Unity 人物跟谁手指的移动(第一种方式),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2606字,纯文字阅读大概需要4分钟。
内容图文
![Unity 人物跟谁手指的移动(第一种方式)](/upload/InfoBanner/zyjiaocheng/1138/074946c56b7a43ea9957a3082c528f83.jpg)
长夜漫漫无心睡眠,敲敲代码,越敲越来劲! 我发现好多小朋友都在玩熊出没之xxxx这个游戏,居然打了一下午都没玩通第2关,我把测试也叫来陪我一起玩!
结果他也打不通,我再去叫策划,他也没打过,我去叫主管,他还是没打过,我再回去叫测试使用游戏修改大师,修改宝石买完全部的装备!结果他还是没打过!
(这款游戏,让我人生都变得没有了意义!)
人物跟随手指的移动而移动:
第一种方式: 手指移动了多少,主角就移动多少!(我使用的这种方式,存在问题,手指过快滑动,主角会慢慢跟手指有了距离!)
第二种方式: 手指移动到哪里,主角就慢慢移动到手指所在的位置!(还没写代码,理论上不会出现第一种问题),建议采用这种方式实现
第一种方式的部分代码实现:
using UnityEngine; using System.Collections; /// <summary> /// 人物的移动 /// </summary> public class PlayerMove : MonoBehaviour { private bool isMove; private Vector3 recordMouseDownPosition; //记录鼠标单击的位子publicfloat speed = 1; public UISprite gameBackground; public UI2DSprite player; public UI2DSpriteAnimation playerAnimation; public Sprite playerLeftState; public Sprite playerRightState; privatefloat areaWidth; privatefloat areaHeight; //角色移动的边界void Awake() { //获取到背景Sprite的宽度和高度 areaWidth = gameBackground.drawingDimensions.z - player.drawingDimensions.z; areaHeight = gameBackground.drawingDimensions.w - player.drawingDimensions.w; } //开始移动publicvoid PlayerStartMove() { isMove = true; recordMouseDownPosition = Input.mousePosition; } //结束移动publicvoid PlayerEndMove() { isMove = false; } void LateUpdate() { if (isMove) { //鼠标当前坐标-单击被记录的坐标 Vector3 dir = Input.mousePosition - recordMouseDownPosition; //切换左右人物图片状态if (dir.x > 0) { Debug.Log("切换成左"); playerAnimation.enabled = false; player.nextSprite = playerRightState; } elseif (dir.x < 0) { Debug.Log("右转弯图片"); playerAnimation.enabled = false; player.nextSprite = playerLeftState; } elseif (dir.x == 0) { playerAnimation.enabled = true; } //让人物跟随手指的方向移动this.transform.localPosition = new Vector3( transform.localPosition.x + dir.x * 0.7f, transform.localPosition.y + dir.y * 0.7f, transform.localPosition.z); //防止跑出右边界if (transform.localPosition.x > areaWidth && dir.x > 0) { this.transform.localPosition = new Vector3( areaWidth, transform.localPosition.y, transform.localPosition.z); } //防止跑出左边界if (transform.localPosition.x < -areaWidth && dir.x < 0) { this.transform.localPosition = new Vector3( -areaWidth, transform.localPosition.y, transform.localPosition.z); } //防止跑出上边界if (transform.localPosition.y > areaHeight && dir.y > 0) { this.transform.localPosition = new Vector3( transform.localPosition.x, areaHeight, transform.localPosition.z); } //防止跑出下边界if (transform.localPosition.y < -areaHeight && dir.y < 0) { this.transform.localPosition = new Vector3( transform.localPosition.x, -areaHeight, transform.localPosition.z); } recordMouseDownPosition = Input.mousePosition; } } }
原文:http://www.cnblogs.com/plateFace/p/4235097.html
内容总结
以上是互联网集市为您收集整理的Unity 人物跟谁手指的移动(第一种方式)全部内容,希望文章能够帮你解决Unity 人物跟谁手指的移动(第一种方式)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。