亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用unity實現鼠標經過時ui及物體的變色操作

發布時間:2021-04-12 11:40:02 來源:億速云 閱讀:1373 作者:小新 欄目:開發技術

這篇文章主要介紹了如何使用unity實現鼠標經過時ui及物體的變色操作,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

1、實現UI的變色

設置Highlighted Color為鼠標經過時變的顏色(Normal為常態,Pressed為按下時的顏色,Disabled為禁止的顏色)

如何使用unity實現鼠標經過時ui及物體的變色操作

2、通過代碼實現物體的顏色改變

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 ()
      { 
 }

//+++++++++++++++++++++++++++

unity5.0之后renderer就不能使用material,需要使用GetComponent來獲取

GameObject objcub = GameObject.CreatePrimitive(PrimitiveType.Cube);  
objcub.AddComponent<Rigidbody>();  
objcub.name = "Cube";  
//設置color 使用這個來獲取material  
objcub.GetComponent<Renderer>().material.color = Color.blue;

補充:Unity 實現鼠標滑過UI時觸發動畫

在有些需求中會遇到,當鼠標滑過某個UI物體上方時,為了提醒用戶該物體是可以交互時,我們需要添加一個動效和提示音。這樣可以提高產品的體驗感。

解決方案

1、給需要有動畫的物體制作相應的Animation動畫。(相同動效可以使用同一動畫復用)

2、給需要有動畫的物體添加腳本。腳本如下:

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;

效果:當人物接近物體時,物體觸發動畫,比如位移

1.創建o的動畫km和gm

2.創建空物體 Empty,大小稍微比o大一點,拖入o,用來接受觸發判定,防止物體移動過后觸發器跟著移動,勾選 is trigger

2.人物控制器

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及物體的變色操作”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安西县| 西宁市| 宜川县| 贵德县| 丰原市| 刚察县| 婺源县| 旅游| 昌宁县| 长丰县| 安庆市| 锦屏县| 右玉县| 鄄城县| 蒲城县| 鹿泉市| 镇江市| 余江县| 栾川县| 洛宁县| 永修县| 锡林浩特市| 微山县| 梅河口市| 丰原市| 海原县| 仁化县| 中山市| 新津县| 枝江市| 新巴尔虎右旗| 云阳县| 灯塔市| 马尔康县| 栾城县| 佛冈县| 大城县| 绵竹市| 耿马| 四子王旗| 库车县|