这篇文章主要介绍了如何使用Unity实现鼠标经过时ui及物体的变色操作,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、实现UI的变色设置Highlighted Color为
这篇文章主要介绍了如何使用Unity实现鼠标经过时ui及物体的变色操作,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
设置Highlighted Color为鼠标经过时变的颜色(NORMal为常态,Pressed为按下时的颜色,Disabled为禁止的颜色)
using System.Collections;using System.Collections.Generic;using UnityEngine;public class Cube_change : MonoBehaviour { private Color CubeColor; private Texture CubeTexture; public GameObject objCube; // Use this for initialization void Start () { objCube = GameObject.Find("Cube"); objCube.GetComponent<Renderer>().material.color = Color.blue; } public void OnMouseEnter() { objCube.GetComponent<Renderer>().material.color = Color.red; } public void OnMouseExit() { objCube.GetComponent<Renderer>().material.color = Color.blue; } // Update is called once per frame void Update () { }
//+++++++++++++++++++++++++++
GameObject objcub = GameObject.CreatePrimitive(PrimitiveType.Cube); objcub.AddComponent<Rigidbody>(); objcub.name = "Cube"; //设置color 使用这个来获取material objcub.GetComponent<Renderer>().material.color = Color.blue;
补充:Unity 实现鼠标滑过UI时触发动画
在有些需求中会遇到,当鼠标滑过某个UI物体上方时,为了提醒用户该物体是可以交互时,我们需要添加一个动效和提示音。这样可以提高产品的体验感。
给需要有动画的物体制作相应的Animation动画。(相同动效可以使用同一动画复用)
给需要有动画的物体添加脚本。脚本如下:
using System;using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.EventSystems;public class OnBtnEnter : MonoBehaviour, IPointerEnterHandler,IPointerExitHandler{ //鼠标进入按钮触发音效和动画 public void OnPointerEnter(PointerEventData eventData) { // AudioManager.audioManager.PlayEnterAudio();//这里可以将播放触发提示音放在这里,没有可以提示音可以将该行注释掉 if (gameObject.GetComponent<Animation>()!=null) { if ( gameObject.GetComponent<Animation>() .isPlaying) { return; } gameObject.GetComponent<Animation>().wrapMode = WrapMode.Loop; gameObject.GetComponent<Animation>().Play(); } }//鼠标离开时关闭动画 public void OnPointerExit(PointerEventData eventData) { if ( gameObject.GetComponent<Animation>() != null ) { if ( gameObject.GetComponent<Animation>().isPlaying ) { gameObject.GetComponent<Animation>().wrapMode = WrapMode.Once; return; } gameObject.GetComponent<Animation>().Stop(); } }}
补充:unity人物接近时触发事件或动画demo
定义物体GameObject o;
效果:当人物接近物体时,物体触发动画,比如位移
创建o的动画km和gm
创建空物体 Empty,大小稍微比o大一点,拖入o,用来接受触发判定,防止物体移动过后触发器跟着移动,勾选 is trigger
人物控制器
using System.Collections;using System.Collections.Generic;using UnityEngine; public class DoorController : MonoBehaviour{private Animation ani; void Start() {//获取子组件下的第一个组件,再获取子组件animation,//如果是获取自身组件,直接GetComponent<XXX>()ani = transform.GetChild(0).GetComponent<Animation>();} private void OnTriggerEnter(Collider other){//当物体接触到时则播放animation中的km动画ani.Play("km");} private void OnTriggerExit(Collider other){//当物体接触到时则播放animation中的gm动画ani.Play("gm");} void Update(){ }}
感谢你能够认真阅读完这篇文章,希望小编分享的“如何使用unity实现鼠标经过时ui及物体的变色操作”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!
--结束END--
本文标题: 如何使用unity实现鼠标经过时ui及物体的变色操作
本文链接: https://lsjlt.com/news/270625.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0