unity3d 如何用GUI按钮播放动画脚本怎么写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity3d 如何用GUI按钮播放动画脚本怎么写相关的知识,希望对你有一定的参考价值。

需要一个UI按钮控制动画播放的脚本。用OnGUI生成按钮,按下play1后播放名为anim1的Clips动画,按下play2后播放anim2的Clips动画,按下play3后播放xxxx的Clips动画……,脚本我写了一些了但是提示Animation未包含Play定义,请问这脚本应该怎么写。
using UnityEngine;
public class AnimPlay : MonoBehaviour

public Animation anim;
void Start()

anim = gameObject.GetComponent<Animation>();

void OnGUI()

if (GUI.Button(new Rect(Screen.width * 0.01f, Screen.height * 0.01f,
Screen.width * 0.1f, Screen.height * 0.1f), "play1"))

anim.Play("anim1");

if (GUI.Button(new Rect(Screen.width * 0.01f, Screen.height * 0.11f, Screen.width * 0.1f, Screen.height * 0.1f), "play2"))

anim.Play("anim2");

if (GUI.Button(new Rect(Screen.width * 0.01f, Screen.height * 0.21f, Screen.width * 0.1f, Screen.height * 0.1f), "play3"))

anim.Play("anim3");


参考技术A if(GUI.按钮1)

//动画

dw如何实现单击按钮实现播放歌曲功能代码怎么写?


DW只是定位数据的一个伪指令,本身是无法实现单击按钮播放歌曲的,只能将一些播放歌曲的相关数据比如频率、节奏、旋律等定义出来,举例如下:

NUM EQU 30H

UP EQU P3.6

DN EQU P3.7

ORG     0000H

AJMP    START           ;Fosc=12MHz

ORG     000BH           ;T0 中断入口地址

AJMP    INT_T0

ORG     001BH           ;T1 中断入口地址

AJMP    INT_T1


START:

MOV  SP, #60H

MOV TMOD, #11H

MOV IE, #8AH 

MOV IP, #08H          ;T1中断优先于T0中断

MOV TH1, #3CH

MOV TL1, #0BH        ;以上为系统初始化,T=60ms


W1:                         ;第一首《我和你》

MOV  P2, #00000110B  ;显示1,00000110

MOV  R5, #11111001B

MOV  52H, #HIGH TABLE10

MOV  53H, #LOW TABLE10

MOV NUM,#0

music: MOV R3,#00H           ;音乐解码器

NEXT20:

MOV A,P3

ORL A,#0C0H

MOV P3,A

MOV A,P3

CPL A

ANL A,#0C0H

JZ NEXT21

LJMP W1

NEXT21:

     MOV   A, R3

MOV  DPH, 52H

MOV  DPL, 53H

MOVC A, @A+DPTR

MOV  R2, A

JZ  STOP

ANL  A, #0FH

MOV  R1, A

MOV  A, R2

SWAP  A

ANL  A, #0FH

JNZ  SING

CLR  TR0

JMP  W11

;----------------------------------------------------------

SING:

DEC  A

MOV  22H, A

RL   A

MOV  DPTR, #TABLE00

MOVC  A, @A+DPTR

MOV  TH0, A

MOV  21H, A

MOV  A, 22H

RL  A

INC  A

MOVC  A, @A+DPTR

MOV  TL0, A

MOV  20H, A

SETB  TR0

SETB   TR1

W11:

LCALL  DELAY3

INC  R3

LJMP  NEXT20

;-----------------------------------------------------------

STOP:

CLR  TR0

CLR  TR1

    ljmp start

;***************************************************

;定时器0中断子程序

;***************************************************

INT_T0: 

CLR  TR0

MOV  TL0, 20H

MOV  TH0, 21H

CPL  P3.0

SETB TR0

RETI

;***************************************************

;定时器1中断子程序

;***************************************************

INT_T1: 

CLR  TR1

CLR  TR0

LCALL KEY_E

MOV  TH1, #3CH

  MOV  TL1, #0BH

DJNZ  60H, OUT

    MOV  60H, #20

OUT:

SETB TR1

RETI                      

KEY_E:

JB P3.1, L2              ;中断键盘检测

LCALL DELAY2           ;消除抖动

JB  P3.1, L2           ;如果是高电平就跳到L2

JNB   P3.1, $           ;如果仍然是低电平就执行中断程序

MOV P2, #0111100B        ;让LED显示E,01111001

L3: JB P3.1, $           ;检测低电平,直到低电平时才跳出该指令

LCALL DELAY2

JB P3.1, L3

JNB  P3.1, $           ;如果再来一个高电平才跳出中断

MOV P2,R5

L2: SETB  TR0

RET

GETKEY:                ;读A B C D键盘子程序 

SA: JB P1.0, SB            ;读A,是高电平表示没有按键,跳转到SB

LCALL DELAY2

JB P1.0, SA

JNB  P1.0, $

MOV P2, #01110111B     ;显示A,01110111

MOV R5, #10001000B

MOV A, #0FFH

MOV B, #0AH

RET

SB: JB P1.1, C11              ;读B,是高电平表示没有按键按下,跳转到C11

LCALL DELAY2

JB P1.1, SB

JNB P1.1, $

MOV P2, #01111100B        ;显示B,01111100

MOV R5, #10000011B

MOV A, #0FFH

MOV B, #0BH

RET

C11:JB P1.2, ED1        ;读C

LCALL DELAY2

JB  P1.2, C11

JNB  P1.2, $

MOV P2, #00111001B ;显示C,00111001

MOV R5, #11000110B

MOV A, #0FFH

MOV B, #0CH

RET

ED1:

JB P1.3, L0             ;读D

LCALL DELAY2

JB  P1.3, ED1

JNB   P1.3, $

MOV P2, #01011110B   ;显示D,01011110

MOV R5, #10100001B

MOV A, #0FFH

MOV B,  #0DH

L0: JB UP,L01

LCALL DELAY2

JB UP,L01

JNB UP,$

MOV A,#0FFH

MOV B,#0EH

RET

L01:

JB DN,L02

LCALL DELAY2

JB DN,L02

JNB DN,$

MOV A,#0FFH

MOV B,#0FH

L02:

RET

GETWORD:                     ;读音乐序号子程序

S1: JB P1.4, S2         ;读1键

LCALL DELAY2

JB P1.4, S1

JNB P1.4, $

MOV P2, #00000110B    ;显示1

MOV R5, #11111001B

MOV A, #0FFH

MOV B, #00H

RET

S2: JB P1.5, S3            ;读2键

LCALL DELAY2

JB P1.5, S2

JNB P1.5, $

MOV P2, #01011011B    ;显示2

MOV R5, #10100100B

MOV A, #0FFH

MOV B, #01H

RET

S3: JB P1.6,S4           ;读3键

LCALL DELAY2

JB P1.6,S3

JNB P1.6,$

MOV P2,#01001111B    ;显示3

MOV R5,#10110000B

MOV A,#0FFH

MOV B,#02H

RET

S4: JB P1.7, L1           ;读4键

LCALL DELAY2

JB P1.7, S1

JNB P1.7, $

MOV P2, #01100110B ;显示4

MOV R5, #10011001B

MOV A, #0FFH

MOV B, #03H

L1: RET

DELAY:                          ;延时子程序

        PUSH    0               ;保存现场

        PUSH    1

        MOV     0, #0H

DELAY1: MOV     1, #0H

        DJNZ    1, $

        DJNZ    0, DELAY1

        POP     1               ;恢复现场

        POP     0

        RET

DELAY2: MOV 41H, #100        ;延时子程序2

F1: MOV 42H, #250

DJNZ 42H, $

DJNZ 41H, F1

RET

DELAY3:           ;延时子程序3

MOV  R7, #2

W22: MOV  R4, #125

W33: MOV  R0, 248

DJNZ  R0, $

DJNZ  R4, W33

DJNZ  R7, W22

DJNZ  R1, DELAY3

RET

TABLE00:                       ;频率表

DW 64260,64400,64524,64580          ;简码值 低音5, 低音6, 低音7,1

DW 64684,64777,64820,64898          ; 简码值 2,3,4,5

DW 64968,65030,65058,65110          ; 简码值 6,7,高音1,高音

        DW 65157,65178,65217            ;简码值 高音3,高音4,高音5

;第一首《我和你》

TABLE10: DB 64H,82H,42H,48H

DB 54H,64H,18H

DB 44H,54H,64H,84H

DB 5CH

DB 64H,84H,44H,04H,42H

DB 54H,64H,28H

DB 54H,14H,54H,64H

DB 4CH

DB 98H,88H

DB 98H,48H

DB 64H,24H,64H,84H

DB 5CH

DB 64H,82H,42H,48H

DB 54H,64H, 28H

DB 54H,14H,54H,34H

DB 4CH

DB 00H


END

参考技术A <audio controls="controls" loop="-1">
<source src="/i/song.ogg" type="audio/ogg">
<source src="../music/王筝 - 想把我唱给你听.mp3" type="audio/mp3" >
Your browser does not support the audio element.
</audio><br />
../music/王筝 - 想把我唱给你听.mp3是你的歌曲与网页的相对地址。追问

为什么没有用到html

追答

这只是HTML中的一段代码。。。。要灵活应用。

Your browser does not support the audio element.

追问

我是说单击按钮就播放 这html中没有按钮啊

以上是关于unity3d 如何用GUI按钮播放动画脚本怎么写的主要内容,如果未能解决你的问题,请参考以下文章

如何在unity中添加按钮 步骤

unity3d 怎么做右键点击

如何在unity3d中创建最简单的按钮

如何用unity3d把点云生成实际物体

unity3d 模型uv动画 key 播放问题 求指教!!!

unity3d中如何用脚本创建对象或者类