10 «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.» 12

ハルシオンシステムの気まま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   

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://halcyonsystemblog.blog.fc2.com/tb.php/427-1dc92ac9
この記事にトラックバックする(FC2ブログユーザー)