独習C#勉強メモ5

独習C#を読んで自分が知らなかったことまとめ

マルチスレッド処理


アプリはだいたいシングルスレッド(unityならawake().start()C#ならmain()みたいな)だけどネットワーク通信するとき処理が1個しか走らないんじゃ困るから個別に処理を走らせるためにある。 非推奨で触るべきじゃないけどThreadクラスというものもある。 スレッドの生成と実行をより改善したのがスレッドプール。 スレッドプールを使ったスレッドのことをタスクという。

[Read More]
Tags: VisualStudio unity 

UnityLearn勉強ノート3

C# Interfaces C# Action

C# Interfaces


https://learn.unity.com/tutorial/c-interfaces?language=en

前半はインターフェースのプロパティについて

後半はジェネリクスの話,インターフェース側でメソッドの引数をTにするとそれを継承して使う側は柔軟にint型にしたりGameObject型にしたりできて柔軟性があるよという話。

C# Action


https://learn.unity.com/tutorial/c-actions?language=en

Player.csの中

using System;
...
public class Player : MonoBehaviour
{
    //delegate型で宣言メソッドの中身はここでは定義しないのでnull
    //delegate型のみで使うには中身を定義しないといけない
    //EX) public OnDamageReceived method_1 = delegate {};
    //    method_1 += method;

    //   private method(){
    //      //実行したい処理
    //   }
    public delegate void OnDamageReceived(int currentHealth);
    pubic static event OnDamageReceived onDamage;
    //eventはクラス内でしか定義できない、実行はクラス内のメソッドからしか行えないdelegate型のこと

   // public static Action onComplete;
    //Actionは返り値がvoidのdelegate,返り値を指定する場合は
    //Action<返り値の型>と書かないと行けない

    public int Health{get;set;}
    ...

    void Damagge(){

        Health--;

        if(onDamage != null)
            onDamage(Health);
    }
}

これを別のところで呼び出すとき

[Read More]
Tags: unityLearn unity 

UnityLearn勉強ノート2

C# Properties

C# Properties

https://learn.unity.com/tutorial/c-properties?uv=2019.3

  • Properties

Vector3 Transform.position{get;set;}

このgetとsetは自分のポジションの位置を手に入れることもできるしセットすることもできるよという意味。

float Time.deltaTime{get;}

これはfloat型の数字をゲットはできてもセットはできないよという意味。

[Read More]
Tags: unityLearn unity 

UnityLearn勉強ノート1

C#Survival Guide オブジェクト指向、データベース、継承、オーバーライド


C#Survival Guide
https://learn.unity.com/project/c-survival-guide-classes?language=en&utm_source=learn_recommendation

OOP(オブジェクト指向プログラミング)について
ちゃんと機能別に分ける。
EX)
プレーヤークラス、レーザークラス。プレーヤー内で発射するレーザーの挙動を書かない。
動画内ではplayerクラスではmovement(),shoot()を定義。
laserクラスではmovement()で弾の挙動を制御する。
武器はweaponStatsで定義。この動画ではplayerクラスの中に定義してる。
weaponStatsで武器の名前は弾の速度、弾の数を定義できる変数を用意。
playerクラスでweaponStatsインスタンスを武器の種類分作って定義。
武器の種類分毎回playerクラスのstart()内に書くのは大変なのでWeaponStatsクラス内にメソッドを用意。このメソッドをコンストラクタという。

[Read More]
Tags: unityLearn unity 

admob広告が配信されない

新しく配信したアプリのIOS版だけadmob広告がうまく配信されなかった話

unityというゲームエンジンを使って作ったアプリにadmobというgoogle様が扱っているモバイル向け広告サービスがあります。
それを使っててハマった話を後でふりかえれるよう書きます。
Ios版とAndroid版で両方配信されないということはあってもAndroid版だけ配信されててIOS版が配信されないということは今までありませんでした。
Unity_EditorのGame画面ではうまいこと表示されてるのにiphoneで動かしたときだけ広告が表示されませんでした。
最初は10日ぐらいしたらadmobで登録できるようになるかなと思っていましたが、一向にappStoreで表示されないためおかしいと思いプロジェクトの設定を見直すことにしました。

[Read More]