unity button 通过事件改变物体颜色

1,Canvas不能移动,理解为Game窗口。


2, button在UI层,不知为什么它在相机视野里面前后移动时不会远小近大。(有点像小说三体3中云天明给程心讲的故事中那个深水王子的感觉。)

Pos X = 0, Pos Y = 0 表示btton在Canvas中间


通过点击脚本改变颜色的事件设置,button添加上后会自动加一个可以用的事件。


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

public class ChangeColor : MonoBehaviour {

	public GameObject cube;
	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
		
	}

	public void ChangeColorRed()
	{
		cube.GetComponent<MeshRenderer> ().material.color = Color.red;
	}
}

如果不用它自带的可以自己加

a)添加组件event trigger


b) 学button的设置做一些你期望的设置



c) 脚本和其它相关设置也一样,button要拖到事件那儿,脚本要挂在button上。

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

public class ChangeColor : MonoBehaviour {

	public GameObject cube;
	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
		
	}

	public void ChangeColorRed()
	{
		cube.GetComponent<MeshRenderer> ().material.color = Color.red;
	}

	public void ChangeColorWhite()
	{
		cube.GetComponent<MeshRenderer> ().material.color = Color.white;
	}
}

运行如你所期。

3 EventSystem是button的事件对应的东西,不能删除,不然会按键的作用和触发事件效果就没了。

4,比较好看的按键

添加图片,修改为2DUI


选复合性裁剪你要的部分,sprite editor修改或查看其属性大小


按钮变化的一些设置,其他的东西查看unity的官方文档。



<think>好的,用户想了解UnityButton组件的属性。首先,我需要回忆Unity Button组件的基本结构和常用属性。根据之前提供的引用内容,用户提到了ButtonClickHandler类和事件监听,这可能涉及OnClick事件属性。 首先,Button组件的主要属性包括Interactable、Transition类型(颜色变化、精灵交换、动画)、导航设置,以及OnClick事件。需要详细解释每个属性的作用,比如Interactable控制按钮是否可用,Transition影响按钮的视觉效果反馈。 然后,OnClick事件是重点,因为用户引用了添加监听器的例子。需要说明如何在Inspector面板中添加回调,或者通过代码动态绑定,比如使用AddListener方法。引用中的例子用了onClick事件添加监听器,所以应该提到这两种方法。 另外,可能需要提到Button的Target Graphic,也就是按钮的目标图像,通常关联Image组件。还有不同状态下的颜色变化,比如Normal、Highlighted、Pressed等,这些属于Transition的Color Tint模式。 用户可能还想知道如何通过代码修改按钮属性,比如禁用按钮改变点击后的行为。需要结合引用中的代码示例,说明如何获取Button组件并操作其属性,比如button.interactable = false。 还要注意是否需要提到其他相关组件,比如EventSystem,确保按钮事件正常工作,但用户问题主要关注Button组件本身的属性,所以可能简要提及依赖关系即可。 最后,生成的相关问题应该围绕Button组件的使用,比如自定义外观、事件绑定方法、解决点击无响应的问题,这些是用户可能进一步想了解的。</think>### UnityButton组件的核心属性详解 #### 1. **Interactable(交互开关)** - 控制按钮是否可交互的布尔值,勾选时按钮正常响应点击,取消勾选时按钮呈现禁用状态(默认灰色)且不响应事件[^1]。 - 代码修改示例: ```csharp GetComponent<Button>().interactable = false; //禁用按钮 ``` #### 2. **Transition(状态过渡)** - 定义按钮状态变化的视觉效果,包含四种模式: 1. **Color Tint**:通过颜色变化反馈状态 - Target Graphic:指定目标图形(通常是Image组件) - 颜色状态:Normal(默认)、Highlighted(悬停)、Pressed(按下)、Selected(选中)、Disabled(禁用) 2. **Sprite Swap**:通过替换精灵图反馈状态 3. **Animation**:通过动画状态机控制 4. **None**:无过渡效果 #### 3. **Navigation(导航系统)** - 控制UI导航(如手柄/键盘操作)的自动选择行为: - None:不参与导航 - Horizontal/Vertical:按布局方向自动导航 - Automatic:根据UI结构智能导航 - Explicit:手动指定相邻UI元素 #### 4. **OnClick(点击事件)** - 核心事件绑定方式(两种实现): **方法一:Inspector可视化绑定** 点击属性面板"+"号添加回调,拖拽目标对象并选择对应方法 **方法二:代码动态绑定** ```csharp GetComponent<Button>().onClick.AddListener(() => { Debug.Log("按钮被点击"); }); ``` #### 5. **附加属性(依赖组件)** - **Image组件**:控制按钮的显示图像 - **Text组件**:通常附加在子物体上显示按钮文字 - **EventTrigger组件**:扩展更多交互事件(如长按、拖拽) ### § 相关问题 § 1. 如何给Unity按钮添加长按事件? 2. 按钮点击无响应可能是什么原因导致的? 3. 如何实现按钮点击时的缩放动画效果? 4. 怎样动态修改按钮显示的文本内容? : Unity事件系统通过序列化存储回调引用,支持运行时动态修改事件绑定 [^2]: UI元素的交互状态需要配合Canvas渲染组件和EventSystem共同实现
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值