查看: 1509|回复: 1
打印 上一主题 下一主题

[其他] 摄像机移动 像红警、lol一样鼠标触碰到屏幕边缘自动移动

[复制链接]

711

主题

10

听众

5805

积分

高级设计师

Rank: 6Rank: 6

纳金币
2954
精华
3

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2015-7-31 01:05:12 |只看该作者 |倒序浏览

首先 在场景内创建一个空的Gameobject。将摄像机放到Gameobject下;脚本加给 Gameobject;
  1. private float speed = 100;//摄像机移动速度
  2.         //水平和垂直移动速度
  3.         private float horizontalMoveSpeed = 0.5f;  
  4.         private float verticalMoveSpeed = 0.5f;
  5.         //屏幕上下左右标记
  6.         private int topTag=8;
  7.         private int leftTag=4;
  8.         private int rightTag=1;
  9.         private int bottonTag=2;

  10.         void Update () {
  11.                 Vector3 mousePos = Input .mousePosition;//获的当前鼠标坐标
  12.                 //边界最小值
  13.                 float  widthBorder = Screen.width / 50;
  14.                 float  heightBorder = Screen.width / 50;
  15.                 float x = 0f;
  16.                 float y = 0f;
  17.                 //当前鼠标位置标记
  18.                 int  posTag = 0;
  19.                 if (widthBorder <= mousePos.x && mousePos.x <= Screen.width - widthBorder &&
  20.                     heightBorder <= mousePos.y && mousePos.y <= Screen.height - heightBorder) {
  21.                         transform .Translate (x, 0, y);
  22.                 } else {
  23.                         if (mousePos.y > Screen.height - heightBorder)  
  24.                                 posTag = posTag | topTag;   
  25.                         if (mousePos.x < widthBorder)  
  26.                                 posTag = posTag | leftTag;  
  27.                         if (mousePos.y < heightBorder)   
  28.                                 posTag = posTag | bottonTag;  
  29.                         if (mousePos.x > Screen.width - widthBorder)  
  30.                                 posTag = posTag | rightTag;
  31.                         //  判断当前状态
  32.                         switch (posTag) {  
  33.                         case 0:
  34.                                 break;   
  35.                         case 1:
  36.                                 x = horizontalMoveSpeed;
  37.                                 break;   
  38.                         case 2:
  39.                                 y = -verticalMoveSpeed;
  40.                                 break;   
  41.                         case 3:
  42.                                 x = horizontalMoveSpeed;
  43.                                 y = -verticalMoveSpeed;
  44.                                 break;   
  45.                         case 4:
  46.                                 x = -horizontalMoveSpeed;
  47.                                 break;  
  48.                         case 6:
  49.                                 x = -horizontalMoveSpeed;
  50.                                 y = -verticalMoveSpeed;
  51.                                 break;  
  52.                         case 8:
  53.                                 y = verticalMoveSpeed;
  54.                                 break;  
  55.                         case 9:
  56.                                 x = horizontalMoveSpeed;
  57.                                 y = verticalMoveSpeed;
  58.                                 break;  
  59.                         case 12:
  60.                                 x = -horizontalMoveSpeed;
  61.                                 y = verticalMoveSpeed;
  62.                                 break;  
  63.                         default:
  64.                                 break;   
  65.                         }  
  66.                        
  67.                         x *= speed * Time.deltaTime;  
  68.                         y *= speed * Time.deltaTime;  
  69.                        
  70.                         transform.Translate (x,0, y);   
  71.                 }
  72.         }
复制代码
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏1 支持支持0 反对反对0
回复

使用道具 举报

0

主题

2

听众

284

积分

设计实习生

Rank: 2

纳金币
39
精华
0

最佳新人

沙发
发表于 2016-5-23 14:24:23 |只看该作者
点赞点赞点
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-8-19 14:07 , Processed in 0.155203 second(s), 27 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部