Unity3D游戏开发预备课(九)

常用工具类及物理射线


welcome

常用工具类

静态类介绍

  1. 在面向对象的语言中有静态类的说法
  2. 静态类是被关键字 staitic 修饰的类,在程序编译后会自动创建
  3. 因此可以在静态类中实现一些静态方法直接用来调用,这种提供静态方法的静态类就是为程序编写提供方便的工具类

Mathf

数学类

  1. Mathf.Abs(float/int) —取绝对值
  2. Mathf.Max(float,float) —取最大值
  3. Mathf.Min(float,float) —取最小值
  4. Mathf.Round(float) —四舍五入
  5. Mathf.Lerp(float,float,float) —插值计算

Time

时间类

  1. Time.time —获得从游戏开始到现在经过的时间
  2. Time.deltaTime —获得渲染完上一帧所花费的时间

Screen

屏幕类

  1. Screen.Width —获取游戏屏幕的宽度
  2. Screen.height— 获取游戏屏幕的高度

物理射线

U3D提供了一种物理射线可以与GameObject发生碰撞事件

射线相关属性及方法

  1. Camera.main —是Tag标签为主摄像机的引用
  2. Camera.ScreenPointToRay(Vector3) —将引入的点作为终点,以Camera为起点延伸出一条射线并返回
  3. Physics.Raycast(Ray,out RaycastHit) — Physics工具类中的方法,判定指定的射线是否发生了碰撞,返回值为bool类型,并将被碰撞物体的信息记录到 RaycastHit 中

demo演示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RAY : MonoBehaviour {
private Camera m_camera;
//用来存储碰撞物体的信息
private RaycastHit hit;
//定义射线存储ScreenPointToRay返回的值
private Ray ray;
void Start () {
//获取主摄像机的引用
m_camera = Camera.main;
}
void Update () {
if (Input.GetMouseButtonDown(0))
{
//将当前鼠标点击的位置作为终点产生一条射线
ray = m_camera.ScreenPointToRay(Input.mousePosition);
//Physics.Raycast(Ray,out RaycastHit) RaycastHit存储与射线发生碰撞物体的信息
if (Physics.Raycast(ray,out hit))
{
//销毁碰撞物体
Destroy(hit.collider.gameObject);
}
}
}
}


射线销毁物体

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 常用工具类
    1. 1.1. 静态类介绍
    2. 1.2. Mathf
    3. 1.3. Time
    4. 1.4. Screen
  2. 2. 物理射线
    1. 2.1. 射线相关属性及方法
    2. 2.2. demo演示