Slide 1

Slide 1 text

Unity C# ⼊⾨ - Unity編 - 6OJUZษڧձ !NBUUBL

Slide 2

Slide 2 text

今⽇のメニュー!

Slide 3

Slide 3 text

C# Unity (BNF0CKFDU .POP#FIBWJPVS 3FTPVSDFT *OTUBOUJBUF %FTUSPZ $PNQPOFOU *OQVU %FCVH 1SPpMF

Slide 4

Slide 4 text

1. GameObject

Slide 5

Slide 5 text

%্ۭؒʹ഑ஔ͞ΕΔ͢΂ͯͷ෺͸ (BNF0CKFDUΫϥεͱͯ͠දݱ͞ΕΔ (BNF0CKFDU͕࣮ߦ࣌ͷؔ਺ͷΤϯτϦʔϙΠϯτʹͳΔɻ (BNF0CKFDUʹεΫϦϓτΛ͚ͭΔ͜ͱͰ ࡞੒ͨؔ͠਺ͷ࣮ߦ͕ՄೳʹͳΔɻ

Slide 6

Slide 6 text

.POP#FIBWJPVSʹ͸HBNF0CKFDU͕ੜ͍͑ͯΔ public class SampleBehaviour : MonoBehaviour
 {
 void Start()
 {
 this.gameObject; // ࢀরՄೳ
 }
 }

Slide 7

Slide 7 text

͢΂ͯͷ(BNF0CKFDU͸ԼهΛ࣋ͭ this.gameObject.transform; // زԿม׵Λߦ͏ object
 this.gameObject.name; // Inspector্Ͱදࣔ͞ΕΔ໊લ
 this.gameObject.tag; // Inspector্Ͱઃఆ͞ΕΔλά໊
 this.gameObject.activeSelf; // ͜ͷGameObject͕༗ޮԽͲ͏͔ʁ
 this.gameObject.isStatic; // GameObject͕੩త෺ମԽͲ͏͔?
 this.gameObject.layer; // GameObject͕ॴଐ͢ΔϨΠϠʔ໊ ࠲ඪΛॴ༗͠ͳ͍(BNF0CKFDU͸ଘࡏ͠ͳ͍

Slide 8

Slide 8 text

2. MonoBehaviour

Slide 9

Slide 9 text

.POP#FIBWJPVSͱ͸ʁ (BNF0CKFDUʹ"UUBDI͢Δ4DSJQUͷجఈΫϥε ಛ௃ -JGF$ZDMFΛ࣋ͭ 4UBSU 6QEBUF "XBLF 0O&OBCMFʜ (BNF0CKFDU΁ͷγϣʔτΧοτΛ࣋ͭ $PSPVUJOFΛ։࢝Ͱ͖Δ https://docs.unity3d.com/ScriptReference/MonoBehaviour.html

Slide 10

Slide 10 text

-JGF$ZDMF Πϕϯτͷ࣮ߦॱং http://docs.unity3d.com/ja/current/Manual/ExecutionOrder.html ήʔϜͷॳظԽ "XBLF(BNF0CKFDU͕࡞ΒΕͨॳΊͷΈ 0O&OBCMF(BNF0CKFDU͕༗ޮʹͳΔͨͼʹݺ͹ΕΔ 4UBSU0O&OBCMF͞Εͨޙ

Slide 11

Slide 11 text

-JGF$ZDMF Πϕϯτͷ࣮ߦॱং http://docs.unity3d.com/ja/current/Manual/ExecutionOrder.html ෺ཧ൑ఆ 0O$PMMJTJPO&OUFS $PMMJTJPODPMMJTJPO ෺͕͋ͨͬͨ࣌ 0O$PMMJTJPO&YJU $PMMJTJPODPMMJTJPO ෺ʹ͋ͨͬͨޙ 0O5SJHHFS&OUFS $PMMJEFSDPMMJEFS ྖҬʹೖͬͨ࣌ 0O5SJHHFS&YJU $PMMJEFSDPMMJEFS ྖҬ͔Βग़ͨ࣌

Slide 12

Slide 12 text

-JGF$ZDMF Πϕϯτͷ࣮ߦॱং http://docs.unity3d.com/ja/current/Manual/ExecutionOrder.html ήʔϜϧʔϓ 6QEBUFຖϑϨʔϜݺ͹ΕΔ -BTU6QEBUF6QEBUFͯ͠$PSPVUJOFͷ࣮ߦऴྃޙ

Slide 13

Slide 13 text

-JGF$ZDMF Πϕϯτͷ࣮ߦॱং http://docs.unity3d.com/ja/current/Manual/ExecutionOrder.html ऴྃ࣌ 0O%JTBCMF(BNF0CKFDU͕"DUJWFͰͳ͘ͳͬͨλΠϛϯά 0O%FTUSPZ(BNF0CKFDU͕ফࣦ͢Δ࠷ޙͷλΠϛϯά

Slide 14

Slide 14 text

֤छϓϩύςΟ (BNF0CKFDU΁ͷγϣʔτΧοτ΋࣋ͭ this.enabled; // εΫϦϓτ͕༗ޮԽͲ͏͔
 this.isActiveAndEnabled; // εΫϦϓτ͕༗ޮͰGameObject͕༗ޮ͔ʁ 
 this.gameObject; // GameObject΁ͷࢀর
 this.tag; // λά
 this.transform; // زԿมܗΛߦ͏ object
 this.hideFlags; // 
 this.name; // Inspector্Ͱදࣔ͞ΕΔ໊લ

Slide 15

Slide 15 text

$PSPVUJOFͷ։࢝΋Ͱ͖Δ public class SampleBehaviour : MonoBehaviour
 {
 void Start()
 {
 this.StartCoroutine(Hoge());
 }
 
 IEnumerator Hoge()
 {
 yield return null;
 }
 }

Slide 16

Slide 16 text

3. Resources

Slide 17

Slide 17 text

3FTPVSDFTͰ0CKFDUΛಡΈࠐΉ͜ͱ͕Ͱ͖Δ Sprite sprite = Resources.Load("image"); 6OJUZͰ͸A3FTPVSDFTA͕ಛघϑΥϧμʹͳ͍ͬͯΔ 3FTPVSDFTҎԼʹ͋Δ΋ͷ͸ಡࠐ͕Մೳ ্͸l3FTPVSDFTJNBHFQOHzΛಡΈࠐΜͰ͍Δ

Slide 18

Slide 18 text

3FTPVSDFTͰ1SFGBCΛࢀর͢Δࣄ΋Ͱ͖Δ l3FTPVSDFT*UFNzΛࢀর GameObject _gameObject = Resources.Load("Item"); ಡΈࠐΈϑΥϧμ͸ɺ3FTPVSDFTͱ͍͏ϑΥϧμ໊Ͱ͋Ε͹ɺ Ͳͷ֊૚ʹ͋ͬͯ΋͍͍

Slide 19

Slide 19 text

4. Instantiate

Slide 20

Slide 20 text

(BNF0CKFDU*OTUBOUJBUFͰ 1SFGBCΛݩʹΦϒδΣΫτͷੜ੒͕Ͱ͖Δ GameObject _prefab = Resources.Load("CheckItem");
 GameObject _object = Instantiate(_prefab);

Slide 21

Slide 21 text

௥ՃͰҾ਺ࢦఆ͕Ͱ͖Δ ୈೋҾ਺*OTUBOUJBUF͢Δ%࠲ඪ ୈࡾҾ਺ճసํ޲ GameObject _object = Instantiate(_prefab, Vector3.zero, Quaternion.identity) as GameObject;

Slide 22

Slide 22 text

௥Ճͨ͠(BNF0CKFDUͷ਌͸4FU1BSFOUͰࢦఆ _object.transform.SetParent(this.transform); _object.transform.SetParent(this.transform, false); ୈೋҾ਺ͰXPSME࠲ඪͷҐஔɾεέʔϧͰ഑ஔ͢Δ͔ʁ GBMTFࢦఆͨ͠਌ʹैଐɺ࣮ࡍͷҐஔɺεέʔϧ͕มΘΔ USVFXPSME࠲ඪ্ͷҐஔεέʔϧ͕มΘΒͳ͍Α͏ ࣗ਎ͷҐஔɺεέʔϧΛ਌ʹج͍ͮͯΛ࠶ܭࢉɻ

Slide 23

Slide 23 text

5. Destroy

Slide 24

Slide 24 text

4DFOFʹొ৔ͨ͠(BNF0CKFDUΛ࡟আ͢Δ͜ͱ͕Ͱ͖Δ // Ҿ਺ʹGameObjectΛ౉͢͜ͱͰࣗ਎Λ࡟আͰ͖Δ
 GameObject.Destroy(this.gameObject); // 1ඵޙʹ࡟আ͢Δ
 GameObject.Destroy(this.gameObject, 1.0f); ඵ਺Λࢦఆͯ͠ɺͦͷޙʹ࡟আ΋Ͱ͖Δ

Slide 25

Slide 25 text

6. Component

Slide 26

Slide 26 text

SampleBehaviour sample = this.gameObject.AddComponent(); (BNF0CKFDUʹ෇ଐ͢Δ$PNQPOFOU͸ಈతʹ௥ՃͰ͖Δ SampleBehaviour sample = this.gameObject.GetComponent(); ·ͨऔಘ΋Ͱ͖Δ

Slide 27

Slide 27 text

(FU$PNQPOFOU͸.POP#FIBWJPVSʹ΋ੜ͍͑ͯΔ (BNF0CKFDUʹ෇͍͍ͯΔ$PNQPOFOUͳΒͳΜͰ΋औಘՄೳ var text = this.GetComponent();
 var trans = this.GetComponent();
 var collider = this.GetComponent();

Slide 28

Slide 28 text

ෳ਺ಉ͡$PNQPOFOU͕͋Δ৔߹͸ SampleBehaviour[] components = this.GetComponents(); SampleBehaviour component = this.GetComponentInChildren();
 SampleBehaviour component = this.GetComponentInParent();
 ࢠཁૉ͔Β΋औಘͰ͖Δ ਌ཁૉ͔Β΋औಘͰ͖Δ

Slide 29

Slide 29 text

ଞͷ$PNQPOFOUΛऔಘ͢Δํ๏ ࣗ෼ͷ(BNF0CKFDUʹ͚ͭͯࢀর ҉໧తಉҰγʔϯ QVCMJDͰઃఆͯ͠ࢀর ໌ࣔతಉҰγʔϯ 'JOEͰ୳ͯ͠ࢀর ҉໧తಉҰγʔϯ 4JOHMFUPOʹͯ͠ࢀর ҉໧తάϩʔόϧγʔϯ

Slide 30

Slide 30 text

'JOEͰ୳͢ GameObject obj1 = GameObject.Find("Sample");
 GameObject obj2 = GameObject.FindGameObjectWithTag("Player");
 GameObject obj3 = GameObject.FindObjectOfType(); جຊతʹ͸UBHΛ͚ͭͯ୳͢ͷ͕ૣͯ͘ྑ͍ ͦ΋ͦ΋୳͞ͳ͍ͰࡁΉઃܭ͕Α͍

Slide 31

Slide 31 text

7. Input

Slide 32

Slide 32 text

public class SampleBehaviour : MonoBehaviour
 {
 void Update()
 {
 if (Input.GetKey(KeyCode.Space))
 {
 // εϖʔεΛԡͯ͠Δؒtrue
 }
 
 if (Input.GetKeyDown(KeyCode.Space))
 {
 // εϖʔεΛԡԼͨ͠ॠؒͷΈtrue
 }
 
 if (Input.GetKeyUp(KeyCode.Space))
 {
 // εϖʔεΛԡԼͯ͠཭ͨ͠ॠؒͷΈtrue
 }
 }
 } (FU,FZϘλϯೖྗΛऔಘ

Slide 33

Slide 33 text

(FU,FZϘλϯೖྗΛऔಘ Input.GetMouseButton(0); // ࠨΫϦοΫ
 Input.GetMouseButtonDown(1); // ӈΫϦοΫ
 Input.GetMouseButtonUp(2); // ਅΜதΫϦοΫ

Slide 34

Slide 34 text

// λονΠϕϯτͷॲཧ
 if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved)
 {
 }
 
 TouchPhase.Began; // ։࢝
 TouchPhase.Ended; // ऴྃ
 TouchPhase.Moved; // Ҡಈத
 TouchPhase.Stationary; // λονͨ͠··ఀࢭத
 TouchPhase.Canceled; // γεςϜଆͰΩϟϯηϧ͞Εͨ (FU5PVDIλονΠϕϯτͷऔಘ

Slide 35

Slide 35 text

Input.acceleration; // Ճ଎౓
 Input.location; // Ґஔ৘ใ
 Input.compass; // ίϯύε
 Input.deviceOrientation; // σόΠεͷํ޲ ͦͷଞऔಘͰ͖Δ΋ͷ

Slide 36

Slide 36 text

8. Debug

Slide 37

Slide 37 text

%FCVH-PH999Ͱϩά͕͸͚Δ Debug.Log("debugϩά");
 Debug.LogWarning("warningϩά");
 Debug.LogError("errorϩά");

Slide 38

Slide 38 text

Debug.Break(); Ұ࣌ఀࢭΛϓϩάϥϜଆ͔Β͢Δ͜ͱ͕ग़དྷΔ ͜Ε͕ԡ͞Εͨঢ়ଶ

Slide 39

Slide 39 text

Debug.isDebugBuild; // debugϏϧυͰ͋Ε͹true %FCVHϏϧυ͔Ͳ͏͔൑ఆͰ͖Δ

Slide 40

Slide 40 text

$MFBSϩάΛ࡟আ͢Δ $PMMBQTFಉ͡ϝοηʔδͷϩάΛ·ͱΊΔ $MFBSPO1MBZ։࢝ϘλϯΛԡ͢ͱϩάΛΫϦΞ͢Δ &SSPSPO1BVTFΤϥʔ͕ى͖ͨΒϙʔζ͢Δ ͦͷଞ$POTPMFͷ࢖͍ํ

Slide 41

Slide 41 text

9. Profile

Slide 42

Slide 42 text

(BNFϏϡʔͷ4UBUTΛԡ͢ͱ؆қతͳ৘ใ͕ݟΕΔ

Slide 43

Slide 43 text

8JOEPX1SPpMFSͰ$16/FUXPSL.FNPSZදࣔ