當前位置:首頁 » 編程軟體 » unity動畫播放腳本

unity動畫播放腳本

發布時間: 2022-05-17 12:10:12

1. unity3d如何用C#腳本播放人物模型的動畫,急!!!!!!

把你要獲取的變數許可權定義為public 類型 變數.
以下方法任意一個都可以:
一:
public GameObject 另一個物體; //監視面板拖拽賦值
另一個物體.GetComponent<腳本>().變數 獲得並更改.
二:
將另一個物體命名為"XXX".
GameObject.Find("XXX").GetComponent<腳本>().變數;
三:
將另一個物體命名為"XXX";

GameObject.FindGameObjectWithTag("XXX").GetComponent<腳本>().變數

2. unity 3D 用c#腳本播放聲音

AudioListener組件默認綁定在主攝像機上,這個組件的功能相當於耳朵,用來聽聲音的。

1.背景音樂
選中音樂文件,建議不勾選3D Sound選項。
在Main Camera下創建一個空物體,添加AudioSound組件,AudioClip選擇要播放的音樂。
Loop必須勾選,循環播放。
勾選PlayOnAwake,場景一進來就開始播放,如果不勾選找個合適時機Play()。

2.NGUI的UIPlaySound
在攝像機直接添加個AudioSource組件,這個組件不掛任何AudioClip。(UIPlaySound將在這個組件上播放音效,在這里調整Volume能控制所有UIPlaySound的音量大小。UIPlaySound的Volume屬性只控制自己的音量,最後的音量是這兩個音量值相乘。)

3.碰撞觸發的音效

public AudioClip AC;
OnCollisionEnter(Collision collision)
//或者OnTriggerEnter(Collider collider)
{
//被撞得物體原點發出聲音(第二個參數用來設置發出聲音的世界坐標,不要離AudioListener太遠)
AudioSource.PlayClipAtPoint(AC, transform.localPosition);
}

4.Animation動作回調的音效
public class AnimationCallSound : MonoBehaviour
{
//防止同一個動作多次注冊回調
public static List<string> isHaveevent = new List<string>();

//調用事件
public float EventTime;
//要播放的音效(必須綁定一個AudioSource組件)
public AudioSource AS;

void Start ()
{
if (AS == null)
Debug.LogError("沒有綁定音效");
AddEvent();
//防止場景內動作相同的物體動作同步
Invoke("PlayAnim",Random.Range(0.1f,5.5f));
}
void PlayAnim()
{
animation.Play();
}

//給Animation動畫注冊回調事件
void AddEvent()
{
foreach (string name in isHaveevent)
{
if (animation.clip.name == name)
return;
}

AnimationEvent auidoEvent = new AnimationEvent();
auidoEvent.time = EventTime;
auidoEvent.functionName = "PlayAudio";

animation.clip.AddEvent(auidoEvent);
isHaveevent.Add(animation.clip.name);
Debug.Log("add " + animation.clip.name + " Event!");
}

public void PlayAudio()
{
AS.Play();
}
}

3. unity曲線動畫腳本

需求場景:由若干個數量不確定的物體從上到下排列,需要間隔0.1s依次從左到右移動到某個位置,然後返回一小段距離。
分析:使用Unity3D的動畫系統很容易實現這個功能,但是物體數量不確定,考慮將其綁定到同一個物體下,為這個物體動態創建Animation、AnimationClip(一個Animation可以含有多個動作,即AnimationClip,但我們只需要一個動作),然後針對各個子物體創建不同的AnimationCurve,最後調用這個Animation,即可實現各個物體先後按照設定的移動動畫進行運動。需求場景:由若干個數量不確定的物體從上到下排列,需要間隔0.1s依次從左到右移動到某個位置,然後返回一小段距離。
分析:使用Unity3D的動畫系統很容易實現這個功能,但是物體數量不確定,考慮將其綁定到同一個物體下,為這個物體動態創建Animation、AnimationClip(一個Animation可以含有多個動作,即AnimationClip,但我們只需要一個動作),然後針對各個子物體創建不同的AnimationCurve,最後調用這個Animation,即可實現各個物體先後按照設定的移動動畫進行運動。

4. unity3d怎麼樣用腳本控制animator動畫

inspector有一個debug模式,你在debug模式下修改一下Animation Type為0 就可以了 Unity有兩套Animation系統,一套是legacy,一套是Mecanim。 Debug模式下的Animation Type 0表示Mecanim,可以用於animator;1表示Legacy,用於animation組件

5. unity3d fbx動畫模型 怎麼播放

首先在Editor中微調你的動畫片段,並命名,然後在腳本中編程即可,比如:
設置動畫層
animation["Idle"].layer = 0;
播放
animation.Play("Idle");
將多個動畫混合
animation.Blend("FallDown", 0, 0.2);
animation.Blend("Jump", 0, 0.2);
平滑過渡到另一個動畫
animation.CrossFade("FastRoll", 0.2);

6. unity3d 如何用GUI按鈕播放動畫腳本怎麼寫

if(GUI.按鈕1)
{
//動畫
}

7. unity4.5怎麼用代碼播放動作

之前的代碼也繁瑣了。
animation本來就可以通過transform.animation 來訪問。如果是在腳本代碼中,可以直接用animation來訪問animation組件。 默認的基礎類都是這個特性,比如rigidbody、renderer等等這些一樣,你既可以通過rigidbody.transform來訪問其transform,也可以通過transform.rigidbody來訪問rigidbody,前提是確實該組件,否則為null。

現在的版本animation 一樣可以使用,比較重大的改變是不再具備通過動畫編輯窗口來添加材質方面的動畫,比如color 方面的動畫,無法直接給material的相關參數添加關鍵幀建立動畫曲線。

你只能通過給一個腳本的變數添加動畫曲線,然後再在腳本中通過代碼去關聯該變數和color,間接做材質color動畫 :
var a:float; //在動畫編輯器中添加曲線改變alpha值

function Update(){
renderer.material.color.a = a;
}

unity4.x版本保留了animation作為舊版本的動畫組件,同時加入了Animator,也就是mecanim動畫系統,這個系統是專門設計來應付生物屬性的角色動畫的,有更緊密、更復雜的混合系統,其編輯模式跟animation 截然不同!你需要通過animator動畫狀態可視化編輯器來搭建動畫層級和狀態圖,再通過animator來播放預定義的狀態,從而達到動畫播放效果。也就是說,動畫不再基於clip剪輯,而是state狀態。
你可以去查看animator的官方腳本參考,你就知道他是怎麼用的了。其實也差不多,原理不同,不能再用animation["clip name"] 來簡單粗暴的操作clip的參數了,現在改變播放速度、時間軸等操作你都必須通過animator來調整相應state的播放屬性,而不是像舊版直接去改變clip的參數。基本的播放也是用Play()、Stop()等,參數不同, 而且你要play的動畫狀態必須預先在編輯面板正確設置好!

如果你想繼續使用舊版的animation做為導入動畫剪輯,那你應該在導入的動畫模型選項中選擇使用舊版legacy animation,具體怎麼寫的記不得了,應該可以找到的。

8. unity3d幫我寫一個觸碰物體後播放"123"動畫代碼,在線等,急!!!

if(Input.GetMouseButtonDown(0)){ var ray:Ray = cam.ScreenPointToRay(Input.mousePosition); var hit:RaycastHit; if(Physics.Raycast(ray,hit)){ if(hit.transform.name == gameObject.transform.name){ //自己邏輯 renderer.material.mainTexture = texture; texture.Play (); } } } 這樣改其他兩個就好了,不過前提是你這個腳本要放到點擊的物體上,如果不放到點擊的物體上,就需要獲取點擊的物體,然後f(hit.transform.name == gameObject.transform.name)換成f(hit.transform.name == obj.transform.name),obj就是你獲取的點擊的物體。

9. unity動畫如何加快一倍速度,要完整腳本別說,改下動畫點speed就行了,我也知道。完整腳本,復制粘貼那種

animation["Take 001"].speed = 2;

10. unity中怎麼用代碼控制動畫播放

這是animator,設置為默認動畫的話,執行後就自動播放,不是默認動畫就建變數控制

熱點內容
解壓體育館 發布:2025-05-13 21:27:48 瀏覽:263
哪家編程課 發布:2025-05-13 21:27:04 瀏覽:895
為什麼文件要壓縮 發布:2025-05-13 21:16:07 瀏覽:50
區域網怎麼搭建校時伺服器 發布:2025-05-13 21:11:32 瀏覽:677
存儲器讀寫實驗心得 發布:2025-05-13 21:09:23 瀏覽:15
派派手機如何設置密碼 發布:2025-05-13 21:08:02 瀏覽:774
獄辱實驗棟第2集在線ftp 發布:2025-05-13 21:02:06 瀏覽:11
安卓桌面應用如何變大 發布:2025-05-13 20:59:39 瀏覽:361
解壓通知單有什麼用 發布:2025-05-13 20:58:37 瀏覽:567
俄羅斯方塊的編程 發布:2025-05-13 20:51:08 瀏覽:611