一、初始时,调整摄像机相对玩家的位置
二、在脚本FightScene.cs通过监听鼠标移动方向控制摄像机在场景中的移动范围,定义单例方便外界调用
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using GameProtocol;
using GameProtocol.dto.fight;
using UnityEngine.UI;
using GameProtocol.constans;
using System.Collections.Generic;
//using Assets.Scripts.Fight;
public class FightScene : MonoBehaviour {
private int cameraH;//横向
private int cameraV;//纵向
private Camera cameraMain;
public static FightScene instance;
/// <summary>
/// 相机横移
/// </summary>
/// <param name="dir">鼠标左移,传过来-1,相机左移</param>
// 鼠标右移,传过来1,相机右移
public void CameraHMove(int dir)
{
if(cameraH!=dir)
cameraH = dir;
}
/// <summary>
/// 相机纵移
/// </summary>
/// <param name="dir">鼠标纵移,传过来1,相机上移</param>
//向传过来-1,相机下移
public void CameraVMove(int dir)
{
if(cameraV!=dir)
cameraV = dir;
}
void Start () {
//告诉服务器进入到了战斗场景
this.WriteMessage(Protocol.TYPE_FIGHT,0,FightProtocol.ENTER_CREQ,null);
cameraMain = Camera.main;//获取相机
instance = this;
}
/// <summary>
/// 相机移动
/// // 相机x的最小值-50 最大值80,z最小值-100 最大值40
/// </summary>
private void Update()
{
//相机左右移动
switch (cameraH)
{
case 1:
if (cameraMain.transform.position.x<80)
{
cameraMain.transform.position = new Vector3(cameraMain.transform.position.x + cameraH, cameraMain.transform.position.y, cameraMain.transform.position.z);
}
break;
case-1:
if (cameraMain.transform.position.x>-50)
{
cameraMain.transform.position = new Vector3(cameraMain.transform.position.x + cameraH, cameraMain.transform.position.y, cameraMain.transform.position.z);
}
break;
}
//相机前后移动
switch (cameraV)
{
case 1:
if (cameraMain.transform.position.z<40)
{
cameraMain.transform.position = new Vector3(cameraMain.transform.position.x , cameraMain.transform.position.y, cameraMain.transform.position.z+cameraV);
}
break;
case -1:
if (cameraMain.transform.position.z>-100)
{
cameraMain.transform.position = new Vector3(cameraMain.transform.position.x, cameraMain.transform.position.y, cameraMain.transform.position.z + cameraV);
}
break;
}
}
}
三、创建脚本 SceneProcess.cs,监听鼠标所在屏幕中的位置