發表文章

目前顯示的是 3月, 2013的文章

在 Blogger 上用 Google Code Prettify 顯示程式碼

先將下列文字貼到 範本-編輯HTML-找到 在上方加上 <link href="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css" rel="stylesheet" type="text/css"></link> <script src="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js" type="text/javascript"> </script> 再搜尋 標籤在後面加入 onload='prettyPrint();' 再來是要加上框框及一些顏色,到範本-自訂-進階-增加CSS .post .code { display: block; font-family: Courier New; font-size: 10pt; overflow:auto; background: #f3f3f3; border: 1px solid #ddd; padding: 10px 10px 10px 21px; line-height: 1.2; border-radius:3px; } 之後如下將想要框起來的文章如下格式填入即可 <pre class="prettyprint code"> 輸入想顯示的程式碼 </pre> 如果在框起來的文章中有html標籤, 可用"& lt;"取代'<',"& gt;"取代'>', "& amp;"  取代  "&"

Unity3D範例之3.DragRigidbody

 DragRigidbody.cs using UnityEngine; using System.Collections; public class DragRigidbody : MonoBehaviour { public float spring; public float damper; public float drag; public float angularDrag; public float distance; public bool attachToCenterOfMass; private SpringJoint springJoint; private Rigidbody body; // Use this for initialization void Start () { spring = 50.0f; damper = 5.0f; drag = 10.0f; angularDrag = 5.9f; distance = 0.2f; attachToCenterOfMass = false; } // Update is called once per frame void Update () { if(!Input.GetMouseButtonDown(0)) return; Camera mainCamera = FindCamera(); RaycastHit hit; //檢測滑鼠按鍵是否點擊 if(!Physics.Raycast(mainCamera.ScreenPointToRay(Input.mousePosition),out hit,100)) return; //是否有點擊到剛性物體或剛性物體可被物理控制 if(!hit.rigidbody||hit.rigidbody.isKinematic) return; if(!springJoint){ //彈性物體是否存在 //新增一個名稱為"Rigidbody dragger"的遊戲物件 GameObject go = new GameObject("Rigidbody dr

Unity3D範例之2.取得Unity3D上的所有物件

void Awake(){ Object[] objs = FindObjectsOfType(typeof(GameObject)); foreach(GameObject go in objs){ print("objname:"+go.name); } }

Unity3D範例之1.FPSWalker

FPSWalker.cs using UnityEngine; using System.Collections; [RequireComponent(typeof(CharacterController))] //js->@script RequireComponent(CharacterController) public class FPSWalker : MonoBehaviour { //請不要在這裡就將參數初始化 public float speed = 6.0f; public float jumpSpeed = 8.0f; public float gravity = 20.0f; private Vector3 moveDirection = Vector3.zero; private bool grounded = false; // Use this for initialization void Start () { //一定要在Start或Awake裡面做初始化,這樣才不會有參數值更改無效的問題 speed = 6.0f; jumpSpeed = 8.0f; gravity = 20.0f; moveDirection = Vector3.zero; grounded = false; } // Update is called once per frame void FixedUpdate () { if(grounded){ //取得自身座標 moveDirection = new Vector3(Input.GetAxis("Horizontal"),0,Input.GetAxis("Vertical")); //轉換自身座標為世界座標 moveDirection = transform.TransformDirection(moveDirection); //x,y,z向量值乘與speed moveDirection *= speed; //有按到Edit-Project Settings-Input中Ju
Unity3D 使用C#注意事項: 1.繼承於MonoBehaviour       public class NewBehaviourScript:MonoBehaviour{...} //Unity C#腳本建立時會自動產生 2.在Awake或Start函式中做初始化 3.類別名稱需與檔案名稱相同 4.Coroutines(協同程序) 相較於C#有不同的語法      C#中有所謂的Thread來實現多執行緒的操作,但在Unity3D中有些元素是不能操作的,      這個時候就可以用Coroutines來實現Thread,做法是使用StartCoroutine("function_name")來完            成,其中function_name的function以IEnumerator來實做,範例如下:          StartCoroutine("func");  //也可以寫成StartCoroutine(func());      IEnumerator func(){           while(true){              yield return 1;  //數字1是畫面更新一次就返回一次,或是寫成             // yield return new WaitForSeconds(0.5f);  每0.5秒返回一次           }      } 5.不要使用命名空間(namespace) 6.成員變數會條列在Inspector中    當所寫的Script賦予某物件後,Script的成員變數會條列顯示在Inspector中,但在Normal模式    只會條列宣告為public的變數,只有在Debug Mode才會將宣告為private,protected的變數顯    示出來(在Inspector頁籤上在mouse右鍵即可改變模式) 7.避免在constructor(建構函式)中初始化變數    永遠不要在繼承於MonoBehaviour Script的建構函式初始化變數,要在Awake()或Start()中初    始化變數,除非你的Script是繼承至ScripttableObject,才可以