unity 点击事件

目录

点击按钮,显示图片功能教程

第1步添加ui button,添加ui RawImage

第2步 添加脚本:

第3步,把脚本拖拽到button,点击button,设置脚本的变量,

GameObject添加 Component组件


点击按钮,显示图片功能教程

第1步添加ui button,添加ui RawImage

第2步 添加脚本:

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using UnityEngine.UI;

public class LoadImageByString : MonoBehaviour
{
    public RawImage showImage;
    public Button loadImage;

    private string imgPath;
    private string imageStr;
    // Start is called before the first frame update

    private void Awake()
    {
        Debug.Log("醒了");
        imgPath = @"C:\Users\Administrator\Pictures\mm\pics\005953_4.jpg";
        Debug.Log(imgPath);

        imageStr = SetImageToString(imgPath);
    }

    void Start()
    {
        Debug.Log("醒了");
        imgPath = @"C:\Users\Administrator\Pictures\mm\pics\005953_4.jpg";
        Debug.Log(imgPath);

        imageStr = SetImageToString(imgPath);
        //  loadImage = gameObject.GetComponent<Button>();
        //  showImage = gameObject.GetComponent<RawImage>();

        Debug.Log("开始");
        // showImage.texture = GetTextureByString(imageStr);
        loadImage.onClick.AddListener(() =>
        {
            showImage.texture = GetTextureByString(imageStr);

        });
    }

    /// <summary>
    /// 将图片转化为字符串
    /// </summary>
    private string SetImageToString(string imgPath)
    {
        Debug.Log("将图片转化为字符串");
        FileStream fs = new FileStream(imgPath, FileMode.Open);
        byte[] imgByte = new byte[fs.Length];
        fs.Read(imgByte, 0, imgByte.Length);
        fs.Close();
        return Convert.ToBase64String(imgByte);
    }

    /// <summary>
    /// 将字符串转换为纹理
    /// </summary>
    private Texture2D GetTextureByString(string textureStr)
    {
        Debug.Log("将字符串转换为纹理");
        Texture2D tex = new Texture2D(10, 10);
        byte[] arr = Convert.FromBase64String(textureStr);
        tex.LoadImage(arr);
        tex.Apply();
        return tex;
    }

    public void onclick()
    {
        Debug.Log("按下了");

    }
}

第3步,把脚本拖拽到button,点击button,设置脚本的变量,

运行,点击button,看RawImage显示图片,至此ok。 

左边选择场景,canvas,选择button,正常情况下,onclick会关联事件函数。

但是从网上开源项目改的,就没有。

GameObject添加 Component组件

相关推荐

  1. unity防止ui事件被子物体拦截

    2024-02-13 11:04:04       43 阅读
  2. Unity基于EventSystem让SpriteRenderer支持事件

    2024-02-13 11:04:04       38 阅读
  3. Unity 关于不同物品移动并触发不同事件

    2024-02-13 11:04:04       62 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-13 11:04:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-13 11:04:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-02-13 11:04:04       82 阅读
  4. Python语言-面向对象

    2024-02-13 11:04:04       91 阅读

热门阅读

  1. Android 9.0 禁用adb install 安装app功能

    2024-02-13 11:04:04       51 阅读
  2. Python中Pymysql库的常见用法和代码示例

    2024-02-13 11:04:04       60 阅读
  3. docker常用命令

    2024-02-13 11:04:04       48 阅读
  4. 一个Spring Boot Admin 监控多个Nacos集群

    2024-02-13 11:04:04       48 阅读
  5. 洛谷P1042乒乓球

    2024-02-13 11:04:04       53 阅读
  6. 「Python」Selenium

    2024-02-13 11:04:04       49 阅读
  7. 笔记本选购配置参数详解

    2024-02-13 11:04:04       48 阅读
  8. 信息学奥赛一本通1317:【例5.2】组合的输出

    2024-02-13 11:04:04       47 阅读