2014年2月7日 星期五

[unity]漂移碰撞效果

自然漂移

Key

  • 利用改變旋轉半徑使得物件移動



產生隨機某空間內座標

  • R_counter++;
  • //Debug.Log ("Rx: " + R_x + ", " + "Ry: " + R_y);
  • if(R_counter>=1000)
    • {
      • R_counter=0;
      • R_x = Math.Round(UnityEngine.Random.Range(-4.4f,4.6f),2);
      • R_y = Math.Round(UnityEngine.Random.Range(-2.4f,4.2f),2);
    • }


物件旋轉,旋轉半徑與現在位置vs第一個係數位置為半徑旋轉


  • private static Vector3 radius_1 = new Vector3 (0.6f, 0.6f, -5.185162f);
  • lotusObj.transform.RotateAround (radius_1, Vector3.back, 5 * Time.deltaTime);
  • 5 * Time.deltaTime -->數值控制旋轉速度



接近目標位置並改變旋轉半徑

  • if(R_x>radius_1.x)
    • {
      • radius_1.x+=0.01f;
    • }
    • else
    • {
      • radius_1.x-=0.01f;
    • }
    • if(R_y>radius_1.y)
    • {
      • radius_1.y+=0.01f;
    • }
    • else
    • {
      • radius_1.y-=0.01f;
    • }
  • 0.01f -->數值影響速度,變化太快半徑加大太快





自然碰撞效果

key

  • 利用兩個剛體不可撞入效果
  • 加上:上下左右前後蓋子,防止碰撞後的Z軸傾斜與跑出畫面外
  • 改變物件碰撞半徑










程式碼


沒有留言:

張貼留言