07 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 09

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【ハルシオンブログ】SpriteにPolygonColider2Dつけたんだけど、絵を変えてもColiderがかわらねええええ!!!って時にはこうしました。 

こんにちは!坂内っす。

UnityでPolygonColider2Dを付けたSpriteの絵を変えたときに、Coliderが元のままじゃねえかあああ!!
ってことありませんか?


「変更したSpriteの形にCoiliderを合わせたい」

そんな時にはこうすればいいっすよ。

まずは形を変えるSpriteRendererとボタンを用意。

変更する絵としては以下を用意


形変更ボタンを押したときのコードはこちら。
【ChangeShape】
using UnityEngine;

public class ChangeShape : MonoBehaviour {

public SpriteRenderer graph;
public Sprite[] shape;
int shapeNo = 0;

public void ChangeShapeGraph() {
shapeNo++;
shapeNo = (int)Mathf.Repeat(shapeNo,3);
graph.sprite = shape[shapeNo];
}
}


これを実行するとこうなります。


緑の枠がColiderですね。

始めの四角のポリゴンコライダーのまま他の形に変わっても変化しません。

そこで、コードを以下のように変更してみました。

using UnityEngine;

public class ChangeShape : MonoBehaviour {

public SpriteRenderer graph;
public Sprite[] shape;
int shapeNo = 0;

public void ChangeShapeGraph() {
shapeNo++;
shapeNo = (int)Mathf.Repeat(shapeNo,3);
graph.sprite = shape[shapeNo];
Destroy(graph.gameObject.GetComponent());
graph.gameObject.AddComponent();
}
}


PolygonColider2Dを一度消して、再度つけなおすことで、変更されたSpriteに合わせたPolygonColider2Dが作成されます。



ということで、AddComponentとDestroyでうまくやっちゃってください!

それではあでゅ~ノシ
スポンサーサイト

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】Unityでビルドしたアプリのログとかが確認ができるようになったんすね。 

こんにちは。
大坂です。

今日は昨日に比べてだいぶ涼しいですね。
昨日は暑くて溶けそうでした…。

あ、夏ということでポケガ2で水着と浴衣のセール始めました。


是非是非、プレイしてみてくださいね。
http://halcyon-system.com/pokega/


さてさて、今週もネタを絞り出したいのですが…。
そういえば、Unity2017でConsoleにこんなやつが追加になってますね。


プラットフォームをAndroidにし、Development Buildにチェックを入れてあげて、BulidAndRunでAndroidにアプリをインストール


接続してるやつが見えるように…!


ポチポチボタンを押すとログを出すだけのやつですが、ちゃんとログが吐き出されます。


まぁAndroidならmonitorで見れるので…という話もありますが…まぁ…こんなことができるようになったということで…。

ということで今週もこれだけなんですよ!
ではまたノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】RPGも作るけど、ポケガも何とかしないとね・・・ポケガ放置してほんとすいませんorz 

おこんにちは。坂内っす。

次のアプリでTextMeshProを使おうとしたら、エラーがでるんですよね。
今使ってるUnityは「Unity 2017.1.0f3」なんですけどね。

で、次のバージョン?Unity2017.1.0b1とかで直るみたいなこと書いてたんですが、TextMeshPro自体使うのか怪しくなってきました・・・

なんかUI周りでいいアセットとかないですかねー
今まで全然アセットとか使ってこなかったので、いいアセット知ってる方いたら教えてちょ!

なんかこのアセット使うとこんな感じのことができるんすよ。的な感じでいいんですが・・・

あ、ネタがないんで、ポケットガールの話を1つ。

[宣伝]
ポケットガール
女の子を育てるシミュレーションゲーム
http://halcyon-system.com/pokega/

最近こんなメールをユーザ様から頂きました。

[一部抜粋]
「最近ポケットガールの大幅なアップデートが無くて寂しいのですが。
・・・・・・

私は2も好きですけど、1の方が好きなんです」


うわああああああああああああああああ ありがとうございますううううううううううううううう!!!!

まだまだポケットガール1も人気でうれしいっす!
ってか、2より1のが人気あるんすよね・・・・


ただ、1には引き継ぎとかないので、不便なんですよね。
ほんと思います。

これは是非対応したいのです!

ちょっとポケガ1が古いUnityで作られてて、新しいUnityにすると一部の何かが動かなくて触れないのも事実。

これは、ちょっと時期を見てポケガ1、2共にアップデートをしたいと思います。

1にはできれば引き継ぎ機能もいれたいっすね。
NCMBとかでやってみようかな。

ちょっと、1の方も色々手いれて復活させたいです!

ポケットガールファン(いる?)の方、もうしばしお待ちください!

今作ってるRPGも進めないといけないし、色々と・・・・もう頑張るんば!

今後もハルシオンをよろしくお願いしますううううう!

お金ないいいいいい Entyでもやろうかな?

Category: Androidアプリ紹介

tb 0 : cm 0   

Listの値の取り出し方ね…。おじさん新しい書き方とかついていけてません…orz 

こんにちは。
大坂です。

なんかまた、猛烈な腹痛に襲われていますが、よくあることと思って気にしないでおきます(ぇ

皆さんListに入れた値の取り出しとかどうやってますかね。
どうにも今までやってた方法でできると他を調べないタイプなのでforで回して一致してたの取ってたんですけど、
そんなこと書かなくても取れるんですね…。

とりあえずコード。
    class Item {
public int item_no;
public string item_name;
}

List list = new List();

void Start () {
// 適当に値を入れる
for(int i = 0; i < 10; i++) {
Item item = new Item();
item.item_no = i;
item.item_name = "item_" + i;
list.Add(item);
}

int ran = Random.Range(0, list.Count);

Item resultItem_1;
// forで取得(今まで)
for(int i = 0; i < list.Count; i++) {
if(ran == list[i].item_no) {
resultItem_1 = list[i];
Debug.Log(resultItem_1.item_name);
break;
}
}

Item resultItem_2;
// Findを使用して取得
resultItem_2 = list.Find(a => a.item_no == ran);
Debug.Log(resultItem_2.item_name);

}

ちゃんと同じ結果が取れますね(当たり前
ラムダ式的な書き方がどうにも苦手なのであんまり調べたり使ったりしてませんでしたが、
コード量も減りますしこっちの方がいいですかね。

上のコードでitem_noが重複してるときは先に入れた方がとれました。
まぁ一意ので探すとは思いますが一応ってことで。

ということでこんな書き方もあるよってことでした。

ではまたノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】今年のアプリ界隈のでかい飲みも終わったし、開発はじめまそ。あswitch文ってありますよね・・・ 

こんにちは!坂内っす。

先週末はWDDCに参加してきたっス。
WDDCについては和尚さんのブログを参考に。

【WDDC2017】たくさんのご参加ありがとうございました!

それにしてもたくさんの方が集まっていた模様。
0次会(17時~):13名
1次会(19時~):115名
2次会(朝まで):64名

北は北海道から、南は沖縄まで集まる集まる。
さすが和尚といった感じか。

結局12時間飲んでました・・・いつもなら3時頃にはウーロン茶に以降していたのですが、今年はなぜか飲みながら話していたら朝になってました。
新しい出会いも、懐かしい顔も見れて楽しかったですね。

そして朝帰って14時に起き、17時には次の飲みに出かける腐れっぷり。

さて、ちょっと飲みは控えましょう。

ではUnityの話題です。

ネタがないので、ちょー簡単なお話を・・・簡単すぎて「読んだ時間返せ!」とか言わないでくださいね。

switch文ってありますよね。

「変数aaaが0の場合変数a+b、aaaが1の場合axb、aaaが2の場合a/b」を行うとか。


int ret = 0;
switch(aaa){
case 0:
ret = a + b;
break;
case 1:
ret = a * b;
break;
case 2:
ret = a / b;
break;
}


とかってなると思うんですよね。
では以下の場合ってどう書きます?

「aaaが0の場合a+b、aaaが1の場合a+b、aaaが2の場合a+b、aaaが3の場合axb....」

もちろんそのままこう書くこともできます。


int ret = 0;
switch(aaa){
case 0:
ret = a + b;
break;
case 1:
ret = a + b;
break;
case 2:
ret = a + b;
break;
case 3:
ret = a * b;
break;



}


しかしこれ、break書かなければもっと簡単に書けるんですよね。


int ret = 0;
switch(aaa){
case 0:
case 1:
case 2:
ret = a + b;
break;
case 3:
ret = a * b;
break;



}


こんな感じ。

UnityというかC#というか普通のプログラミングの話ですが、これで本日の授業を終わります。

では、あでゅ~ノシ

Category: 開発日記(Unity)

tb 0 : cm 0