【问题标题】:Convert GameObject to image?将游戏对象转换为图像?
【发布时间】:2020-09-01 08:54:19
【问题描述】:

所以我正在制作一款纸牌游戏,并希望我的用户能够创建自定义卡片,并且不仅可以在游戏中使用它们,还可以打印它们。

目前,我坚持将卡片的 UI GameObject 转换为单个图像。

卡片 GameObject 有一个模板卡片背景、几个其他图像(资源、主图像等)和多个文本框(标题、类型和描述)。然后我想采用该卡片层次结构并将其转换为单个图像。

我认为这将是一项相当简单的任务,但它似乎并不简单......或者我在这里是一个瓜?

【问题讨论】:

    标签: unity3d gameobject


    【解决方案1】:

    好问题!

    按下下方的Capture 按钮和一些GameObject 要捕获的图像:

    代码:

    using System.IO;
    using UnityEngine;
    
    public class NewBehaviourScript : MonoBehaviour
    {
        public GameObject GameObject;
    
        public void Capture()
        {
            var rectTransform = GameObject.GetComponent<RectTransform>();
            var delta         = rectTransform.sizeDelta;
            var position      = rectTransform.position;
    
            var offset = new RectOffset((int) (delta.x / 2), (int) (delta.x / 2), (int) (delta.y / 2), (int) (delta.y / 2));
            var rect   = new Rect(position, Vector2.zero);
            var add    = offset.Add(rect);
    
            var tex = new Texture2D((int) add.width, (int) add.height);
            tex.ReadPixels(add, 0, 0);
    
            var encodeToPNG = tex.EncodeToPNG();
    
            File.WriteAllBytes("card.png", encodeToPNG);
    
            DestroyImmediate(tex);
        }
    }
    

    简而言之,在屏幕上获取对象矩形,复制像素,瞧!

    结果:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-12
      • 1970-01-01
      • 2018-03-26
      • 2019-05-28
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      • 1970-01-01
      相关资源
      最近更新 更多