小言_互联网的博客

Unity(6)-通过脚本修改图片sprite

899人阅读  评论(0)

前言

通过创建的C#脚本修改原有图片的信息,素材来自爱给网

Unity版本: 2019.4.26
Visual Studio版本: 2019

相关介绍

unity3d输入与控制——键盘事件

其他介绍

微软官方C#函数文档

Unity官方API文档(英文)

Unity官方API文档(中文)

Unity官方用户手册(中文)

Unity游戏蛮牛API文档(中文)

Unity教程-C语言中文网

上一篇笔记

Unity(5)-解决Input类无法识别的问题

一、项目结构

二、脚本

[1]. 挂载脚本

先创建一个C#脚本,并添加到预制体上


[2]. 声明SpriteRenderer

sprite属性位于SpriteRenderer组件下,所以我们需要先在类中声明一个的SpriteRenderer组件对象

public SpriteRenderer sr;//组件

[3]. 获取SpriteRenderer

当游戏开始的时候,就会执行Start()的内容获取预制体的SpriteRenderer组件

	void Start()
    {
   
        sr = GetComponent<SpriteRenderer>();
    }

[4]. 声明Sprite数组

声明一个Sprite类型的数组,可以用来存储多个图片的信息
使用public关键字可以在脚本外部引用图片的信息

public Sprite[] pic;//图片

[5]. 导入Sprite

将所需的图片拖动到数组之中,我们脚本内的数组名是pic,在外部会将首字母大写。

[6]. 按键监控

为了防止在Upate()中多次执行图片切换的操作,可以按下按键后才触发图片切换
你可以参考下面的文章,来理解

unity3d输入与控制——键盘事件

    void Update()
    {
   
        if(Input.GetKeyDown(KeyCode.Alpha0))//当按下数字0时
        {
   
            
        }
        else if (Input.GetKeyDown(KeyCode.Alpha1))//当按下数字1时
        {
   

        }
        else if (Input.GetKeyDown(KeyCode.Alpha2))//当按下数字2时
        {
   

        }
        else if (Input.GetKeyDown(KeyCode.Alpha3))//当按下数字3时
        {
   

        }
        else if (Input.GetKeyDown(KeyCode.Alpha4))//当按下数字4时
        {
   

        }
        else if (Input.GetKeyDown(KeyCode.Alpha5))//当按下数字5时
        {
   

        }
    }

[7]. 切换图片

切换图片主要是通过[对象名].sprite来修改图片的内容
srSpriteRenderer组件的对象,数组下标是从0开始

	void Update()
    {
   
        if(Input.GetKeyDown(KeyCode.Alpha0))//当按下数字0时
        {
   
            sr.sprite = pic[0];
        }
        else if (Input.GetKeyDown(KeyCode.Alpha1))//当按下数字1时
        {
   
            sr.sprite = pic[1];
        }
        else if (Input.GetKeyDown(KeyCode.Alpha2))//当按下数字2时
        {
   
            sr.sprite = pic[2];
        }
        else if (Input.GetKeyDown(KeyCode.Alpha3))//当按下数字3时
        {
   
            sr.sprite = pic[3];
        }
        else if (Input.GetKeyDown(KeyCode.Alpha4))//当按下数字4时
        {
   
            sr.sprite = pic[4];
        }
        else if (Input.GetKeyDown(KeyCode.Alpha5))//当按下数字5时
        {
   
            sr.sprite = pic[5];
        }
    }

[8]. 全部代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Change : MonoBehaviour
{
   
    //引用
    public SpriteRenderer sr;//组件
    public Sprite[] pic;//图片
    // Start is called before the first frame update
    void Start()
    {
   
        sr = GetComponent<SpriteRenderer>();//获取组件
    }

    // Update is called once per frame
    void Update()
    {
   
        if(Input.GetKeyDown(KeyCode.Alpha0))//当按下数字0时
        {
   
            sr.sprite = pic[0];
        }
        else if (Input.GetKeyDown(KeyCode.Alpha1))//当按下数字1时
        {
   
            sr.sprite = pic[1];
        }
        else if (Input.GetKeyDown(KeyCode.Alpha2))//当按下数字2时
        {
   
            sr.sprite = pic[2];
        }
        else if (Input.GetKeyDown(KeyCode.Alpha3))//当按下数字3时
        {
   
            sr.sprite = pic[3];
        }
        else if (Input.GetKeyDown(KeyCode.Alpha4))//当按下数字4时
        {
   
            sr.sprite = pic[4];
        }
        else if (Input.GetKeyDown(KeyCode.Alpha5))//当按下数字5时
        {
   
            sr.sprite = pic[5];
        }
    }
}


转载:https://blog.csdn.net/smallfox233/article/details/117332451
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场