FC2ブログ
    09 «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.» 11

    ハルシオンシステムの気まま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.jp/tb.php/427-1dc92ac9
    この記事にトラックバックする(FC2ブログユーザー)