- 前言
- 相关介绍
- 其他介绍
- 上一篇笔记
- 下一篇笔记
- 一、项目结构
- 二、脚本
- [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#脚本,并添加到预制体上
sprite属性位于SpriteRenderer组件下,所以我们需要先在类中声明一个的SpriteRenderer组件对象
public SpriteRenderer sr;//组件[3]. 获取SpriteRenderer
当游戏开始的时候,就会执行Start()的内容获取预制体的SpriteRenderer组件
void Start()
{
sr = GetComponent();
}
[4]. 声明Sprite数组
声明一个Sprite类型的数组,可以用来存储多个图片的信息
使用public关键字可以在脚本外部引用图片的信息
public Sprite[] pic;//图片[5]. 导入Sprite
[6]. 按键监控将所需的图片拖动到数组之中,我们脚本内的数组名是pic,在外部会将首字母大写。
为了防止在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];
}
}
}



