public RectTransform redimg;//小地图中的人物红点 public Transform player;//人物 public Image map;//小地图(父级要有个Mash组件) public Texture2D texture; public int w=50; public int h=50; public Color gaocolor = Color.black; public Color dicolor = Color.white; public float max = 10; // Start is called before the first frame update void Start() { texture = new Texture2D(w,h); VertexHelper vh = new VertexHelper(); for (int x = 0; x < w; x++) { for (int z = 0; z < h; z++) { float noise = Mathf.PerlinNoise(x*0.1f, z*0.1f); float y = noise * max; float uvx = (float)x / (float)(w - 1); float uvy = (float)z / (float)(h - 1); Color color = Color.Lerp(dicolor,gaocolor, noise); texture.SetPixel(x, z, color); vh.AddVert(new Vector3(x, y, z), Color.white, new Vector2(uvx, uvy)); if (x != w - 1 && z != h - 1) { vh.AddTriangle(x * h + z, x * h + z + 1, (x + 1) * h + z + 1); vh.AddTriangle(x * h + z, (x + 1) * h + z + 1, (x + 1) * h + z); } } } texture.Apply(); Mesh mesh = new Mesh(); vh.FillMesh(mesh); GetComponent<MeshFilter>().mesh = mesh; GetComponent<MeshCollider>().sharedMesh = mesh; Material material = new Material(Shader.Find("UI/Default")); material.mainTexture = texture; map.material = material; GetComponent<MeshRenderer>().material = material; } // Update is called once per frame void Update() { float pivotX = (player.transform.position.x ) / (float)w; float pivotY = (player.transform.position.z ) / (float)h; map.rectTransform.pivot = new Vector2(pivotX, pivotY); redimg.transform.eulerAngles = Vector3.back * player.transform.eulerAngles.y; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)