「Unity/おすすめアセット/破壊オブジェクト」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→オブジェクトがピンクになる場合) |
|||
行13: | 行13: | ||
==オブジェクトがピンクになる場合== | ==オブジェクトがピンクになる場合== | ||
Unity 2021.3.21f1以降か確認 | Unity 2021.3.21f1以降か確認 | ||
+ | |||
+ | ==オブジェクトが接触した箇所で破壊させる== | ||
+ | VoronoiFragmenter.csを、以下のように一部修正する | ||
+ | 修正前 | ||
+ | <pre> | ||
+ | namespace SimplestarGame | ||
+ | { | ||
+ | public class VoronoiFragmenter : MonoBehaviour | ||
+ | { | ||
+ | internal void Fragment(RaycastHit hit) | ||
+ | { | ||
+ | </pre> | ||
+ | 修正後 | ||
+ | <pre> | ||
+ | namespace SimplestarGame | ||
+ | { | ||
+ | public class VoronoiFragmenter : MonoBehaviour | ||
+ | { | ||
+ | internal void Fragment(RaycastHit hit) | ||
+ | { | ||
+ | FragmentPoint(hit.point); | ||
+ | } | ||
+ | internal void FragmentPoint(Vector3 hitPoint) | ||
+ | { | ||
+ | </pre> | ||
+ | |||
+ | #ターゲットに接触するオブジェクト(Sphere)に、以下SphereColliderを追加する。 | ||
+ | #ターゲット(Cube)のBoxColliderのIsTriggerにチェックを追加 | ||
+ | <pre> | ||
+ | using UnityEngine; | ||
+ | using SimplestarGame; | ||
+ | public class SphereCollider : MonoBehaviour | ||
+ | { | ||
+ | void OnTriggerEnter(Collider collider) | ||
+ | { | ||
+ | if (collider.gameObject.name == "Cube") | ||
+ | { | ||
+ | if (collider.gameObject.TryGetComponent(out VoronoiFragmenter voronoiFragment)) | ||
+ | { | ||
+ | voronoiFragment.FragmentPoint(collider.gameObject.transform.position); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </pre> |
2023年4月4日 (火) 05:15時点における版
破壊アセット
WebGLで使える無料破壊アセット https://github.com/simplestargame/SimpleVoronoiFragmenter
使い方
- 適当にシーンを作る
- 3D/Cubeを新規で作る
- CubeのAddComponentからVoronoiFragmenterを追加
- VoronoiFragmenterのFragmentPrefabに、SimplestarGame/VoronoiFragmenter/Prefab/Fragment.prefabをドラッグして追加する
- MainCameraのAddComponentからSampleShooterを追加
- SampleShooterのMainCameraにMainCameraオブジェクトをドラッグ
- 動作させて、Cubeをクリックすうると破壊される
オブジェクトがピンクになる場合
Unity 2021.3.21f1以降か確認
オブジェクトが接触した箇所で破壊させる
VoronoiFragmenter.csを、以下のように一部修正する 修正前
namespace SimplestarGame { public class VoronoiFragmenter : MonoBehaviour { internal void Fragment(RaycastHit hit) {
修正後
namespace SimplestarGame { public class VoronoiFragmenter : MonoBehaviour { internal void Fragment(RaycastHit hit) { FragmentPoint(hit.point); } internal void FragmentPoint(Vector3 hitPoint) {
- ターゲットに接触するオブジェクト(Sphere)に、以下SphereColliderを追加する。
- ターゲット(Cube)のBoxColliderのIsTriggerにチェックを追加
using UnityEngine; using SimplestarGame; public class SphereCollider : MonoBehaviour { void OnTriggerEnter(Collider collider) { if (collider.gameObject.name == "Cube") { if (collider.gameObject.TryGetComponent(out VoronoiFragmenter voronoiFragment)) { voronoiFragment.FragmentPoint(collider.gameObject.transform.position); } } }