Unity 2DでRaycast/Colliderを使わずにマウスの位置からクリックされたオブジェクトを取得する

Unity 2Dで、UIなどに対してボタンを使わずにクリック判定を実装しようと思った場合に、ググると大体以下のような手順が記載されています。 EventSystemを追加 対象のオブジェクトにBox Collider2Dなどのコンポーネントをアタッチ Box Collider2Dのサイズを…

E.G.G. Japan体験記/Google Professional Cloud Architectの認定資格を取得しました

GCP

今回の記事では、E.G.G. Japan(Expert of GCP for Gaming Japan)というGoogle主催のオンラインセッションに参加し、その流れでProfessional Cloud Architectの認定資格を取得したというお話について書きたいと思います。 Professional Cloud Architect 認…

【Unity】スクロールビューに配置された要素の上でマウスホイールによるスクロールができない問題を解決する

概要 Unityにデフォルトで用意されているGUIのScroll Viewについて、これは名前の通り限られた表示領域に多くのオブジェクトを配置できるスクロール可能なレイアウト用オブジェクトですが、 これはデフォルトの状態だとマウスホイールでスクロールすることが…

【Kotlin】Apache PDFBoxの使い方 ~複数画像のpdf化、pdfの暗号化など~

皆さんPDFはお好きですか。変な質問かもしれませんが、自分に関して言えばこのPDFというファイルの形式はかなりお気に入りで、というのも自分がそれなりに愛用しているノートアプリのEvernoteがとにかくPDFの保存と整理に長けており*1、学生時代は参考論文を…

M1チップ搭載Macにccat + enhancdを入れる

前置き 一ヶ月くらい前の話なんですが、最近新型Mac Miniを買いました。M1チップ搭載のやつです。もともと使ってたWindows機は10年くらい前のHPのワークステーションを中古で買ったもので、パーツを取り替えたりした後は特に問題もなく使っていたのですが、…

【Unity】Resouce.Load以外から画像を読み込んでSpriteに変換する

Unityでファイルから画像を読みこんで GUIのImageコンポーネントなどに設定するには、通常は以下のようにすると思います。 var sprite = Resources.Load<Sprite>("image_xxx"); var image = GameObject.Find("SomeSprite").GetComponent<Image>(); image.sprite = sprite; </image></sprite>…

CloudFrontでS3のコンテンツをキャッシュし、Lambda@Edgeでブラウザキャッシュを有効にする

AWS

仕事でCloudFrontに触る機会があったので復習兼メモ書きです。AWS始めたてなので色々間違ってる部分があるかもしれませんがご了承ください。 CloudFrontとは CloudFrontは一言で言うとCDNで、S3などのオリジンサーバーに存在する静的コンテンツをキャッシュ…

【Unity】UniRxで列数、行数から動的にセルサイズを調整するGrid Layout Groupを実現する

Unityのレイアウト用コンポーネントの1つにGrid Layout Groupがあります。 名前の通りグリッド、もといエクセルのような表形式でオブジェクトを配置する場合に使うためのコンポーネントですが、個人的にはいまいち使い勝手が悪いと感じています。Grid Layout…

DoTweenのOnComplete()が呼ばれなくて困った話

久しぶりにDoTweenを使っていてしょうもないことでハマったので、反省の意味を込めてメモしておきます。 アニメーションが再生中であるかどうかを判定するために、再生中のSequenceをメンバー変数に持たせればいいかと思い以下のように書いていました。 usin…

Ubuntu 18.04(Zorin OS 15.2)にUnity+C#の開発環境を構築するメモ

はじめに 最近自宅のPCにLinuxを導入しました。仕事でMacを触るようになってから、Windowsのコマンドライン関連を含めた使いづらさが目立つようになり、その他の細かい不満点を含めて脱Windowsを目指そうと思ったからです。 LinuxディストリビューションはZo…

【Unity 2D】一番簡単なHPバーの作り方+その他ダメージ演出

よく作るのでメモしておきます。コード全体へのリンクは記事の最後に貼ってあります。 とりあえず一番簡単なHPバーの作り方 本当に最低限の労力でHPバーを作るなら以下のようになります。前提としてヒエラルキーにCanvasが存在し、Render ModeがScreen Space…

UnityでTransformのposition.x, y, zの各値を、拡張メソッドで直接変えられるようにする

さんざん言われてることだとは思いますが、UnityでTransformの位置、つまりpositionの値を変更したいと思ったとき、positonのx,y,zという各値を直接変更することはできません。 //これはできない transform.position.x = 10f; これはtransform.positionが、…

Hexo+Typoraではじめる、一番楽な技術ブログの書き方

はじめに この度新しい技術ブログを始めることにしました。Hexoでサイト作ってNetlifyにデプロイしてます。この記事を書くためにサンプルをそのまま上げていて設定とかなんもやってないのですが、また折をみて更新していきたいと思います。 Kanchiの雑記帳 |…

Spring Data JPAの使い方メモ

最近になってJavaのSpring Bootを使ったWeb開発の勉強をはじめました。その中でSpring Boot JRAというデータベースを操作するためのライブラリが便利だったので使い方をまとめておきます。 依存関係 以下はビルドツールにgradleを使用する場合の例です。Spri…

【Python】ダンガンロンパのガチャ(モノモノマシーン)を自動で回し続けるためのマクロを作る(Steam版)

ゲーム「ダンガンロンパ」にはモノモノマシーンと呼ばれるガチャガチャが存在しており、ゲーム内で得られるコインを投入することで仲間の好感度を上げるためのプレゼントアイテムを入手することができます。 Steam版では実績の一つに、このプレゼントを全種…

作業時間を自動で記録できるアプリを作りました(Windows向け)

だいぶ前の記事でこういうの作りたいと書きました。 kanchi0914.hatenablog.com あれから少しずつですがC#+WPFで開発を進め、ようやく公開できるレベルのものが作れたので、GithubでReleaseするに至りました。 github.com 主な仕様は以下のようになっていま…

【C#】ナップサック問題の最適値を満たす商品の番号を求める(動的計画法)

C#

最近、蟻本と呼ばれる本を使って競技プログラミングの勉強をしています。 動的計画法でナップサック問題を解く部分で、最適値ではなく最適解(選ぶ品物の番号)を求めるコードが書かれていなかったので、少し調べてみました。 各品物が使われるかどうかを、作…

【C#】Unityで一からギャルゲー(ノベルゲーム)作るためのサンプルコード

一応は前回の記事の続きにあたりますが、コードの内容はほとんど別物です。 前回の記事ではゲームの方針として脱出ゲームのようなものを考えていましたが、今回はやや方向性を変えギャルゲーっぽいものを作ることを想定します。 今回の記事でやりたいことは…

【C#/Unity】出現率から項目を一つルーレット選択で選ぶ拡張メソッド

RPGなどで、出現率(選択確率)などからある項目を一つ選びたい場面がしばしばあると考えられます。 例えば、敵の各行動が行われる確率を以下のようにDictionary形式で表すとするとき var enemyActionProbs = new Dictionary<string, int>() { { "attack", 60 }, { "guard",</string,>…

【C#】Unity 2Dでできるだけ簡単にアドベンチャーゲーム(ノベルゲーム)を作る その2

kanchi0914.hatenablog.com 前回の記事の続きです。前回の記事では、クリックでテキスト送りの部分まで実装しましたが、当然それだけではゲームとして成立しません。今回は選択肢を表示させ、コマンドを実行することで最低限ゲームとして遊べるようにします…

【C#】Unity 2Dでできるだけ簡単にアドベンチャーゲーム(ノベルゲーム)を作る その1

だいぶ前に書いた書きかけの記事があったので、追記して更新します。 この記事は、「Unityでアドベンチャーゲーム作りたいけど、どうやったらいいのか分からない」という方のために書かれた、 Unity 2Dで可能な限り最小限のコードのみでアドベンチャーゲーム…

【WPF】ContextMenuに表示される一部項目を、場合に応じて選択できなくする

意外と書いてあるサイトが少なかったのでメモしておきます。 WPFで、通常右クリック時に開かれるメニューに用いられるContextMenuコントロールの内容を、 開かれる前に編集したいことがあると思いますが、 そのときはContextMenuOpeningイベントを利用すると…

Unity 2Dでサイコロを作る

こういうの作ります。 3Dのサイコロを作る方法はいくつか他サイトで公開されていて、2Dのサイコロも同じようにしてすぐ作れるだろうと思っていたら、思いの外苦労したのでその過程を記録しておくことにしました。 制作過程 まずはサイコロの各面の画像を適当…

アプリケーションの起動時間を測るソフトを作る(Java)

PCで何かしらの作業をしている時、その作業時間を測っておきたいと思うことがあります。 1万時間の法則という言葉もあるくらいですから、例えば趣味にどれくらいの時間を使っていて、 どれくらい頑張ったのかを確認して満足したり、 はたまたゲームなどに費…

環境変数を設定したのにコマンドが通らない、と思ったら

メインで使っているデスクトップでは問題なかったのですが、サブで使っているWindows8.1ノートでは、コマンドプロンプトからAnacondaのコマンドが実行できないことに気づきました。 Anacondaはインストール時に環境変数を設定するかどうか選べるので、おそら…

UbuntuでNo space left on deviceエラーが出たときの対処メモ

現象 Linux版Unreal Engine4で、CARLAというカーシミュレータをパッケージ化する際、以下のエラーによりクックが失敗する現象に遭遇しました。 LogDirectoryWatcher: Error: inotify_add_watch cannot watch folder /home/USERNAME/carla/Unreal/CarlaUE4/Pl…

巡回セールスマン問題を2-opt法で解く(Python)

概要 巡回セールスマン問題(TSP:Traveling Salesman Problem) は、都市の集合と各2都市間の移動コストが与えられたとき、 全ての都市をちょうど一度ずつ巡り出発地に戻る巡回路の総移動コストを最小化する、組み合わせ最適化問題です。 以前、大学の講義で自…

クリップボードのテキスト内の改行を削除するツール(Python + PyInstaller)

最近のGoogle翻訳の精度は本当に凄くて、英語の文献をしょっちゅうコピペしながら読んでいます。 ただ、Google Chromeの拡張機能から翻訳する場合は大丈夫なのですが、Adobeのリーダーなどからコピーした文を貼り付けると改行コードが残り、 そのままペース…