TAKOYAKING’s blog 一覧

TAKOYAKING’s blog

たこ焼き系

Google Play Consoleで「新しいリリースを作成」ボタンが非活性で作成できない

f:id:TAKOYAKING:20200901120917p:plain

なぜでしょうか?
先ほどまでできていたのでできるはずですができません。

解決

新しいレイアウトになり、一旦リリーを作成すると「リリース」タブに表示されます。
なので「リリースダッシュボード」から「リリース」タブへ移動して、既存のものを編集するか、または、破棄することで右上の「新しいリリースを作成」が活性になります
f:id:TAKOYAKING:20200901122118p:plain

感想

まだ新しいレイアウトに慣れていないから、戸惑いました。

Admob: Cannot add menu item 'Assets/External Dependency Manager/Package Manager Resolver/Migrate Packages' for method 'PackageMigrator.MigratePackages' because a menu item with the same name already exists. UnityEditor.EditorApplication:Internal_InvokeTic

Cannot add menu item 'Assets/External Dependency Manager/Package Manager Resolver/Migrate Packages' for method 'PackageMigrator.MigratePackages' because a menu item with the same name already exists.
UnityEditor.EditorApplication:Internal_InvokeTickEvents()

PackageMigrator.MigratePackagesは別の名前で同じような注意文がたくさん出ます。

理由はメッセージの通りで重複が起こっているためです。
Assets以下のところにあるものと、package managerに入っているものと両方被っていました。
なので、package managerの方を削除すると注意文が消えます。

これで様子見してみます。

unity: 円は9スライスできない

現象

攻撃範囲の円を表す時に9スライスでやれば良いかなと思ったのですが、9スライスは4角を使って拡大縮小するのでできません。
歪な形になってしまいます。

元は円の画像がこんな感じになります。↓
f:id:TAKOYAKING:20200830104539p:plain

解決策

How can I draw a circle in Unity3D? - Stack Overflow

解決策は3パターン?
1. LineRendererで円を描く
2. shaderで円を描く
3. 普通に画像で描き、拡大縮小を気にしない


今回は3の普通に画像で描きました。
拡大縮小しても何も気にならなかったので良しとします。
f:id:TAKOYAKING:20200831042840p:plain

Unity: Admob appIdはinspectorで設定できるようになっていた

久々にAdmobを触ることになりましたが、公式によると
スタートガイド  |  Unity  |  Google Developers

旧形式

MobileAds.Initialize(appId); 

新形式

MobileAds.Initialize(initStatus => { });

新形式はappIdを引数に取らなくなり、
[Assets] > [Google Mobile Ads ] > [Settings] からandroidiOSのappIdを入力するようになりました。

感想

多分だいぶ前から新形式になっていたのでしょうか?

Android バージョン 17.0.0 および iOS バージョン 7.42.0 向けの Google Mobile Ads SDK では、この手順は必須です。
AdMob アプリ ID を空のままにすると、クラッシュして「The Google Mobile Ads SDK was initialized incorrectly.」というメッセージが表示されますので、すぐにこの変更を加えてください。

と出ていたので、慌てて対応しました。

Unity Shader NodeのUnlitでColorをMultiplyすると色がでない

Help Wanted - Why doesn't Multiply work to change the texture color in Unlit vs Lit? - Unity Forum


ここに書いてました。
propertyのcolorのalpha値が0になっているためです。
f:id:TAKOYAKING:20200830201401p:plain

初期値のalphaが0になっているとは気付きませんでした。結構ハマりました。

Unity: SpriteRendererのbounds.sizeとsizeの違い (備忘録)

SpriteRenderer.bounds.size

Unity - Scripting API: Bounds.size
SpriteRenderer.bounds.sizeは画像の大きさを取得できます。
普通の画像ならこっち使っておけばOK! (雑な説明)

SpriteRenderer.size

Unity - Scripting API: SpriteRenderer.size
SpriteRenderer.sizeはSpriteRendeerer.drawModeがSlicedになっている時にサイズを取得できます。

感想

ややこしい!

The same field name is serialized multiple times in the class or its parent class

The same field name is serialized multiple times in the class or its parent class. This is not supported: Base(WeaponBlockVars) <ObjType>k__BackingField

Unityのエラー「The same field name is serialized multiple times in the class or its parent class.」について - Qiita
この記事によると「継承元と継承先のクラスの同名Private変数をSerializeできないため」と書いてあったのですが、interfaceを継承した基底クラスのフィールドをoverrideした時にもなぜか発生するようです。

ただ、SerializeFieldとして出現するわけではないのに、このメッセージが出るのは気持ち悪いので、いろいろ検索してみました。
↓バグではないか?という記事
The same field name is serialized multiple times in the class or its parent class. This is not supported · Issue #1032 · accord-net/framework · GitHub
↑の記事によると一旦リネームして、もとに戻せば直るよということでしたが、直りませんでした。

環境

  • Unity 2020.1.1f

再現手順

1. Addressablesのnew buildを行う
2. 再生ボタンを押す

とエラーが出力されます。

問題のコード(原因)

interfaceとMonoBehaviourを継承したBaseクラス。
そのBaseクラスを継承した派生クラス。
その派生クラスではBaseクラスのinterfaceメソッドをoverrideする。

public interface ISample {
    int Takoyaki { get; set;}
}

public class Base : MonoBehaviour, ISample {
    public virtual int Takoyaki { get; set;} = 1;
}

public class Derived: Base {
    public override int Takoyaki { get; set;} = 777; //←これがダメらしい・・・
}

解決策

不明。上記のコードで再現するけどいろいろゴニョゴニョやっている内に上記のコードはエラーが出なくなってしまった。

感想

モヤッとする・・・