「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);
}
}
}
