Unity C# | 父子關係簡介 & 程式控制

更新於 發佈於 閱讀時間約 2 分鐘

前言

  之前提到要撰寫關於父子關係的文章,結果竟然遺忘了,這篇文章主要介紹父子關係,以及相關的程式控制代碼。
  更新:父子物件在進行某些計算時相當好用,在使用父子物件前,也可以思考是否使用座標疊加來讓物件不用進行父子移動。

父子物件

  在Unity中,每一個物件裡面都可以放置物件,而物件下的物件會被稱為子物件,子物件會繼承父物件的一切,包含組件和基本設定。
小箭頭可收納
以左圖為範例,父物件名為「Parent」,子物件名為「child」

資料傳承:以座標為例

  當父物件的世界座標為「0,5,10」,子物件的世界座標為「1,6,11」時,在子物件的座標顯示中會呈現「1,1,1」,也就是以父物件作為基準。

資料傳承:以碰撞為例

  當子物件帶有碰撞Collider,只要與玩家碰撞便會觸發,同時,碰觸到父物件的碰撞範圍一樣會觸發。

程式控制

  我們可以使用一些程式來取得子物件,並藉此來進行一些操作。

取得父物件

gameObject.transform.parent.gameObject;
//父子物件關係儲存在transform

取得子物件

gameObject.transform.GetChild(int index).gameObject;
父物件只能有一個,子物件可以有無數個
由上往下排版分別為0,1,2....index。

取得子物件數量

gameObject.transform.childCount;
//此變數為一個整數(int)

將某物件A變為子物件

A.transform.parent = gameObjct.transform;

將某物件A變為父物件

gameObject.transform.parent = A.transform;

子物件脫離父物件

gameObject.transform.parent = null;

結尾

  這篇文章主要用來記錄父子物件以及程式碼的控制,本身沒有太大的技術難度,只要了解成碼本身怎麼使用即可。
  會撰寫這篇文章,是因為我在Collider碰撞時,子物件觸發了父物件的碰撞事件,導致我去搜尋了父子物件的相關知識,雖然最後沒有用到。
  更新:父子物件除了座標上的變化,還有其他組件跟程式上的共用,因此在進行父子物件的轉移前,要思考是否有必要,如果只是希望一起移動,能不能用其他方式替代?
為什麼會看到廣告
avatar-img
106會員
247內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
瓶裝雪的沙龍 的其他內容
這篇文章主要介紹存取子讀(get)和寫(set)的概述,並且簡單介紹基本的使用方法以及其他程式呼叫範例。
這篇文章會帶你了解Unity中Inspector最基本項目中的Tag&Layer,以及Tag相關應用。
這篇文章會介紹一個靜態浮點數Time.deltaTime,並教導你製作計時器,以及計時器的相關知識與使用建議。
撰寫程式時,有沒有想過宣告的這些變數是怎麼運作的呢? 本文介紹了Value Type跟Reference Type,以及Variable的基本命名方式。
撰寫程式,如何命名很重要,本文舉例了兩種廣泛使用的命名法則,同時收錄了好程式的判斷依據和減少資源浪費的撰寫方式。
這篇文章主要介紹存取子讀(get)和寫(set)的概述,並且簡單介紹基本的使用方法以及其他程式呼叫範例。
這篇文章會帶你了解Unity中Inspector最基本項目中的Tag&Layer,以及Tag相關應用。
這篇文章會介紹一個靜態浮點數Time.deltaTime,並教導你製作計時器,以及計時器的相關知識與使用建議。
撰寫程式時,有沒有想過宣告的這些變數是怎麼運作的呢? 本文介紹了Value Type跟Reference Type,以及Variable的基本命名方式。
撰寫程式,如何命名很重要,本文舉例了兩種廣泛使用的命名法則,同時收錄了好程式的判斷依據和減少資源浪費的撰寫方式。
你可能也想看
Google News 追蹤
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇內容,將會用一個簡單的範例,來解釋物件(Object)和實體(Instance)的差別。包括Instance的簡介、ID、物件改變會影響實體。
Thumbnail
探討師生關係與親子關係的異同,指出大人對孩子的期望與對待方式,以及孩子在這種關係中的角色。建議大人可以用生態觀察的角度看待孩子的成長,接受並欣賞每一個孩子獨特的樣貌。
※ Object(物件) & Constructor Function(建構式函式) Object(物件)是什麼? 物件是一種「可以將資料、程式碼包含在其中」的資料結構。 Object(物件)的兩種創造方式: 匿名物件:直接使用"{}"。沒有特別的名字,直接從Object中繼承過來的一個物件
看到不同的家長與孩子的互動 時常讓我想到我與兒子們的關係
當 父組件 有數據想傳送到 子組件 就可以使用props 1​. 父層傳遞設置 可以在父組件的屬性給予一個值,當作要傳送到子組件的資料。 父層組件​ : <!-- App.vue (父組件) --> <template> <div> <ChildComponent greetin
Thumbnail
上次我們完成用Unity 建完一張椅子,還有學習基本變數的應用,那我們就繼續寫更多的腳本來讓物體有更多的ㄅㄧㄢ #一般不會用Unity來建模啦,主要還是要靠其他3D軟體導入 ●Gravity Scale 重力預設為1,是造成物體下墜的主因,可以先調到0。 (Unity有支援負
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
物件導向設計的一個重點就是封裝,這有很多層面上的意義,但基本上就是控制物件的成員變數和方法的存取權。物件導向的封裝還跟繼承機制有關,這使得有一些時候我們逼不得已必須把函式定義在類別上,這種做法使得物件的功能變得難以拆解。封裝應該是模組的職責,並不需要再給物件相同的能力。 一般的模組系統就是把相
在人際關係中,尋找自身的位置,像下棋那樣,將自己安放在自在的空間
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇內容,將會用一個簡單的範例,來解釋物件(Object)和實體(Instance)的差別。包括Instance的簡介、ID、物件改變會影響實體。
Thumbnail
探討師生關係與親子關係的異同,指出大人對孩子的期望與對待方式,以及孩子在這種關係中的角色。建議大人可以用生態觀察的角度看待孩子的成長,接受並欣賞每一個孩子獨特的樣貌。
※ Object(物件) & Constructor Function(建構式函式) Object(物件)是什麼? 物件是一種「可以將資料、程式碼包含在其中」的資料結構。 Object(物件)的兩種創造方式: 匿名物件:直接使用"{}"。沒有特別的名字,直接從Object中繼承過來的一個物件
看到不同的家長與孩子的互動 時常讓我想到我與兒子們的關係
當 父組件 有數據想傳送到 子組件 就可以使用props 1​. 父層傳遞設置 可以在父組件的屬性給予一個值,當作要傳送到子組件的資料。 父層組件​ : <!-- App.vue (父組件) --> <template> <div> <ChildComponent greetin
Thumbnail
上次我們完成用Unity 建完一張椅子,還有學習基本變數的應用,那我們就繼續寫更多的腳本來讓物體有更多的ㄅㄧㄢ #一般不會用Unity來建模啦,主要還是要靠其他3D軟體導入 ●Gravity Scale 重力預設為1,是造成物體下墜的主因,可以先調到0。 (Unity有支援負
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
物件導向設計的一個重點就是封裝,這有很多層面上的意義,但基本上就是控制物件的成員變數和方法的存取權。物件導向的封裝還跟繼承機制有關,這使得有一些時候我們逼不得已必須把函式定義在類別上,這種做法使得物件的功能變得難以拆解。封裝應該是模組的職責,並不需要再給物件相同的能力。 一般的模組系統就是把相
在人際關係中,尋找自身的位置,像下棋那樣,將自己安放在自在的空間