2016年6月16日 星期四

Week18 02132412_沈泓宇

期末作品開發過程:

遊戲中一些常見效果的實現:

敵人頭上有浮動的血條:


這種效果在很多遊戲里都能看得到,只要是打怪的遊戲,一般都會有這種效果。血條能做到跟隨敵人一起移動,始終保持在敵人頭上,受到傷害時血量會減少。

實現方式:

建一個新的canvas,渲染模式選擇為World Space,也就是一個3D的canvas,裡面的UI都是以3D的形式渲染出來,與普通的顯示在熒幕的2D介面不同。


Start方法里添加程式碼:

GameObject LifePrefab = (GameObject)Resources.Load ("LifeBar");
GameObject LifeBarObject = (GameObject)Instantiate (LifePrefab);
TankTransform = LifeBarObject.transform;
TankTransform.SetParent(GameObjectManager.Canvas3D.transform);
TankTransform.localScale = new Vector3 (0.06f,0.06f,0.06f);
TankLifeBar = LifeBarObject.GetComponent<Slider>();

然後在Update方法里添加程式碼:

Vector3 LifeBarPosition = this.transform.position;
LifeBarPosition.y += 8f;
TankTransform.transform.position = LifeBarPosition;
TankTransform.transform.eulerAngles = CameraManager.ThirdPersonCamera.transform.eulerAngles;

最後一行程式碼要根據具體需求來寫,看要控制血條的euler角度面向哪一個攝影機。

最後實現血條減血的效果就比較簡單:

LifeBar.value -= AttackValue;//血條的值減去傷害值

沒有留言:

張貼留言