栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

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

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

文章目录
  • 前言
    • 相关介绍
    • 其他介绍
    • 上一篇笔记
    • 下一篇笔记
  • 一、项目结构
  • 二、脚本
    • [1]. 挂载脚本
    • [2]. 声明SpriteRenderer
    • [3]. 获取SpriteRenderer
    • [4]. 声明Sprite数组
    • [5]. 导入Sprite
    • [6]. 按键监控
    • [7]. 切换图片
    • [8]. 全部代码

前言

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

Unity版本: 2019.4.26
Visual Studio版本: 2019

相关介绍

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

其他介绍

微软官方C#函数文档

Unity官方API文档(英文)

Unity官方API文档(中文)

Unity官方用户手册(中文)

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

Unity教程-C语言中文网

Unity用户手册-unity圣典

Unity组件手册-unity圣典

Unity脚本手册-unity圣典

上一篇笔记

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

下一篇笔记

Unity(7)-控制2D物体移动

一、项目结构

二、脚本 [1]. 挂载脚本

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


[2]. 声明SpriteRenderer

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

public SpriteRenderer sr;//组件
[3]. 获取SpriteRenderer

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

	void Start()
    {
        sr = GetComponent();
    }
[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来修改图片的内容
sr是SpriteRenderer组件的对象,数组下标是从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();//获取组件
    }

    // 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];
        }
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/902157.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号