基本答え&解説のみ
-
Upload
keigo-ando -
Category
Technology
-
view
1.555 -
download
2
Transcript of 基本答え&解説のみ
�8=GCEùðU`�\ÍĉpWnë�wōŌU
ÝŅ�ĥ
JTBWH
�ØÝŅ�į^ąŀsŏŌÎʼnʼn
���� �.B=GL,7E=DG�oi|mxċWwf�
�³èąŀZ]q °��Íbwd
�ġ·őÎÓ[|įijĿä
ÝŅō
問題1 答えHF=B;�.B=GL�8=GCE�
DH6@=7�7@5FF�*H9FG=CB�N
� 2&9BH#G9A���8=GCE�� *H9FG=CB���3� FG5G=7�IC=8�(D9B���� N� � W�W�pÌđ�ć]wbzX� OO
問題1 解説2&9BH#G9A���8=GCE�� *H9FG=CB���3
&9BH#G9A�s��GGE=6HG9
)*.��������/���"��!#�$�-'+(�%�������
http://ufcpp.net/study/csharp/sp_attribute.html引用 : ++C++ // 未確認飛行 C
問題1 解説2&9BH#G9A���8=GCE�� *H9FG=CB���3
FG5G=7�IC=8�(D9B����N�O
,G5G=7�©���qd~
©���Ûs½mx($
問題1 解説2&9BH#G9A���8=GCE�� *H9FG=CB��4;��3
�«²����
Đčāæ Ãňå�²
� 7GE@�wgs�7A8
� F<=:G
� 5@G�wgs�CDG=CB
4 Ãňå�²ďb
ÖĮ�¦²���Ãňå�²�ĪdĐčāæ��ºôrāæÏ
問題1 解説2&9BH#G9A���('-�1- �CADCB9BG *H9FG=CB���3
�°����qxĺÔm]~
�°§²�°�Łè
問題1 解説2&9BH#G9A���('-�1- &CBC�9<5I=CHE *H9FG=CB���3
��¤�Łè
問題1 解説2&9BH#G9A���('-�1- +=;=86C8L *H9FG=CB���3
+=;=86C8LŁè
問題1 解説�FF9GF �E95G9 *H9FG=CB�����¾~ğ
!5A9(6>97G¾~ğ!5A9(6>97G �E95G9�(G<9E *H9FG=CB�
0=B8CJ¾~ğ0=B8CJ *H9FG=CB�
½[ķÝV}wd[Ř
問題1 解説
ÝŅŎ
問題2 答え1/'+%��+'05�#'0,.�1/'+%��+'05�+%'+$�
-1!)'"�") //��1$/0',+����#'0,.�'+#,36������$+1�0$*���'+#,3��1$/0',+�������/0 0'"�2,'#��-$+�'+#,3������6���������$0�'+#,3 �1$/0',+��������7
����-.'2 0$�/0.'+%�1/$.+ *$�����-.'2 0$�'+0�&-�� 0(�� %'�
����2,'#��+���������6��������1/$.+ *$����#'0,.���� 5,10��$40�'$)#��QM���1/$.+ *$����������&-����#'0,.���� 5,10��+0�)'#$.�������&-���������������� 0(����#'0,.���� 5,10��+0�)'#$.��N��� 0(���������������� %'����#'0,.���� 5,10��+0�)'#$.��>CF<��� %'������������77
問題2 解説�8=GCE0=B8CJ�r¾}ăs
ŎĜņV~
�E95G9#BFG5B79��¬�Û����
!9G0=B8CJ��¬�Û����
問題2 解説
�8=GCE0=B8CJ��ĒõbĪĚd~
�E95G9#BFG5B79��¬�Û����,<CJ���
ÜuÍbgÎh_Ēõa�~
問題2 解説
òeōkb[��8=GCE0=B8CJ�sĒõa�pW
!9G0=B8CJ��¬�Û����
Êľm�,<CJ�\Üt�~
問題2 解説
,<CJ.G=@=GL
�E95G9#BFG5B79��¬�Û� �¿Xáń
,<CJ)CDHD ,<CJ�HK0=B8CJ,<CJ�F�ECD�CJB
Đčp��8=GCE0=B8CJ�Ēõą
問題2 解説
,<CJ
�¿Xáń
Ļìr��8=GCE0=B8CJ�Ēõą
!9G0=B8CJ��¬�Û�
問題2 解説!.#�r¾}ăsŎĜņV~
�8=GCE!.#
�8=GCE!.#%5LCHG
問題2 解説!.#�n�!.#%5LCHG�s¿YpWrŘ
¿Ywd
�HGGCB�s��8=GCE!.#�qsďW
問題2 解説%569@ =9@8
,@=89E
問題2 解説�8=GCE!.#�n��8=GCE!.#%5LCHG�oji�¿Xv]hjgŘ
¸Þs�8=GCE!.#%5LCHG
問題2 解説¯����īŃcypW
´
µ
+97G�s.B=GLÄmıĞb{X
問題2 解説
½[ķÝV}wd[Ř
ÝŅŏ
問題3 答えusing UnityEditor;using UnityEngine;
public class Question3 : EditorWindow{
[MenuItem("Question3/EditorWindow")] static void Open() { GetWindow<Question3>(); }
void OnGUI() { if (Event.current.type == EventType.ContextClick) { GenericMenu genericMenu = new GenericMenu(); genericMenu.AddItem(new GUIContent("CreateCube"), false, () => GameObject.CreatePrimitive(PrimitiveType.Cube)); genericMenu.ShowAsContext(); } }}
問題3 解説ĐqđĔ\ďWŁ}�,<CJ�F�CBG9KG
�¿ēd~`n
ħÕm¨��r»ĦqĪĚa�~{Xqp~
問題3 解説�ECD�CJB��¿ēd~n]qs
&57n0=B8CJFrļW�÷þd~`n
&57 0=B8CJF �����&,
?DIU=:O8@A8
���� ���&,U=8
Rect ( 0, 0, 100 , 10 )
問題3 解説
½[ķÝV}wd[Ř
ÝŅŐ
問題4 解答using UnityEditor;
[CustomEditor(typeof(Question4))]public class Question4Inspector : Editor{ public override void OnInspectorGUI() { Question4 question4 = (Question4)target;
question4.username = EditorGUILayout.TextField("名前", question4.username); question4.hp = EditorGUILayout.IntSlider("HP", question4.hp, 0, 10); question4.atk = EditorGUILayout.IntSlider("力", question4.atk, 0, 10); question4.agi = EditorGUILayout.IntSlider("すばやさ", question4.agi, 0, 10); }}
using UnityEngine;
public class Question4 : MonoBehaviour{ public string username; public int hp, atk, agi;}
問題4 解説�8=GCE��ģöbg�¬��¾õ
��8=GCEr¶Ĺ
�,9E=5@=M98(6>97G�
�!.#����oXWXŇq�°�¦��²qĪĚd~[
問題4 解説
�°�¦��²s�8=GCE��£����\ûĕa�lW~
GameObjectInspector
TransformInspector
CameraInspector
問題4 解説�8=GCE��E95G9�8=GCEm�8=GCE�£����Ēõ
GameObject
Transform
Camera
GameObjectInspector
TransformInspector
CameraInspector
問題4 解説¸Þs�&CBC,7E=DG�r�8=GCE�£����
問題4 解説¸Þs�&CBC,7E=DG�r�8=GCE�£����
MonoScript�8=GCE��E95G9�8=GCE
MonoScriptInspector
問題4 解説MonoScript
�8=GCE��E95G9�8=GCEMonoScriptInspector
Editor4Inspector
�HFGCA�8=GCEm¿ēd~�8=GCE�£�����úèd~
問題4 解説�°�¦��²r!.#�âĆd~qs�(B#BFD97GCE!.#���²�²¬��
public override void OnInspectorGUI(){ }
問題4 解説
½[ķÝV}wd[Ř
ÝŅő
問題5 答えusing UnityEngine;
public class Question5 : MonoBehaviour{
public Vector3[] positions = new Vector3[] { new Vector3(0,0,0), new Vector3(-5,0,0), new Vector3(0,5,0), new Vector3(0,0,5), new Vector3(5,-5,5), };
void OnDrawGizmos() { foreach (var position in positions) { Gizmos.DrawWireSphere(position, 0.5f); } }}
wgs
using UnityEngine;
public class Question5 : MonoBehaviour{ public Vector3[] positions = new Vector3[] { new Vector3(0,0,0), new Vector3(-5,0,0), new Vector3(0,5,0), new Vector3(0,0,5), new Vector3(5,-5,5), };}
using UnityEditor;using UnityEngine;
public class Question5Editor{
[DrawGizmo(GizmoType.Active)] static void OnDrawGizmo(Question5 question5, GizmoType type) { foreach (Vector3 position in question5.positions) { Gizmos.DrawWireSphere(position, 0.5f); } }}
問題5 解説(25分)
ヒント1は10分後ヒント2は15分後
ŁèėpÌđ (B�E5J!=MACF(B�E5J!=MACF,9@97G98
īŃpíîWÌđ �E5J!=MAC
問題5 解説(25分)
ヒント1は10分後ヒント2は15分後
ŁèėpÌđ
Đèr&CBC�9<5I=CHEqêd~!=MAC
īŃpíîWÌđ
&CBC�9<5I=CHEqêd~!=MAC
問題5 解説(25分)
ヒント1は10分後ヒント2は15分後
īŃpíîWÌđ
GizmoTypeによって描画を切り替えるオブジェクトがどのような状態なのかを細かく監視
FG5G=7�IC=8���������(B�E5J!=MAC�&CBC�9<5I=CHE�ACBC�9<5I=CHE�!=MAC-LD9�GLD9�
問題5 解説
½[ķÝV}wd[Ř
ÝŅŒ
問題6�²°¡ª²q)CF=G=CB"5B8@9�ĪĚbpaW
)CF=G=CB"5B8@9rĪĚsDCF=G=CBF�¿ēd~`n
DH6@=7�/97GCE�23�DCF=G=CBF���B9J�/97GCE�23N����B9J�/97GCE����������B9J�/97GCE�����������B9J�/97GCE����������B9J�/97GCE����������B9J�/97GCE�������O�
問題6 答え
https://gist.github.com/anchan828/8ce42635b5ce92c90c23
問題6 解説"5B8@9Fs
(B,79B9!.#wgs!=MACğr¶mûĕ
³ľÀãV}%=B9ğ
問題6 解説
½[ķÝV}wd[Ř
ÝŅœ
問題7,7E=DG56@9(6>97G�¾õbpaW
ÂçÇsS�FF9GF *H9FG=CB� *H9FG=CB��5FF9GTnd~
問題7 答え
https://gist.github.com/anchan828/a1442127953909d2ea23
問題7 解説ScriptableObjectを作成するのは簡単
ただし管理を厳密に
問題7 解説
UnityEditor上で値が変更されていてもファイルには保存されていない
データの保存
保存されるタイミングはUnityEditor終了時
問題7 解説
すぐデータをファイルに保存するには、EditorUtility.SetDirty & AssetDatabase.SaveAssetsを使用する
データの保存
問題7 解説
½[ķÝV}wd[Ř
ÝŅŔ
問題8 答え
https://gist.github.com/anchan828/fe92724044cb47315dae
問題8 解説AssetPostprocessorを継承したクラスインポートされるアセットは全てココを通る
問題8 解説サポートされていないアセットのインポート結果を取得するにはOnPostprocessAllAssetsを使用する
ShaderやScriptableObjectなど
問題8 解説
½[ķÝV}wd[Ř
ÝŅŕ
問題9答え
https://gist.github.com/anchan828/6665d545062d07b8210b
問題9解説
��������J<=@9��GEH9���������N������������FGE=B;�F79B9)5E<���������������������������8=GCE.G=@=GL�(D9B =@9)5B9@��,9@97G��88=G=I9�,79B9����FF9GF *H9FG=CB����HB=GL���
������������=:��FGE=B;�#F'H@@(E�ADGL�F79B9)5E<��������������N����������������6E95?�������������O������������F79B9)5G<F��88�F79B9)5E<����������O
EditorUtility.OpenFilePanelはファイルの絶対パスを返すキャンセルされると空文字を返す
キャンセルされるまでファイルを追加する処理
問題9解説EditorApplication.OpenSceneAdditiveは絶対パスでは動作しないことに注意
[email protected]=@�!9G)EC>97G+9@5G=I9)5G<mĘê��qâý
:CE957<��I5E�F79B9)5G<�=B�F79B9)5G<F�N����FGE=B;�DEC>97G+9@5G=I9)5G<��� [email protected]=@�!9G)EC>97G+9@5G=I9)5G<�F79B9)5G<�������8=GCE�DD@=75G=CB�(D9B,79B9�88=G=I9�DEC>97G+9@5G=I9)5G<��O
問題9 解説
½[ķÝV}wd[Ř
ÝŅōŌ
問題10 答え
https://gist.github.com/anchan828/4c18205a5e4a7fa6e316
問題10 解説Undo.RegisterCreatedObjectUndo
オブジェクトの生成に関するUndo
Undo.RegisterSceneUndo
シーンに関するUndo
Undo.~Snapshot系オブジェクト操作に関するUndo
問題10 解説
½[ķÝV}wd[Ř
Z�}