C# / Unity2D 学んだこと #3
C#
パッケージマネージャ
- プロジェクトのパッケージマネージメントは、NuGetというものを使うらしい
- ナゲット?
- .NET Coreをインストールすると入る、dotnetコマンドにはNuGetの機能が内包されていて、
dotnet add package TwitterOAuth
- という感じで書く
- WindowsではPackage Managerというツールもあるらしいが、yum/aptと同等のものと言ってる人もいてよくわからない
- Java(Maven)のようにGroupIdのような名前空間的なものはなく、ライブラリの名前のみでインストールできる
-
https://www.nuget.org/
- 92k Unique Packages
-
https://mvnrepository.com/
- 7820k
- なのでライブラリに関してはJavaの方が多そう
- もちろん死んでるライブラリもJavaの方が多いとは思う
匿名クラスとdynamic
- 匿名クラスという、非常に便利なものがある
using System;
using System.Collections.Generic;
class Hoge
{
public static void Main(string[] args)
{
var dyn = new { Age = 30, Name = "mk2" };
Console.WriteLine(dyn.Age);
}
}
- ジェネリクスが必要なところでも使えるらしいので、以下のようなコードも行ける
using System;
using System.Collections.Generic;
class Hoge
{
public static void Main(string[] args)
{
var dyn = new { Age = 30, Name = "mk2" };
var dict = new Dictionary<string, dynamic>();
dict.Add("test", dyn);
Console.WriteLine(dict["test"].Age);
}
}
- dynamicはコンパイル時の型チェックをスルーしてくれる型らしい(乱用するとやばそう)
- ちなみにUnityでは、使っているMono(.NETの互換OSS)のバージョンが古く、利用できないようだ
Unity2D
1回Prefab化したものをSceneウィンドウで編集したい
- Sceneウィンドウで編集→もとのPrefabにドロップすると反映された
アニメーション
- 今の理解
- Animation Clip -> Animation Controller -> Animator Component
- の順で依存関係を持つ
- Animator ComponentはGameObjectに紐づくため再利用は出来ないが、他のAnimation ClipやControllerは一度作れば複数のAnimator Component/Animation Controllerに紐付けたり出来る
- keyframeとは?
-
アニメーション中に到達すべきポイントであるキーフレーム (通過点) by https://developer.mozilla.org/ja/docs/Web/CSS/@keyframes
- アニメーション係数の値を書き換えるポイント
- Animation Controllerの状態遷移について
- ENTRYにとどまることが出来ない?
- 初期状態は何もアニメーションさせず、あるタイミングでアニメーションを開始させたいと思ったが、どうも何もアニメーションしない状態を作らないと行けないようだ
- https://docs.unity3d.com/jp/540/Manual/StateMachineTransitions.html
- Unityのドキュメントを見ても、Idleという状態が存在している
Coroutine
- コルーチン
- https://docs.unity3d.com/jp/530/Manual/Coroutines.html
- Updateの処理とは別のタイミングで処理を実行させたいときに使う
- コルーチンの基本
- StartCoroutine(IEnumarator)でコルーチンを開始できる
- コルーチンは関数実行の中断・再開用システム
- yield hogehogeでコルーチン固有の処理を行う
- yield break - コルーチンの処理を停止する
- yield return new WaitForSeconds(x) - x秒待つ
- コルーチンはあくまで平行プログラミングなので、並列に何かが実行されることはない
- 個人的にコルーチンを使ってみた感想として、コレ使えばなんでも出来るな…と思った
- アニメーションも他の時間経過が必要な処理も全部コルーチンで出来る
- 故に多用しすぎるとヤバイ気もする
- コルーチンの注意点
- StartCoroutineは既存の開始されているコルーチンについて何も関与しないので、コルーチンの管理は開発者が行う必要がある
- void Updateでコルーチンを開始する場合は要注意
- 大量のコルーチンを使うとそれだけ大量のコルーチン状態変数が生まれる
- ヤバイ(小並感)
C#/Unity 学習1週間目だが、ゲームを作ってみた
- https://github.com/mk2/MyUnityDemo_OchimonoGame
- シンプルな「ぷよ○エ」風ゲーム
- ナゲット?
dotnet add package TwitterOAuth
- 92k Unique Packages
- 7820k
- もちろん死んでるライブラリもJavaの方が多いとは思う
using System;
using System.Collections.Generic;
class Hoge
{
public static void Main(string[] args)
{
var dyn = new { Age = 30, Name = "mk2" };
Console.WriteLine(dyn.Age);
}
}
using System;
using System.Collections.Generic;
class Hoge
{
public static void Main(string[] args)
{
var dyn = new { Age = 30, Name = "mk2" };
var dict = new Dictionary<string, dynamic>();
dict.Add("test", dyn);
Console.WriteLine(dict["test"].Age);
}
}
- ちなみにUnityでは、使っているMono(.NETの互換OSS)のバージョンが古く、利用できないようだ
1回Prefab化したものをSceneウィンドウで編集したい
- Sceneウィンドウで編集→もとのPrefabにドロップすると反映された
アニメーション
- 今の理解
- Animation Clip -> Animation Controller -> Animator Component
- の順で依存関係を持つ
- Animator ComponentはGameObjectに紐づくため再利用は出来ないが、他のAnimation ClipやControllerは一度作れば複数のAnimator Component/Animation Controllerに紐付けたり出来る
- keyframeとは?
- アニメーション中に到達すべきポイントであるキーフレーム (通過点) by https://developer.mozilla.org/ja/docs/Web/CSS/@keyframes
- アニメーション係数の値を書き換えるポイント
- Animation Controllerの状態遷移について
- ENTRYにとどまることが出来ない?
- 初期状態は何もアニメーションさせず、あるタイミングでアニメーションを開始させたいと思ったが、どうも何もアニメーションしない状態を作らないと行けないようだ
- https://docs.unity3d.com/jp/540/Manual/StateMachineTransitions.html
- Unityのドキュメントを見ても、Idleという状態が存在している
- ENTRYにとどまることが出来ない?
Coroutine
- コルーチン
- https://docs.unity3d.com/jp/530/Manual/Coroutines.html
- Updateの処理とは別のタイミングで処理を実行させたいときに使う
- コルーチンの基本
- StartCoroutine(IEnumarator)でコルーチンを開始できる
- コルーチンは関数実行の中断・再開用システム
- yield hogehogeでコルーチン固有の処理を行う
- yield break - コルーチンの処理を停止する
- yield return new WaitForSeconds(x) - x秒待つ
- コルーチンはあくまで平行プログラミングなので、並列に何かが実行されることはない
- 個人的にコルーチンを使ってみた感想として、コレ使えばなんでも出来るな…と思った
- アニメーションも他の時間経過が必要な処理も全部コルーチンで出来る
- 故に多用しすぎるとヤバイ気もする
- コルーチンの注意点
- StartCoroutineは既存の開始されているコルーチンについて何も関与しないので、コルーチンの管理は開発者が行う必要がある
- void Updateでコルーチンを開始する場合は要注意
- 大量のコルーチンを使うとそれだけ大量のコルーチン状態変数が生まれる
- ヤバイ(小並感)
- StartCoroutineは既存の開始されているコルーチンについて何も関与しないので、コルーチンの管理は開発者が行う必要がある
C#/Unity 学習1週間目だが、ゲームを作ってみた
- https://github.com/mk2/MyUnityDemo_OchimonoGame
- シンプルな「ぷよ○エ」風ゲーム
- 素材は本屋で売ってた2k円ぐらいの素材集(商用利用可)
- フォントはフォントなにあったフォントを使う
- 反省点
- コルーチンの使い方が雑
- ゲームロジックとアニメーションのタイミング合わせをコルーチンで行ってしまったので、アニメーションのWaitForSecondsの値を変えるとゲームロジックに変化が生まれる(ヤバイ)
- Unityのシーンエディタをうまくあつかえていない
- ビューの生成をコードでやっているので、Unityのシーンエディタを使いこなせていない
- どこからどこまでUnityのシーンエディタで生成すべきかイマイチわからず
- コルーチンの使い方が雑
Author And Source
この問題について(C# / Unity2D 学んだこと #3), 我々は、より多くの情報をここで見つけました https://qiita.com/_mk2/items/6708beffef43375dd6aa著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .