Unity 2D精靈
Sprites是個用于角色、道具牍氛、炮彈以及其他2D游戲元素的二維圖形對象六水。
2D游戲的圖像部分主要是圖片的處理,圖片通常稱為Sprite精靈
為了提高2d游戲的效率凰盔,會將圖片資源拼接成一張大圖墓卦,在游戲運行的時候在將這張圖的莫一部分讀取出來作為Sprite顯示在屏幕上
該圖形是基于Texture2D得到的圖像。Sprite類主要識別圖像的一部分用于特定的精靈户敬。
此類通過游戲對象上的SpriteRenderer組件應用并實際顯示該圖像落剪。
創(chuàng)建精靈
1.導入一張大圖到引擎中
2.選中圖片將Texture Type設為如圖1-2所示的Sprite(2D and UI)與Sprite Mode設置為Multiple就可以將這張大圖切割成若干小圖形
3.點擊如圖1-2所示的Sprite Editor打開編輯窗口
然后就可以根據(jù)自己的需求切割圖片的大小,切割好后就會在你原來圖片的目錄下看到切割的圖片
與2D物理組件
2D物理引擎
1.Rigidbody2D 二維剛體
與Rigidbody類似尿庐,添加Rigidbody2D組件到一個精靈上置于物理引擎的控制下忠怖。就其本身而言,這意味著精靈會受到重力的影響并可以從腳本使用力控制抄瑟。通過添加合適的碰撞器組件凡泣,該精靈也會響應與其他精靈碰撞。
也可以通過點擊Component->Physics 2D就可以看到2D剛體
2.2D碰撞器組件(Collider2D)
注意:碰撞器調用 倆個物體都必須有 碰撞體 其中一個必須有剛體
觸發(fā)器: 倆個物體必須都有碰撞體锐借,其中一個必須是剛體问麸,并且其中一個開啟Is Trigger
與Collider功能相同,但是只能作用于二維場景
通過點擊Component->Physics 2D也是可以看到
如圖1-6所示可以通過各屬性設置2D物理組件
函數(shù)
1.voidOnCollisionEnter2D(Collision2D coll)
當傳入的碰撞器接觸到這個對象的碰撞器時發(fā)送(僅2D物理)钞翔。
2.voidOnCollisionExit2D(Collision2D coll)
當另一個對象上的碰撞器停止接觸這個對象的碰撞器時發(fā)送(僅2D物理)严卖。
3.voidOnCollisionStay2D(Collision2D coll)
當另個對象的碰撞器正在觸碰這個對象的碰撞器時,每幀發(fā)送(僅2D物理)布轿。
4.voidOnTriggerEnter2D(Collider2D other)
當另個對象的碰撞器進入到這個對象的觸發(fā)碰撞器時發(fā)送(僅2D物理)哮笆。
5.voidOnTriggerExit2D(Collider2D other)
當另個對象的碰撞器離開這個對象的觸發(fā)碰撞器時發(fā)送(僅2D物理)来颤。
6.voidOnTriggerStay2D(Collider2D other)
當另個對象的碰撞器停留在這個對象的觸發(fā)碰撞器內時每幀發(fā)送(僅2D物理)。
實例(類似憤怒的小鳥簡單實現(xiàn))
?Vector3 _startPos;
?Vector3 _endPos;? ?
?public float _force;? ?
?public void OnMouseDown()? ? {?
?? ? ? _startPos = Input.mousePosition;? ??
}? ? public void OnMouseUp()? ? {? ?
?? ? GetComponent().gravityScale = 0.5f;? ?
?? ? _endPos = Input.mousePosition;
? ? ? ? Vector3 dir = _startPos - _endPos;//??
? ? ? GetComponent().AddForce(dir * _force);??
? }? ??
public void OnCollisionEnter2D(Collision2D collision)? ? {? ??
? ? //重置球體重力? ? ? ??
GetComponent().gravityScale = 0.5f;
}