zoukankan      html  css  js  c++  java
  • 小地图

    using UnityEngine;
    using System.Collections;
    
    public class CreateMap : MonoBehaviour {
    
        protected GameObject plane;
        protected GameObject cube;
    
        protected float mapWidth;
        protected float mapHeight;
        protected float widthCheck;
        protected float heightCheck;
    
        protected float mapCube_x=0;
        protected float mapCube_y=0;
    
        public Texture map;
        public Texture map_cube;
    
        // Use this for initialization
        void Start () {
            plane =GameObject.Find("Plane");
            cube=GameObject.Find("Cube");
            float size_x=plane.GetComponent<MeshFilter>().mesh.bounds.size.x; //默认宽度
            float scale_x=plane.transform.localScale.x; //默认缩放比例
            float size_z=plane.GetComponent<MeshFilter>().mesh.bounds.size.z;
            float scale_z=plane.transform.localScale.z;
    
            //原始宽度*缩放比例=实际宽度
            mapWidth=size_x*scale_x;
            mapHeight=size_z*scale_z;
    
            widthCheck =mapWidth/2;
            heightCheck =mapHeight/2;
    
            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_y=map.height-((map.height/mapHeight *z )+(map.height/2));
    
        }
        // Update is called once per frame
        void Update () {
            if(Input.GetKey(KeyCode.W) || Input.GetKey(KeyCode.UpArrow))
            {
                cube.transform.Translate(Vector3.forward*Time.deltaTime *5);
                check();
            }
            if(Input.GetKey(KeyCode.S) || Input.GetKey(KeyCode.DownArrow))
            {
                cube.transform.Translate(Vector3.forward * (-Time.deltaTime) *5);
                check();
            }
        }
    
        void OnGUI()
        {
            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);
        }
    }
  • 相关阅读:
    CentOS下设置ipmi
    CentOS 使用文件增加Swap空间
    CentOS LVM
    做IT需要掌握的电力基础知识
    CentOS 7搭建本地yum源
    Lsi卡和IB卡在CentOS中升级
    Mellanox 4036配置
    IdentityServer4入门二
    IdentityServer4入门一
    RAFT选举算法-分布式数据库困惑
  • 原文地址:https://www.cnblogs.com/hometown/p/3927599.html
Copyright © 2011-2022 走看看