iT邦幫忙

2023 iThome 鐵人賽

DAY 30
0
Software Development

從零開始!使用chatGPT製作Unity回合制卡牌遊戲系列 第 30

從零開始!使用chatGPT製作Unity回合制卡牌遊戲 Day 30 - Unity Transform

  • 分享至 

  • xImage
  •  

終於啊!最後一天了!

其實啊,一開始在寫30天挑戰的時候就有考慮過,是要以哪中方式進行才好:

  1. 多個小遊戲,多個主題彈性適配。
  2. 一個打大企劃,圍繞著某問題分配主題。

顯然我選擇了後者。
雖然我們卡關了,且迫於時間壓力不得不停止進展,
但我們依舊在學習極有可能遭遇到的Unity機制與工具,
我覺得這也是成長。

所以今天,最後一天,我們來學習最常使用到的函式之一:

The Transform Component in Unity


所以Transform是什麼?
根據最有奉獻價值組員:
https://ithelp.ithome.com.tw/upload/images/20231014/201632357GSuetZWlp.png

Transform組件是所有遊戲物件都包含的一個屬性。
它包含了位置、旋轉、尺度等資訊在其中。

舉例來說:

  1. Position (transform.position):遊戲物件在世界空間中的位置資訊,格式為「Vector3」。
  2. Rotation (transform.rotation):遊戲物件在世界空間中的旋轉資訊,格式為「Quaternion」。
  3. Scale (transform.localScale):遊戲物件在世界空間中的尺度資訊,格式為「Vector3」。
  4. Translate (transform.Translate(Vector3 translation)):移動遊戲物件在世界空間中的位置,格式為「Vector3」。使用方法例如:
transform.Translate(Vector3.up * 2)

將會移動該遊戲物件往上兩單位。是使用相對位置的移動。(例如往前走兩步,而非「在101的門口往前兩步」。)
5. Rotate (transform.Rotate(Vector3 axis, float angle)):使遊戲物件沿著某軸旋轉一定角度,格式為:

transform.Rotate(Vector3.up, 90)
  1. Look At (transform.LookAt(Vector3 target)):使遊戲物件面對某個特定位置。使用方法例如:
GameObject1.transform.Rotate(GameObject2.transform.position);

另外,還有其他的一些函式也可能很實用:https://ithelp.ithome.com.tw/upload/images/20231014/201632355RRZl7mHMv.png

Transform可以設定遊戲物件的Parent親輩關係。當然,這會影響到Hierachy介面的階層。
例如:

transform.parent = otherTransform; // Set this object's parent to be 'otherTransform'

就會設定該物件的親輩為「otherTransform」。

另外,「transform.localPosition」、「transform.localRotation」、「transform.localScale」會顯示對於該親輩的相對位置、相對旋轉、相對尺度。
而「transform.position」、「transform.rotation」、「transform.lossyScale」則可以表現在世界的絕對位置、旋轉還有「有損的」尺度資訊。

當然,也可以設定為無親輩,只要:

transform.parent = null;

就好了。


哇!
真的做完了。
沒有下一天了,但是希望這不是我對遊戲熱情以及資訊傳播的結尾。
更多遊戲相關內容,我們下次見。


上一篇
從零開始!使用chatGPT製作Unity回合制卡牌遊戲 Day 29 - Raycast
系列文
從零開始!使用chatGPT製作Unity回合制卡牌遊戲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言