Unity尝试制作王者荣耀(十六)——FightScene(二)调整摄像机照射玩家

  一、初始时,调整摄像机相对玩家的位置

 二、在脚本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,监听鼠标所在屏幕中的位置

发布了152 篇原创文章 · 获赞 24 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq_40229737/article/details/105515074