「技術」カテゴリーアーカイブ

【Unity】シーンにパーツを配置する

画面にパーツを配置してみました。

画面サイズは一番小さい解像度に合わせています。

大きい解像度の端末では、端っこに空きスペースができますが、まぁ、小さい端末使用時に画面からはみ出すよりはマシでしょう。

位置合わせは直接数字をコピペしたほうがよいです。

ほかに早くて良い方法ある?

表示順序はレイヤーの順序を変えることで、どの絵を上に持ってくるかを設定できます。

【Unity】画面に画像を表示する。

プラットフォームやライブラリが変わってもゲーム作りの根本的な部分は一緒なんだなぁ、と、cocos-2dxやAltseedを使ってみてなんとなく気がつきました。

そのときはNodeとかSpriteとか言いましたが、Unityの場合はAssetと呼ばれているようです。

要は、Assetsの中に画像を格納し、それをシーンに張り付けば表示できるはず。

Androidでは横向きに表示させたいので、Player設定を変える必要があります。

できました。

【デザインパターン】Interpreterパターン

Interpreterパターンのサンプルコードをまとめようと思ったのですが・・・

うまくまとまりませんでした。

Interpreterパターンは言語解析の用途に使用されます。

クラス図にするとこんな感じです。

https://www.techscore.com/tech/DesignPattern/Interpreter.html/

package org.example.interpreter;

public abstract class AbstractExpression {
    public abstract void interpret(String context);
}
package org.example.interpreter;

import java.util.ArrayList;

public class NonTerminalExpression  extends  AbstractExpression{
    @Override
    public void interpret(String context) {
        String[] contexts = context.split(",");
        for(int i = 0; i < contexts.length; i++)
        {
            AbstractExpression child = new TerminalExpression();
            child.interpret(contexts[i]);
        }
    }
}
package org.example.interpreter;

public class TerminalExpression extends AbstractExpression{


    @Override
    public void interpret(String context) {

    }
}
package org.example.interpreter;

public class Main {
    public static void main(String args[])
    {
        AbstractExpression child = new NonTerminalExpression();
        child.interpret(args[0]);
    }
}

言語を文節に分けるのはNonTerminalExpression、実際に解析を行うのはTerminalExpressionで処理を行います。

NonTerminalExpressionでは必要に応じて次のNonTerminalExpressionやTerminalExpressionをインスタンス化して使用されます。

【Unity】UnityでAndroid向けアプリを作成する

そんなに難しくなかった。

Unity Hubで新規プロジェクトを作成。

ターゲットをAndroidにすればOK。

使用するNDKやSDK、JDKもUnityに内蔵されている物が使用されます。

とくに設定はいらなかった。

プロジェクトを作成して、Android端末をデバッグ有効にしてUSBに繋いで、ビルド・ランすると、空のアプリが立ち上がります。

ここまで思ったより簡単だった。

【農場経営ゲーム】データファイルを暗号化

https://github.com/takishita2nd/FarmGame/tree/develop

農作物に米を追加しました。

あと、アイテムデータやレシピデータを勝手に書き換えられないようにデータを暗号化させました。

もちろんセーブデータも暗号化しています。

やり方は公式のドキュメントをそのまま使用しました。

https://docs.microsoft.com/ja-jp/dotnet/api/system.security.cryptography.aesmanaged?view=netframework-4.7.2

あとやることは天候かな。

もう少しで完成です。

【農場経営ゲーム】工房画面のページング

https://github.com/takishita2nd/FarmGame/tree/develop

作物にかぼちゃとトマトを追加しました。

あと、ニンジンのレシピを追加しています。

あと、気がついたところにサウンドを入れています。

あとは、工房画面のページング処理をじっどうしていなかったので、処理を追加しています。(ちょっとハマった。)

今後も作物とレシピを作成していきます。

あとやることは、

畑の購入処理、

クラフトできないアイテムのレシピ表示

この二つかな。

【農場経営ゲーム】サウンドの実験

https://github.com/takishita2nd/FarmGame/tree/develop

農作物に人参を追加しました。

あと、画像ファイルをパッケージ化させました。

ただ、jsonやcsvはパッケージに含まれないので、これをどうしようかお悩み中です。

あと、サウンド、というか効果音を試してみました。

こちらのフリー素材を使用しています。

https://soundeffect-lab.info

どうやらAltseed2はmp3に対応していないぽいので、wav形式に変換して使用しています。

これはパッケージ化されていても使用できます。

これをボタン処理に実装していきます。