当前位置:   article > 正文

Unity常用API_bool iscollider = physics.raycast(ray, out hit,100

bool iscollider = physics.raycast(ray, out hit,1000, layermask.getmask("mapcube"));

1.事件函数执行机制

è¿éåå¾çæè¿°

 

4.消息事件

  1. // 参数解析: 方法名 - 参数 - 如果方法在目标对象上不存在,是否应该引发错误
  2. // 在这个游戏对象或它的任何一个孩子的每一个 MonoBehaviour 中调用方法名
  3. target.BroadcastMessage("Attack", null, SendMessageOptions.DontRequireReceiver);
  4. //在这个游戏对象中的每一个 MonoBehaviour 上调用方法名
  5. target.SendMessage("Attack", null, SendMessageOptions.DontRequireReceiver);
  6. // 在这个游戏对象或它的所有父亲的每一个 MonoBehaviour 中调用方法名
  7. target.SendMessageUpwards("Attack", null, SendMessageOptions.DontRequireReceiver);

5.Invoke

  1. Invoke("Attack",3); //3秒后调用Attch方法
  2. InvokeRepeating("Attack", 4, 2); //4秒后每隔2秒调用一次Attach
  3. CancelInvoke("Attack"); // 取消调用Attach定时器
  4. bool res = IsInvoking("Attack"); //判断Attach定时器是否还存在

6.Coroutine协成

  • 启动结束协成的两种方式,必须要对应:

    1. private IEnumerator ie;
    2. ie = Fade();
    3. // 第一种
    4. StartCoroutine(ie); // 启动
    5. StopCoroutine(ie); // 关闭
    6. // 第二种
    7. StartCoroutine("Fade"); // 启动
    8. StopCoroutine("Fade"); // 关闭
    9. IEnumerator Fade()
    10. {
    11. while (true)
    12. {
    13. // do something
    14. yield return new WaitForSeconds(2); // 返回值必须是yield这种形式
    15. }
    16. }

     

7.Mathf

  1. //静态属性
  2. Mathf.Deg2Rad; //角度转弧度
  3. Mathf.Rad2Deg; //弧度转角度
  4. Mathf.Infinity; //正无穷的数
  5. Mathf.NegativeInfinity; //负无穷的数
  6. Mathf.Epsilon; //最小的浮点正数
  7. // 静态方法
  8. Mathf.Floor(); //向下取整,返回浮点数
  9. Mathf.FloorToInt(); //向下取整,返回正整数
  10. Mathf.ClosestPowerOfTwo(30); //返回2^N最接近30的数,这里就是8.
  11. Mathf.Clamp(Time.time, 1.0F, 3.0F) //Time.time<1返回1,大于3返回3,中间返回自身
  12. Mathf.Lerp(a, b, t) //差值运算,返回 a+(b-a)*t 其中t=Mathf.Clamp(t,0,1)
  13. Mathf.LerpUnclamped(a, b, t) //差值运算,返回 a+(b-a)*t,t不做限制可以小于0,大于1
  14. Mathf.MoveTowards(x, 10, Time.deltaTime*speed) //从x变化到10,以每秒spped的速度
  15. Mathf.PingPong(t, 20) //返回的值将在0到20直接来回移动,比如0到20到0到20,t=19返回19 t=21返回19 t=40返回0

8.Input

  1. // 鼠标按键
  2. Input.GetMouseButton(); //鼠标按下触发
  3. Input.GetMouseButtonDown(); //鼠标按下不动持续触发
  4. Input.GetMouseButtonUp(); //鼠标松开触发
  5. // 键盘按键,同理
  6. Input.GetKey();
  7. Input.GetKeyDown();
  8. Input.GetKeyUp();
  9. //Unity中设置的虚拟按键
  10. Input.GetButton();
  11. Input.GetButtonDown();
  12. Input.GetButtonUp();
  13. // 返回由axisName标识的虚拟轴的值
  14. Input.GetAxis("Horizontal") //平滑的获取水平方向按键的值 [-1, 1]: A D ← →
  15. Input.GetAxisRaw("Horizontal")//平滑的获取水平方向按键的值- 1 0 1: A D ← →
  16. // 同理垂直方向
  17. Input.GetAxis("Vertical") // W S ↑ ↓
  18. // 静态属性,任何键(鼠标或者键盘)
  19. Input.anyKeyDown;
  20. Input.anyKey;
  21. Input.mousePosition; // 获取鼠标的相对于untiy的坐标,左下为(0,0)
  22. 1
  23. 2
  24. 3
  25. 4
  26. 5
  27. 6
  28. 7
  29. 8
  30. 9
  31. 10
  32. 11
  33. 12
  34. 13
  35. 14
  36. 15
  37. 16
  38. 17
  39. 18
  40. 19
  41. 20
  42. 21
  43. 22
  44. 23
  45. 24
  46. 25
  47. 26
  48. 27
  49. 9. Vector2/Vector3
  50. Vector2 a = new Vector2(2, 2);
  51. print(a.magnitude); //返回向量长度
  52. print(a.sqrMagnitude); //返回向量平方长度
  53. print(a.normalized); // 返回单位化的向量
  54. a.Normalize(); //自身单位化
  55. Vector2.Angle(a, b); //返回a和b直接的角度
  56. Vector2.ClampMagnitude(c, 2); //返回长度小于2的矢量向量
  57. Vector2.Distance(b, c); //两个点之前的距离
  58. // 同Mathf
  59. Vector2.Lerp(a, b, 0.5f);
  60. Vector2.LerpUnclamped(a, b, 0.5f);
  61. Vector2.MoveTowards(a, target, Time.deltaTime);
  62. //向量是结构体,是值类型,要整体赋值
  63. transform.position = new Vector3(3, 3, 3);
  64. Vector3 pos = transform.position;
  65. pos.x = 10;
  66. transform.position = pos;

11.Quaternion四元素

  • 四元素是用来表示物体旋转的角度的。

  1. // 设置物体旋转的两种方式:
  2. cube.eulerAngles = new Vector3(45, 45, 45);
  3. cube.rotation = Quaternion.Euler(new Vector3(45, 45, 45));
  4. // 应用场景,玩家平滑旋转面向敌人
  5. Vector3 dir = enemy.position - player.position;
  6. dir.y = 0; //取消在y轴(上下)方向的旋转
  7. Quaternion target= Quaternion.LookRotation(dir);
  8. player.rotation = Quaternion.Lerp(player.rotation, target, Time.deltaTime);

12.Camera相机

 

 

  • 主要用途就是获取相机来进行射线检测(获取鼠标点击的对象)

    1. // 两种获取相机的方式
    2. mainCamera = GameObject.Find("MainCamera").GetComponent<Camera>();
    3. mainCamera = Camera.main; // tag必须为MainCamera
    4. // 返回一个从相机到屏幕点的光线
    5. Ray ray = mainCamera.ScreenPointToRay (Input.mousePosition);
    6. // debug 画出射线
    7. Debug.DrawRay (ray.origin, ray.direction * 10, Color.yellow);
    8. // ray:射线对象
    9. // layerMask:选择那个层进行碰撞检测
    10. // hit:存放碰撞物体的信息
    11. // maxDistance:最远距离
    12. // 与那个层碰撞检测
    13. RaycastHit hit; // 存放碰撞物体的信息
    14. bool isCollider = Physics.Raycast (ray, out hit, 1000, LayerMask.GetMask ("MapCube"));
    15. // 得到对象
    16. MapCube mapCube = hit.collider.GetComponent<MapCube> ();

    13.MonoBehaviour的生命周期

  • è¿éåå¾çæè¿°

14.Unity基本组件

è¿éåå¾çæè¿°

15.Unity3D重要模块的类图

è¿éåå¾çæè¿°

16.Unity API图解合集

è¿éåå¾çæè¿°

 转载原地址:https://blog.csdn.net/xh_reventon/article/details/80927883

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/108439
推荐阅读
相关标签
  

闽ICP备14008679号