unity基础脚本使用(包括基本的人物移动,末尾附赠键盘监听和手势监听对应的物理按键)

unity笔记

可能会用到的包导入

using System.Collections;
using System.Collections.Generic;
using UnityEngin
//easyTouch的
using HedgehogTeam.EasyTouch;
//UI组件的
using UnityEngine.UI;

导入外部元素

将需要导入的外部参数设置为public

    //cube对象
    public GameObject cube;

    //音频组件对象
    public AudioSource bgm;

    //音频组件数组
    public AudioClip[] songs;

    //颜色组件数组
    public Material[] colors;

    //外显变量 和 注解
    [Tooltip("这是角速度")]
    public float roateSpeed = 30;

    //调用脚本组件对象
    public MoveScript moveScript;

    //调用文本组件
    public Text scoreText;

控制对象出现和消失功能

//控制隐藏和出现
    void BolleanActive()
    {
        //如果是显示的则设置成不显示,反之
        if (cube.activeSelf)
        {
            cube.SetActive(false);
            //或者直接销毁
            //Destroy(this.gameObject);
        }
        else
        {
            cube.SetActive(true);
        }
    }

移动与旋转

  • 基础移动

    //设置速度和时间乘积作为位移距离,沿着x轴进行移动
    float dy = speed * Time.deltaTime;
    this.transform.Translate(dy, 0, 0, Space.Self);
  • 指定目标移动(向量计算)

    //移动到指定位置操作
        void MoveFixedPosition()
        {  
            //将这个游戏对象 看向(z轴指向cube对象的位置)
            //两个物体之间向量距离的计算
            //获取A物体
            Vector3 A = this.transform.position;
            //获取B物体
            Vector3 B = cube.transform.position;
            //两个物体间的距离 通过调用API获取
            float distance = (B - A).magnitude;
            Debug.Log("距离是" + distance);
            if (distance > 0.3f)
            {
                float speed = 3;
                // Time.deltaTime 获取上次调用方法的差距时间
                float move = speed * Time.deltaTime;
    
                //Space.Self 沿着自身轴向方向进行运动
                this.transform.Translate(0, 0, move, Space.Self);
                Debug.Log("测试成功");
            }
            else
            {
                Debug.Log("到达目的地");
            }
        }
  • 基础旋转

            //获取当前的欧拉角度数,进行旋转
            this.transform.Rotate(0, roateSpeed * Time.deltaTime, 0, Space.Self);
            Debug.Log("啊哈哈");
  • 调取音乐组件

         AudioSource audio = this.GetComponent<AudioSource>();
             //判断当前音乐是否在播放,进行对应的播放和停止
               if (audio.isPlaying)
                    {
                        audio.Stop();
                    }
               else
                    {
                        audio.Play();
                    }
  • 延时功能

    • 延时time时间执行DestoryBullet方法

Invoke("DestoryBullet", time);
  • 循环延迟操作

    第一个参数是执行的方法

    第二个参数是第一次延时的时间

    第三个参数是每次执行延时的时间

    InvokeRepeating("CreatCube", 1f, 1f);
  • 通过预制体进行实例化,指定出生点(创建角色)

        //定义实例化方法
        void CreatCube()
        {
            //初始化子弹的实例
            //第一个参数是预制体资源 第二个参数是父节点
            GameObject node = Object.Instantiate(cubePrefab, this.transform);
            //初始化位置
            node.transform.position = this.transform.position;
    
            //随机出生点的选择
            float dx = Random.Range(-30,30);
            node.transform.Translate(dx, 0, 0, Space.Self);
        }
  • 粒子特效产生与消失

     ParticleSystem ps = GetComponent<ParticleSystem>();
            if (Input.GetKeyDown(KeyCode.K))
            {
                ps.Play();
            }
            if (Input.GetKeyUp(KeyCode.K))
            {
                ps.Stop();
            }
  • 碰撞检测

    注意事项

    首先要让两个物体都有碰撞器

    其次发生碰撞的物体要选定触发器

     //碰撞检测
        private void OnTriggerEnter(Collider other)
        {
            //判断是否是需要销毁的物体
            if (!other.name.StartsWith("Cube"))
            {
                return;
            }
    
             //销毁子弹
             Destroy(this.gameObject);
    
            //销毁碰撞物
            Destroy(other.gameObject);
            Debug.Log("碰撞了");
        }
  • 确定鼠标位置,调用游戏主控,发送消息函数,调用方法

            if (Input.GetMouseButtonDown(0))
            {
                Vector3 pos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
                Debug.Log("位置" + pos);
                pos.z = 0;
                float distance = (pos - this.transform.position).magnitude;
                Debug.Log("距离" + distance);
                if (distance < 6)
                {
    
                    GameObject gameObject = GameObject.Find("游戏主控");
                    gameObject.SendMessage("AddScore");
                    Debug.Log("成功");
                }
            }
  • 其他操作

     //获取到指定 的游戏对象
     cube = GameObject.Find("Cube");
     //将这个游戏对象 看向(z轴指向cube对象的位置)
     this.transform.LookAt(cube.transform);

    //获取父级对象
    void GetParent()
    {
        Transform parent = this.transform.parent;
       GameObject parentNode = parent.gameObject;
        Debug.Log("名字是" + parentNode.name);
    }

    //遍历获取子节点对象
    void GetChild()
    {
        foreach(Transform child in transform)
        {
            Debug.Log("子节点" + child.name);
        }
    }

    //随机播放音乐
    void PlayMusicRandom()
    {
        //生成随机数
        int m_index = Random.Range(0, songs.Length);
        //当前对象组件获取
        AudioSource ac = this.GetComponent<AudioSource>();
        //获得随机音乐赋值给当前组件对象
        ac.clip = this.songs[m_index];
        ac.Play();
    }

    //变换材质颜色
    void ChangeColors()
    {
        //生成随机数
        int m_index = Random.Range(0, colors.Length);
        //获取当前出现的随机颜色
        Material curColor = colors[m_index];
        //获取mesh renderer组件
        MeshRenderer chColor = this.GetComponent<MeshRenderer>();
        //赋值随机颜色给chColor组件
        chColor.material = curColor;
    }

    //引用其他组件的音乐源
    void PlayMusic2()
    {

        bgm.Play();

    }

    //引用其他组件的脚本
      void DoWork()
        {
            moveScript.roateSpeed = 180;
        }

}

键盘鼠标监测功能

Input.GetKey(KeyCode.W):表示获取输入键

Input.GetKeyDown(KeyCode.W):表示按下输入键

Input.GetKeyUp(KeyCode.W):表示抬起输入键

        //鼠标左键监测功能
        if (Input.GetMouseButtonDown(0))
        {
           Deubg.Log("鼠标监测功能")
        }
        //wasd监测
        if (Input.GetKey(KeyCode.W))
        {
            float dy = speed * Time.deltaTime;
            this.transform.Translate(dy, 0, 0, Space.Self);
        }
        if (Input.GetKey(KeyCode.S))
        {
            float dy = speed * Time.deltaTime;
            this.transform.Translate(-dy, 0, 0, Space.Self);
        }
        if (Input.GetKey(KeyCode.A))
        {
            float dy = speed * Time.deltaTime;
            this.transform.Translate(0, 0, dy, Space.Self);
        }
        if (Input.GetKey(KeyCode.D))
        {
            float dy = speed * Time.deltaTime;
            this.transform.Translate(0, 0, -dy, SpacetonDown(0))
        }

        //上下左右键监测
        if (Input.GetKey(KeyCode.UpArrow))
        {
            float dy = speed * Time.deltaTime;
            this.transform.Translate(dy, 0, 0, Space.Self);
        }
        if (Input.GetKey(KeyCode.DownArrow))
        {
            float dy = speed * Time.deltaTime;
            this.transform.Translate(-dy, 0, 0, Space.Self);
        }
        if (Input.GetKey(KeyCode.RightArrow))
        {
            float dy = speed * Time.deltaTime;
            this.transform.Translate(0, 0, dy, Space.Self);
        }
        if (Input.GetKey(KeyCode.LeftArrow))
        {
            float dy = speed * Time.deltaTime;
            this.transform.Translate(0, 0, -dy, Space.Self);
        }
    }

键盘对应目录

 Backspace     退格键
 Delete      Delete键
 Tab        TabTab键
 Clear  Clear键
 Return  回车键
 Pause  暂停键
 Escape  ESC键
 Space  空格键
 Keypad0  小键盘0
 Keypad1  小键盘1
 Keypad2  小键盘2
 Keypad3  小键盘3
 Keypad4  小键盘4
 Keypad5  小键盘5
 Keypad6  小键盘6
 Keypad7  小键盘7
 Keypad8  小键盘8
 Keypad9  小键盘9
 KeypadPeriod 小键盘“.”
 KeypadDivide 小键盘“/”
 KeypadMultiply小键盘“*”
 KeypadMinus 小键盘“-”
 KeypadPlus 小键盘“+”
 KeypadEnter 小键盘“Enter”
 KeypadEquals 小键盘“=”
 UpArrow  方向键上
 DownArrow 方向键下
 RightArrow 方向键右
 LeftArrow 方向键左
 Insert  Insert键
 Home  Home键
 EndEnd键
 PageUp  PageUp键
 PageDown PageDown键
 F1功能键F1
 F2功能键F2
 F3功能键F3
 F4功能键F4
 F5功能键F5
 F6功能键F6
 F7功能键F7
 F8  功能键F8
 F9  功能键F9
 F10  功能键F10
 F11  功能键F11
 F12  功能键F12
 F13  功能键F13
 F14  功能键F14
 F15  功能键F15
 Alpha0 按键0
 Alpha1 按键1
 Alpha2 按键2
 Alpha3 按键3
 Alpha4 按键4
 Alpha5 按键5
 Alpha6 按键6
 Alpha7 按键7
 Alpha8 按键7
 Alpha9 按键9
 Exclaim ‘!’键
 DoubleQuote双引号键
 Hash Hash键
 Dollar ‘$’键
 AmpersandAmpersand键
 Quote 单引号键
 LeftParen 左括号键
 RightParen右括号键
 Asterisk ‘ * ’键
 Plus  ‘ +’键
 Comma ‘ , ’键
 Minus ‘ - ’键
 Period ‘ . ’键
 Slash ‘ / ’键
 Colon ‘ : ’键
 Semicolon‘ ; ’键
 Less  ‘< ‘键
 Equals ‘ = ‘键
 Greater ‘ >‘键
 Question ‘ ? ’键
 At  ‘@’键
 LeftBracket‘ [ ‘键
 Backslash ‘ \ ’键
 RightBracket‘ ] ’键
 Caret ‘ ^ ’键
 Underscore‘ _ ’键
 BackQuote‘ ` ’键
 A  ‘a’键
 B  ‘b’键
 C  ‘c’键
 D  ‘d’键
 E  ‘e’键
 F  ‘f’键
 G  ‘g’键
 H  ‘h’键
 I  ‘i’键
 J  ‘j’键
 K  ‘k’键
 L  ‘l’键
 M  ‘m’键
 N  ‘n’键
 O  ‘o’键
 P  ‘p’键
 Q  ‘q’键
 R  ‘r’键
 S  ‘s’键
 T  ‘t’键
 U  ‘u’键
 V  ‘v’键
 W  ‘w’键
 X  ‘x’键
 Y  ‘y’键
 Z  ‘z’键
 Numlock Numlock键
 Capslock 大小写锁定键
 ScrollLockScroll Lock键
 RightShift 右上档键
 LeftShift 左上档键
 RightControl右Ctrl键
 LeftControl左Ctrl键
 RightAlt 右Alt键
 LeftAlt 左Alt键
 LeftApple 左Apple键
 LeftWindows左Windows键
 RightApple右Apple键
 RightWindows右Windows键
 AltGr Alt Gr键
 Help  Help键
 Print  Print键
 SysReq Sys Req键
 Break Break键
 Mouse0 鼠标左键
 Mouse1  鼠标右键
 Mouse2 鼠标中键
 Mouse3 鼠标第3个按键
 Mouse4 鼠标第4个按键
 Mouse5  鼠标第5个按键
 Mouse6  鼠标第6个按键
 JoystickButton0手柄按键0
 JoystickButton1手柄按键1
 JoystickButton2手柄按键2
 JoystickButton3手柄按键3
 JoystickButton4手柄按键4
 JoystickButton5手柄按键5
 JoystickButton6手柄按键6
 JoystickButton7手柄按键7
 JoystickButton8手柄按键8
 JoystickButton9手柄按键9
 JoystickButton10手柄按键10
 JoystickButton11手柄按键11
 JoystickButton12手柄按键12
 JoystickButton13手柄按键13
 JoystickButton14手柄按键14
 JoystickButton15手柄按键15
 JoystickButton16手柄按键16
 JoystickButton17手柄按键17
 JoystickButton18手柄按键18
 JoystickButton19手柄按键19
 Joystick1Button0第一个手柄按键0
 Joystick1Button1第一个手柄按键1
 Joystick1Button2第一个手柄按键2
 Joystick1Button3第一个手柄按键3
 Joystick1Button4第一个手柄按键4
 Joystick1Button5第一个手柄按键5
 Joystick1Button6第一个手柄按键6
 Joystick1Button7第一个手柄按键7
 Joystick1Button8第一个手柄按键8
 Joystick1Button9第一个手柄按键9  
 Joystick1Button10第一个手柄按键10
 Joystick1Button11第一个手柄按键11
 Joystick1Button12第一个手柄按键12
 Joystick1Button13第一个手柄按键13
 Joystick1Button14第一个手柄按键14
 Joystick1Button15第一个手柄按键15
 Joystick1Button16第一个手柄按键16
 Joystick1Button17第一个手柄按键17
 Joystick1Button18第一个手柄按键18
 Joystick1Button19第一个手柄按键19
 Joystick2Button0第二个手柄按键0
 Joystick2Button1第二个手柄按键1
 Joystick2Button2第二个手柄按键2
 Joystick2Button3第二个手柄按键3
 Joystick2Button4第二个手柄按键4
 Joystick2Button5第二个手柄按键5
 Joystick2Button6第二个手柄按键6
 Joystick2Button7第二个手柄按键7
 Joystick2Button8第二个手柄按键8
 Joystick2Button9第二个手柄按键9
 Joystick2Button10第二个手柄按键10
 Joystick2Button11第二个手柄按键11
 Joystick2Button12第二个手柄按键12
 Joystick2Button13第二个手柄按键13
 Joystick2Button14第二个手柄按键14
 Joystick2Button15第二个手柄按键15
 Joystick2Button16第二个手柄按键16
 Joystick2Button17第二个手柄按键17
 Joystick2Button18第二个手柄按键18
 Joystick2Button19第二个手柄按键19
 Joystick3Button0第三个手柄按键0
 Joystick3Button1第三个手柄按键1
 Joystick3Button2第三个手柄按键2
 Joystick3Button3第三个手柄按键3
 Joystick3Button4第三个手柄按键4
 Joystick3Button5第三个手柄按键5
 Joystick3Button6第三个手柄按键6
 Joystick3Button7第三个手柄按键7
 Joystick3Button8第三个手柄按键8
 Joystick3Button9第三个手柄按键9
 Joystick3Button10第三个手柄按键10
 Joystick3Button11第三个手柄按键11
 Joystick3Button12第三个手柄按键12
 Joystick3Button13第三个手柄按键13
 Joystick3Button14第三个手柄按键14
 Joystick3Button15第三个手柄按键15
 Joystick3Button16第三个手柄按键16
 Joystick3Button17第三个手柄按键17
 Joystick3Button18第三个手柄按键18
 Joystick3Button19第三个手柄按键19

easytouch手势

单手指事件:

On_Cancel :当系统取消跟踪触摸的时候发生

On_TouchStart:当手指刚触摸到屏幕时发生

On_TouchDown:当触摸正式被激活的时候发生

On_TouchUp :当手指刚离开屏幕那一刻发生

On_SimpleTap:也是当手指刚离开屏幕时发生

On_DoubleTap:当手指连续按下两次的时候发生

On_LongTapStart :当手指按下那一刻发生,但不能有移动直到所设置的长按的所需时间到了

On_LongTap :当手指按在屏幕上达到长按所需的时间后则被认为长按有效,也就是此时发生,所以触发时机在On_LongTapStart之后

On_LongTapEnd :当手指完成有效长按时,抬起的那一刻发生

On_DragStart :当开始拖动可选对象那一刻发生

On_Drag :当拖动正式被激活时发生

On_DragEnd:当不再拖动可选物体,手指在离开屏幕那一刻发生

On_SwipeStart:手指开始滑动屏幕的那一刻发生

On_Swipe:手指滑动屏幕正式被激活的时候发生

On_SwipeEnd:手指滑动完屏幕,离开屏幕的那一刻发生

双手指事件:

On_TouchStart2Fingers:就像On_TouchStart,但要用两个手指去触发

On_TouchDown2Fingers :就像On_TouchDown,但要用两个手指去触发

On_TouchUp2Fingers:就像On_TouchUp,但要用两个手指去触发

On_SimpleTap2Fingers:就像On_SimpleTap,但要用两个手指去触发

On_DoubleTap2Fingers:就像On_DoubleTap,但要用两个手指去触发

On_LongTapStart2Fingers:就像On_LongTapStart,但要用两个手指去触发

On_LongTap2Fingers:就像On_LongTap,但要用两个手指去触发

On_LongTapEnd2Fingers:就像On_LongTapEnd,但要用两个手指去触发

On_Twist:当扭动手势发生时触发

On_TwistEnd:当扭动手势结束时触发

On_Pinch:当缩放手势被正式激活时触发

On_PinchIn:当缩放手势是缩小手势时触发

On_PinchOut:当缩放手势是扩大手势时触发

On_PinchEnd:当缩放手势结束并且离开屏幕的那一刻触发

On_DragStart2Fingers :就像On_DragStart,但要用两个手指去触发

On_Drag2Fingers:就像On_Drag,但要用两个手指去触发

On_DragEnd2Fingers:就像On_DragEnd,但要用两个手指去触发

On_SwipeStart2Fingers:就像On_SwipeStart,但要用两个手指去触发

On_Swipe2Fingers:就像On_Swipe,但要用两个手指去触发

On_SwipeEnd2Fingers:就像On_SwipeEnd,但要用两个手指去触发

Unity UI:

On_OverUIElement :当手指触碰到UGUI游戏对象的时候触发,前提是EasyTocuh的Unity UI compatibil

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值