Unity小地图

using UnityEngine;
using System.Collections;

public class smalleMap : MonoBehaviour {

	GameObject plane;
	GameObject cube;

	float mapWidth;
	float mapHeight;
	float widthCheck;
	float heightCheck;
	float mapcube_x = 0;
	float mapcube_y = 0;

	bool keyUp ;
	bool keyDown;
	bool keyLeft;
	bool keyRight;

	public Texture map;
	public Texture map_cube;
	
	// Use this for initialization
	void Start () {
		plane = GameObject.Find ("Plane");
		cube = GameObject.Find ("third");
		Debug.Log (plane.transform.localRotation.w);
		float size_x = plane.GetComponent<MeshFilter> ().mesh.bounds.size.x;
		float scal_x = plane.transform.localScale.x;
		float size_z = plane.GetComponent<MeshFilter> ().mesh.bounds.size.z;
		float scal_z = plane.transform.localScale.z;

		mapWidth = size_x * scal_x;
		mapHeight = size_z * scal_z;

		widthCheck = mapWidth / 2;
		heightCheck = mapHeight / 2;
		check();
	}
	void OnGUI(){
		keyUp = GUILayout.RepeatButton ("go");
		keyDown = GUILayout.RepeatButton("back");
		keyLeft = GUILayout.RepeatButton ("left");
		keyRight = GUILayout.RepeatButton ("right");

		GUI.DrawTexture (new Rect (Screen.width - map.width, 0, map.width, map.height), map);
		GUI.DrawTexture (new Rect (mapcube_x, mapcube_y, map_cube.width, map_cube.height), map_cube);
	}
	// Update is called once per frame
	void Update () {
	
		if (keyUp) {
			cube.transform.Translate(Vector3.forward * Time.deltaTime * 5);
			check ();
		}
	}

	void check(){
		float x = cube.transform.position.x;
		float z = cube.transform.position.z;

		if (x >= widthCheck) {
			x = widthCheck;
		}
		if (x <= -widthCheck) {
			x = -widthCheck;
		}
		if (z >= heightCheck) {
			z = heightCheck;
		}
		if (z <= -heightCheck) {
			z = -heightCheck;
		}
		cube.transform.position = new Vector3 (x,cube.transform.position.y,z);

		//mapcube_x = (map.width / mapWidth * x) + ((map.width / 2) - (map_cube.width / 2)) + (Screen.width - map.width);

		mapcube_x = (map.width - map_cube.width) + (map.width/map_cube.width*x) + (Screen.width - map.width);
		mapcube_y = map.height - (map.height - map_cube.height) - map.height / mapHeight * z;
		//mapcube_y = map.height - ((map.height/mapHeight*z)+(map.height/2));
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值