unity 通过点击游戏小地图,来移动主相机功能实现
2017-04-15 16:24
706 查看
方法介绍
前提:小地图由另一相机实现 (mapCamera)通过 UI界面的RawImage 和 mapCamera 的视窗大小等比例 ,来实现点击位置的在世界坐标中的转换.
此脚本挂于Canvas中的小地图上
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI ; using UnityEngine .EventSystems ; public class smallmap : MonoBehaviour ,IPointerClickHandler { Vector3 a; Vector3 pointPSInLocal ; Camera[] c ; //获取场景中所有的相机 Transform point ; GameObject MainCamera; public static bool isGo = false ; static smallmap _instance; public static smallmap Instance{ get { if (_instance == null) { _instance = new smallmap (); } return _instance; } } void Start () { point = transform.FindChild ("Image"); pointPSInLocal = new Vector3 (0,0,0); MainCamera = GameObject.FindWithTag ("MainCamera"); c= Camera.allCameras; } // Update is called once per frame void Update () { if (isGo) { Vector3 n = new Vector3 (a.x, MainCamera .transform .position .y, a.z); Vector3 n1 = test (n); // Debug.Log (n1); MainCamera .transform .position = Vector3.MoveTowards (MainCamera .transform .position , n1 ,5); if (MainCamera.transform .position == n1 ){ // Debug.Log ("主相机位置 :" +transform.position); isGo = false; } } } #region IPointerClickHandler implementation public void OnPointerClick (PointerEventData eventData) { point.position = Input.mousePosition; Vector3 p = point.localPosition; pointPSInLocal = new Vector3 (p.x+125,p.y+125,p.z); a = c[1]. ScreenToWorldPoint ( pointPSInLocal); isGo = true; //主相机移动 } #endregion Vector3 test(Vector3 v ){ v.x = Mathf.Clamp (v.x ,23.6f,75.8f); v.z = Mathf.Clamp (v.z ,13.6f,56.7f); return v; } }
相关文章推荐
- 通过CSS切换图片效果,点击这个图片可以实现连接功能,这里的图片在一张大图片中,每个并要切换的图片没有切换,通过disposition定位的方式做
- 通过Surface实现相机功能 摄像机功能
- cocos2d-x-3.2塔防游戏开发1:背景,地图,obj,产生移动NPC的实现
- 关于Unity实现游戏录制功能的思考
- 【Unity快速实现小功能】快速添加一个鼠标点击物体的识别功能
- android 实现点击地图获取经纬度功能
- 在页面中,我们经常看到,一个button按钮,如果属标点击,就会触发一个窗口的显示,如果二次点击并可以隐藏,那么如何通过JAVA配合html来实现这一功能呢?
- 【Unity快速实现小功能】NGUI篇——实现点击有链接的文本
- [cocos2d-x][游戏开发]通过cocos2d-x实现简易飞机大战 05.游戏界面 主角飞机的移动
- 【Unity快速实现小功能】实现摄像机跟随角色移动功能
- javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
- Unity开发安卓游戏:1.实现移动设备屏幕自适应
- ArcEngine中使用上下左右键移动地图功能的实现
- google map上实现通过点击地图任意点进行标记并形成多边形
- Unity 通过点击屏幕控制人物移动。
- 【Unity快速实现小功能】NGUI篇——快速使用UIEventListener组件实现,按钮点击功能并添加相应的处理函数
- Unity中玩家通过点击行走 或 滑动屏幕行走的实现
- unity 通过摄像机模拟实现小地图
- 简单的JS 通过点击按钮实现DIV左右移动
- 【Unity快速实现小功能】动画系统学习小技巧篇(二)——摄像机跟随角色移动