Unity创建平铺网格地图的方法

 更新时间:2022年7月23日 11:34  点击:606 作者:不可_收_圾

本文实例为大家分享了Unity创建平铺网格地图的具体代码,供大家参考,具体内容如下

创建预制件

先拖进场景,再从层级拖回资源

选中源图像文件,设置每单位像素可以不改变组件缩放修改显示大小

脚本编辑

创建一个空对象和脚本文件

挂载脚本到空对象

 双击脚本进入编辑

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class CreateMap : MonoBehaviour
{
    //私有变量暴露到编辑器
    [SerializeField]
    private GameObject tile;
 
    //获取精灵图像的宽度
    public float TileSize
    {
        get
        {
            return tile.GetComponent<SpriteRenderer>().sprite.bounds.size.x;
                    //GetComponent :用来访问对象的组件
                    //Sprite Renderer :用于渲染 [ 精灵 ] 并控制其在 2D 和 3D 项目场景中的可视化效果
                    //sprite:是一种 2D 图形对象,图形从位图图像 Texture2D 获取,主要用于精灵的图像部分,然后GameObject 上的 SpriteRenderer 组件可以使用该信息来实际显示图形
                    //Bounds:由精灵的中心和范围(采用世界空间单位)指定
        }
    }
 
    // Start is called before the first frame update
    void Start()
    {
        CreateLevel();
    }
 
    // Update is called once per frame
    void Update()
    {
        
    }
 
    private void CreateLevel()
    {
        //把屏幕左上角坐标转换为世界空间坐标
        Vector3 worldStart = Camera.main.ScreenToWorldPoint(new Vector3(0,Screen.height));
            //ScreenToWorldPoint:从屏幕空间到世界空间的变化位置。屏幕空间以像素定义。屏幕的左下为(0,0);右上是(pixelWidth,pixelHeight),Z的位置是以世界单位衡量的到相机的距离
            //Vector3 :通过转换到摄像机平面距离为 z 的屏幕空间点创建的世界空间点,这个返回值,前两个分别代表在屏幕坐标的x轴与y轴,屏幕左下角为起点(0,0),水平为x轴,竖直为y轴,这个返回值,前两个分别代表在屏幕坐标的x轴与y轴,屏幕左下角为起点(0,0),水平为x轴,竖直为y轴
            //Screen:提供对显示信息的访问。使用Screen类获取支持的屏幕分辨率列表、切换当前分辨率或隐藏或显示系统鼠标指针
            //.height:屏幕窗口的当前高度(以像素为单位)(只读)
 
        for (int y = 0; y < 6; y++)
        {
            for (int x = 0; x < 13; x++)
            {
                PlaceTile(x,y, worldStart);
            }
        }
    }
 
    private void PlaceTile(int x,int y, Vector3 worldStart)
    {
        //从左上角开始贴图
        GameObject newTile = Instantiate(tile);
        newTile.transform.position = new Vector3(worldStart.x+(TileSize * x), worldStart.y-(TileSize * y), 0);
    }
}

保存回到编辑器,拖入预制件到脚本接口

源图像的轴点位置可能需要调整

运行测试

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持猪先飞。

原文出处:https://blog.csdn.net/qq_36917144/article/details/121064594

[!--infotagslink--]

相关文章

  • JS中引用百度地图并将百度地图的logo和信息去掉

    采用CSS覆盖的方法就可以了,但是官方是不允许这么做的...2013-10-13
  • openlayers6之地图覆盖物overlay详解

    overlay就是在地图上以另外一种形式浮现在地图上,常见的地图覆盖物为这三种类型,如:popup 弹窗、label标注信息、text文本信息等,接下来跟随小编看下openlayers6之地图覆盖物overlay详解,一起看看吧...2021-09-15
  • 如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)

    以下是使用js代码实现百度地图计算两地距离,代码如下所示:<script src="js/jquery-1.9.0.js" type="text/javascript" language="javascript"></script><script language="javascript" type="text/javascript" src="js/...2015-10-30
  • React使用高德地图的实现示例(react-amap)

    这篇文章主要介绍了React使用高德地图的实现示例(react-amap),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-18
  • vue+高德地图实现地图搜索及点击定位操作

    这篇文章主要介绍了vue+高德地图实现地图搜索及点击定位操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-09-09
  • 基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标

    本文给大家介绍javascript实现高德地图和百度地图提取行政区边界经纬度坐标的相关知识,本文实用性非常高,代码简单易懂,需要的朋友参考下吧...2016-01-24
  • Unity时间戳的使用方法

    这篇文章主要为大家详细介绍了Unity时间戳的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • React+高德地图实时获取经纬度,定位地址

    思路其实没有那么复杂,把地图想成一个盒子容器,地图中心点想成盒子中心点;扎点在【地图中心点】不会动,当移动地图时,去获取【地图中心点】经纬度,设置某个位置的时候,将经纬度设置为【地图中心点】即可...2021-06-20
  • 百度地图API之百度地图退拽标记点获取经纬度的实现代码

    这篇文章主要介绍了百度地图API之百度地图退拽标记点获取经纬度的实现代码,需要的朋友可以参考下...2017-01-16
  • Javascript Echarts空气质量地图效果详解

    这篇文章主要介绍了详解Javascript利用echarts画空气质量地图,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-10-11
  • 微信小程序开发之map地图实现教程

    相信大家现在都知道微信小程序吧,下面这篇文章主要给大家介绍了微信小程序开发之map地图的相关资料,分享出来供大家参考学习,文中通过示例代码介绍的非常详细,需要的朋友们下面跟着小编来一起学习学习吧。...2017-06-15
  • 如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)

    以下是使用js代码实现百度地图计算两地距离,代码如下所示:<script src="js/jquery-1.9.0.js" type="text/javascript" language="javascript"></script><script language="javascript" type="text/javascript" src="js/...2015-10-30
  • 百度地图给map添加右键菜单(判断是否为marker)

    这篇文章主要介绍了百度地图给map添加右键菜单(判断是否为marker) 的相关资料,需要的朋友可以参考下...2016-03-07
  • Unity中 ShaderGraph 实现旋涡传送门效果入门级教程(推荐)

    通过Twirl 旋转节点对Gradient Noise 梯度噪声节点进行操作,就可得到一个旋转的旋涡效果。具体实现代码跟随小编一起通过本文学习下吧...2021-07-11
  • Unity延时执行的多种方法小结

    本文主要介绍了4种延时执行的方法,主要包括Update计时器,Invoke,协程,DoTween,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-07-07
  • Unity shader实现遮罩效果

    这篇文章主要为大家详细介绍了Unity shader实现遮罩效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • unity 如何判断鼠标是否在哪个UI上(两种方法)

    这篇文章主要介绍了unity 判断鼠标是否在哪个UI上的两种实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-10
  • Unity实现换装系统

    这篇文章主要为大家详细介绍了Unity实现换装系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-04-11
  • 利用unity代码C#封装为dll的步骤分享

    这篇文章主要给大家介绍了关于利用unity代码C#封装为dll的相关资料,文中通过图文将实现的方法介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • unity 实现摄像机绕某点旋转一周

    这篇文章主要介绍了unity 实现摄像机绕某点旋转一周,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12