91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何使用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

乌什县| 西宁市| 织金县| 山西省| 南丹县| 常德市| 景泰县| 安新县| 扶绥县| 昌图县| 尖扎县| 昌乐县| 馆陶县| 安岳县| 达拉特旗| 英吉沙县| 烟台市| 东方市| 阿拉尔市| 霍邱县| 乡城县| 资阳市| 靖州| 江都市| 分宜县| 全州县| 凤冈县| 周至县| 通海县| 郁南县| 卢湾区| 介休市| 赤峰市| 蒲城县| 双流县| 嘉祥县| 翁牛特旗| 遵化市| 太白县| 全椒县| 台北县|