Skip to content

Instantly share code, notes, and snippets.

@todorok1
Created March 6, 2025 07:11
Show Gist options
  • Select an option

  • Save todorok1/d8184c1c544cda7870fb6470d60b7c34 to your computer and use it in GitHub Desktop.

Select an option

Save todorok1/d8184c1c544cda7870fb6470d60b7c34 to your computer and use it in GitHub Desktop.
シンプルRPGチュートリアル第40回 戦闘関連のスプライトを制御するクラス
using UnityEngine;
namespace SimpleRpg
{
/// <summary>
/// 戦闘関連のスプライトを制御するクラスです。
/// </summary>
public class BattleSpriteController : MonoBehaviour
{
/// <summary>
/// 背景の表示用Spriteです。
/// </summary>
[SerializeField]
SpriteRenderer _backgroundRenderer;
/// <summary>
/// 敵キャラクターの表示用Spriteです。
/// </summary>
[SerializeField]
SpriteRenderer _enenyRenderer;
/// <summary>
/// カメラへの参照です。
/// </summary>
Camera _mainCamera;
/// <summary>
/// 背景を表示します。
/// </summary>
public void ShowBackground()
{
_backgroundRenderer.gameObject.SetActive(true);
}
/// <summary>
/// 背景を非表示にします。
/// </summary>
public void HideBackground()
{
_backgroundRenderer.gameObject.SetActive(false);
}
/// <summary>
/// 背景と敵キャラクターの位置をカメラに合わせて設定します。
/// </summary>
public void SetSpritePosition()
{
if (_mainCamera == null)
{
_mainCamera = Camera.main;
}
var cameraPos = _mainCamera.transform.position;
var newPosition = new Vector3(cameraPos.x, cameraPos.y, 0);
var backgroundPosOffset = new Vector3(0, 0, 0);
_backgroundRenderer.transform.position = newPosition + backgroundPosOffset;
var enemyPosOffset = new Vector3(0, -0.5f, 0);
_backgroundRenderer.transform.position = newPosition + enemyPosOffset;
}
/// <summary>
/// 敵キャラクターを表示します。
/// </summary>
/// <param name="enemyId">敵キャラクターのID</param>
public void ShowEnemy(int enemyId)
{
Sprite enemySprite = null;
var enemyData = EnemyDataManager.GetEnemyDataById(enemyId);
if (enemyData == null)
{
SimpleLogger.Instance.LogWarning($"敵キャラクターの画像が取得できませんでした。 ID: {enemyId}");
}
else
{
enemySprite = enemyData.sprite;
}
_enenyRenderer.sprite = enemySprite;
_enenyRenderer.gameObject.SetActive(true);
}
/// <summary>
/// 敵キャラクターを非表示にします。
/// </summary>
public void HideEnemy()
{
_enenyRenderer.gameObject.SetActive(false);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment