Unity学习笔记(三)之基础

目录

  1. Rigidbody刚体组件的具体参数
  2. 获取模型物体的尺寸大小
  3. 字典的运用(Dictionary)
  4. 取绝对值 最大值 最小值
  5. 获取屏幕分辨率,像素点宽和高
  • Mark

  1. Rigidbody刚体组件的具体参数

    Unity学习笔记(三)之基础_第1张图片
    Rigidbody

    • mass 质量,以千克计算。
    • drag 空气阻力,当物体受力运动时空气的阻力,以牛顿计算。
    • angular drag 空气角阻力,当物体受扭矩力选择时空气的阻力,以牛顿计算。
    • use gravity 使用重力,当开启此项,物体会受到重力作用。
    • is kinematic 是否开启动力学,开启此项,物体不受力的作用。
    • Interpolate 插值,当你发现刚体运动时抖动,可以尝试下面的选项。
      • None 无,不应用插值。
      • Interpolate 内插值,基于上一帧的变换来平滑本帧变换。
      • Extrapolate 外插值,基于下一帧的预估变换来平滑本帧变换。
    • Collision Detection碰撞检测,碰撞检测模式。用于避免高速物体穿过其他物体,却未触发碰撞。
      • Discrete 不连续碰撞检测。使用不连续碰撞检测模式来与场景中其他碰撞器进行碰撞检测。其他物体与它的碰撞检测,也会应用这种模式。适用于普通碰撞(这是默认的模式)。
      • Continuous 连续碰撞检测。使用不连续碰撞检测来检测与动态碰撞器(刚体)的碰撞,使用连续碰撞检测来检测与静态网格(非刚体)的碰撞检测。采用连续动态碰撞检测模式的刚体碰见这类物体也将采用连续碰撞检测模式。而与其他刚体将采用不连续碰撞检测模式。这种模式适用于那些采用动态连续碰撞模式的物体碰撞的物体。(这对物理表现有很大的影响,如果你不关心与高速物体的碰撞,那么就让其为默认的不连续模式。)
      • Continuous Dynamic 动态连续碰撞检测。使用连续动态碰撞检测模式来检测与连续模式和连续动态模式的物体间的碰撞。也适用于与静态网格(非刚体)的碰撞检测。而与之碰撞的其他模式的物体,采用的是不连续动态碰撞检测模式。适用于高速物体。
    • constrants 约束。用于控制刚体运动的约束。
  2. 获取模型物体的尺寸大小

  • 获取组件Render
    这个值的结果真实反应出有MeshRenderer这个组件的模型的尺寸。不需要再乘以localScale.x。

this.GetComponent().bounds.size.x

  + 为物体添加Collider
    这个不一定能很好的反应物体的大小,bounds获得的是物体的外包矩形。而且这个外包矩形的X,Y,Z和世界坐标一致。因此,若物体有旋转,获得的尺寸就不能反应出物体的真实大小,只是其外包矩形的大小。。。

this.GetComponent().bounds.size.x


3. **字典的运用(Dictionary)**
  + 创建

Dictionary WPDict = new Dictionary ();

  + 增

WPDict.Add ("key", "value");
WPDict["方法2"] = "valeue2";

  + 删

WPDict.Remove ("key");

  + 改

WPDict ["方法2"] = "value3";

  + 查

string testGet = WPDict["方法2"];

  + 补充

//遍历key和value
foreach (KeyValuePair kvp in WPDict)
{
print("key" + kvp.Keys + "value" + kvp.Value);
}
//遍历所有的key或者value
foreach(string key in WPDict.Keys){
print (key);
}
foreach(string value in WPDict.Values){
print (value);
}
//判断是否包含key或者value
bool isContainKey = WPDict.ContainsKey ("方法2");
bool iscontainValue = WPDict.ContainsValue ("value3");


4. **取绝对值 最大值(无限大常量`float.MaxValue`) 最小值(无限小常量`float.MinValue`)**
    ```
System.Math.Abs(ARX)
minX = Mathf.Min (trans.position.x, minX);
maxX = Mathf.Max (trans.position.x, maxX);
  1. 获取屏幕分辨率,像素点宽和高
Camera.main.pixelWidth * Camera.main.pixelHeight;
Screen.width * Screen.height;
  1. Mark

你可能感兴趣的:(Unity学习笔记(三)之基础)