C H A P T E R 06-6.1 6.2 6.3 6.4
6.4 6.4 1. Project 1.Demo 2. 2. 06 public Renderer trackl; public Renderer trackr; public float trackspeed = 0.02f; 6-29
CHAPTER 06 - Offset trackspeed 0.04 void Update Vector2 trackloffset = trackl.material.maintextureoffset; trackloffset.x += trackspeed * v; trackl.material.maintextureoffset = trackloffset; Vector2 trackroffset = trackr.material.maintextureoffset; trackroffset.x += trackspeed * v; trackr.material.maintextureoffset = trackroffset; 6-30
6.4 v material.maintextureoffset.x Offset x play 3. 06 Vector2 trackloffset = trackl.material.maintextureoffset; trackloffset.x += v!= 0? trackspeed * v : trackspeed * h; trackl.material.maintextureoffset = trackloffset; Vector2 trackroffset = trackr.material.maintextureoffset; trackroffset.x += v!= 0? trackspeed * v : trackspeed * -h; trackr.material.maintextureoffset = trackroffset; 6-31
CHAPTER 06 - play?: (Boolean) v v W S : : h -h 4. GameObject Create Empty Transform 6-32
6.4 Z Position Y 0.32 Rotation X -90 Y 180 Z Y Transform Transform fire 06 5. 6-33
CHAPTER 06 - public Rigidbody projectile; Rigidbody var speed : float = 80; 6-34 Ctrl
6.4 voidupdate if(input. GetButtonDown("Fire1")){} GetButtonDown if(input. GetButtonDown( Fire1 )) {} {} GetButton GetButtonDown Input.GetAxis Edit Project Settings Input if(input. GetButtonDown("Fire1")) {} Rigidbody shoot = Instantiate(projectile, transform.position, transform.rotation) as Rigidbody; shoot.velocity = transform.transformdirection(new Vector3( 0, 0, speed)); 06 ; Rigidbody shoot Instantiate Instantiate transform.position transform. rotation 6-35
CHAPTER 06 - velocity transform.transformdirection(new Vector3( 0, 0, speed) Z speed 6. Prefab GameObject 3D Object Sphere Hierarchy Rigidbody 6-36
6.4 0.4 Hierarchy Project 06 Prefab 6-37
CHAPTER 06 - Prefab Prefab Prefab Prefab Prefab Hierarchy Prefab projectile play 6-38
6.4 7. Physics.IgnoreCollision(transform.root.GetComponent<Collider>(), shoot. GetComponent<Collider>()); 06 play Physics.IgnoreCollision root 6-39
CHAPTER 06 編寫控制腳本 - 坦克車大戰 8. 加入發射音效 現在坦克已經可以發射砲彈了 但是沒有發射的音效與爆 炸 感覺就是少了些什麼 從 Project 視窗中選擇球的 Prefab 將 Component Audio 裡的 Audio Source 組件附加給它 Audio Source 就是音效播放器 有了 Audio Source 後 將 4.Sounds 裡的 fire 音效拉到 Audio Clip 參數中 完 成後按下 play 在發射砲彈時就能聽到音效 6-40
6.4 firescript NewBehaviourScript NewBehaviourScript1 9. Prefab public GameObject explosion; 06 6-41
CHAPTER 06 - Project 5.Prefab Explosion prefab Explosion prefab void OnCollisionEnter(Collision collision) { } 6-42
6.4 OnCollisionEnter Update {} {} void OnCollisionEnter Instantiate (explosion, transform.position, transform.rotation); Destroy(gameObject); play 06 Destroy gameobject 6-43
CHAPTER 07 5. mov Switch Mesh Collider Switch Switch Box Collider mov Box Collider Editor Collider Mesh Collider Box Collider 7-88
7.6 play mov Shader Self- Illuminated Diffuse Leagcy Shaders Unity5 Shaders Unity5 07 7-89
CHAPTER 07 室內展覽應用範例 現在按下 play 看看更改後的結果 6. 製作鏡子 在 Scene 視窗中 選擇任一間廁所的鏡子 home Group005 5 Mirror 建立一個 Render Texture 在 Project 視窗中 Create Render Texture 並將 之拖到鏡子的材質球 7-90
7.6 Render Texture Unity Pro Camera Camera 07 Camera Transform x y z Position 3 1.5-6.6 Rotation 0 0 0 7-91
CHAPTER 07 室內展覽應用範例 將 Camera 的 Flare Layer GUILayer Audio Listener 關閉 選擇 Camera 將我們剛剛建立的 Render Texture 拖到 Target Texture 裡 7. 修正鏡子的反射效果 現 在我們按下 play 走到廁 所來看看結果 會發現鏡 子的感覺有些不太對勁 7-92 正常來說 鏡子的畫面應該要跟人物同方向才對
7.6 影片播放與鏡子製作 這時候只要將鏡子模型 (5 Mirror) 的 X 軸 的 縮 放相反過來就可以了 現在我們再按下 play 走到廁所來看看結果 就會發現能夠正常模擬 鏡子的效果了 8. 製作所有的鏡子 依照剛剛製作鏡子的步驟 將其他鏡子製作完成 本範例 共有四面鏡子 客廳旁的廁所 臥室廁所 主臥室廁所 主臥室化妝台 剛 剛就是在製作客廳旁的廁所 07 7-93
CHAPTER 07 室內展覽應用範例 在製作的時候 建議將 Camera 與 Render Texture 做編號 並建立一個空物 件命名為 Cameragroup 然後將位置歸零 用來管理所有鏡子用的 Camera 為了方便測試 我們可以直接將人物拉到鏡子附近 然後按下 play 就可以 直接看到調整的結果 女僕不用再花時間走過去 臥室廁所 Camera 的 Transform 參數 7-94 x y z Position 1.3 1.6-3.2 Rotation 0 270 0