コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】便利な拡張機能のセット「Unity Extensions」紹介

はじめに

「Unity Extensions」は便利な拡張機能のセットです

使用準備

using Extensions;

拡張メソッドを使用するスクリプトに上記の using を追加します

拡張メソッド一覧

Component

// コンポーネントをアタッチ
someComponent.AddComponent<MyComponent>();

// コンポーネントを取得
// コンポーネントが存在しない場合はアタッチしてから取得
someComponent.GetOrAddComponent<MyComponent>();

// コンポーネントがアタッチされている場合 true
someComponent.HasComponent<MyComponent>();

GameObject

// コンポーネントを取得
// コンポーネントが存在しない場合はアタッチしてから取得
gameObject.GetOrAddComponent<MyComponent>();

// コンポーネントがアタッチされている場合 true
gameObject.HasComponent<MyComponent>();

NetworkPlayer

// インデックスを取得
Network.player.GetIndex();

Rigidbody

// 速度を変更せずに移動方向を変更
rigidbody.ChangeDirection( Vector3.right );

Transform

// 子オブジェクトを追加
transform.AddChildren( someGameObjects );

// 子オブジェクトの座標を ( 0, 0, 0 ) にリセット
transform.ResetChildPositions();

// 子オブジェクトのレイヤーを設定
transform.SetChildLayers( "Ignore Raycast" ); 

Vector3

// 最も近い座標を取得
var otherPositions = someTransforms.Select( t => t.position );
transform.position.GetClosest( otherPositions );

Vector3Int

// Vector3Int から Vector3 に変換
var vector = new Vector3Int( 1, 2, 3 );
var vector3 = vector.ToVector3();

関連記事