This shows you the differences between two versions of the page.
pjv:laboratoare:2020:01 [2021/10/13 13:36] alexandru.gradinaru |
pjv:laboratoare:2020:01 [2021/10/13 16:13] (current) alexandru.gradinaru |
||
---|---|---|---|
Line 3: | Line 3: | ||
==== Documentatie video ===== | ==== Documentatie video ===== | ||
- | video 1 | + | [[https://youtu.be/3FYJD6sXT74|1. Introducere in Editorul Unity]] |
- | video 2 | + | |
+ | [[https://youtu.be/IjfsxhF7mH4|2. Introducere in scriptingul Unity]] | ||
==== Documentatie extinsa text ===== | ==== Documentatie extinsa text ===== | ||
Line 10: | Line 11: | ||
[[https://ctipub-my.sharepoint.com/:b:/g/personal/alexandru_gradinaru_upb_ro/EX9JzUQOGiJDljh770eC9ioBESCT7N3_TR4CdKBhidDgOg?e=6GMORk|1. Introducere in Editorul Unity]] | [[https://ctipub-my.sharepoint.com/:b:/g/personal/alexandru_gradinaru_upb_ro/EX9JzUQOGiJDljh770eC9ioBESCT7N3_TR4CdKBhidDgOg?e=6GMORk|1. Introducere in Editorul Unity]] | ||
- | [[http://example.com|2. Introducere in scriptingul Unity]] | + | [[https://ctipub-my.sharepoint.com/:b:/g/personal/alexandru_gradinaru_upb_ro/EXdRYNImL8VGryfKsurcUqQBx5af0KLN2pMN-AaicOM6VA?e=eMLA0T|2. Introducere in scriptingul Unity]] |
<note important>Aveti documentatie video si text extinsa, dar si un sumar cu elementele principale necesare in rezolvarea laboratorului, pentru cei care au mai lucrat deja cu Unity si sunt familiarizati cu anumite concepte. </note> | <note important>Aveti documentatie video si text extinsa, dar si un sumar cu elementele principale necesare in rezolvarea laboratorului, pentru cei care au mai lucrat deja cu Unity si sunt familiarizati cu anumite concepte. </note> | ||
Line 180: | Line 181: | ||
=== C# Basics === | === C# Basics === | ||
- | |||
- | > **Classes and Structures** | ||
- | |||
- | One of the basic design decisions every framework designer faces is whether to design a type as a **class (a reference type)** or as a **struct (a value type)**. | ||
- | |||
- | **Similarities:** | ||
- | |||
- | * Both are _container_ types, meaning that they contain other types as members. | ||
- | * Both have members, which can include constructors, methods, properties, fields, constants, enumerations, events, and event handlers. | ||
- | * Members of both can have individualized access levels. For example, one member can be declared `Public` and another `Private`. | ||
- | * Both can implement interfaces. | ||
- | * Both can have shared constructors, with or without parameters. | ||
- | * Both can expose a _default property_, provided that property takes at least one parameter. | ||
- | * Both can declare and raise events, and both can declare delegates. | ||
- | |||
- | **Differences:** | ||
- | |||
- | The Main difference between reference types **(Class)** and value types **(Struct)** we will consider is that reference types are allocated on the heap and garbage-collected, whereas value types are allocated either on the stack or inline in containing types and deallocated when the stack unwinds or when their containing type gets deallocated. | ||
- | |||
- | * Structures are **_value types_**; classes are **_reference types_**. A variable of a structure type contains the structure's data, rather than containing a reference to the data as a class type does. | ||
- | * Structures use stack allocation; classes use heap allocation. | ||
- | * All structure elements are `Public` by default; class variables and constants are by `Private` default, while other class members are by `Public` default. | ||
- | * A structure must have at least one nonshared variable or nonshared, noncustom event element; a class can be completely empty. | ||
- | * Structure elements cannot be declared as `Protected`; class members can. | ||
- | * Structures are not inheritable; classes are. | ||
- | * A structure does not require a constructor; a class does. | ||
> **Static Classes and Singleton** | > **Static Classes and Singleton** |