Files
2026-02-21 16:45:37 +08:00

183 lines
2.8 KiB
C#

using System.Diagnostics;
using UnityEngine;
namespace SRF
{
public abstract class SRMonoBehaviour : MonoBehaviour
{
private Collider _collider;
private Transform _transform;
private Rigidbody _rigidBody;
private GameObject _gameObject;
private Rigidbody2D _rigidbody2D;
private Collider2D _collider2D;
public Transform CachedTransform
{
[DebuggerStepThrough]
[DebuggerNonUserCode]
get
{
if (_transform == null)
{
_transform = base.transform;
}
return _transform;
}
}
public Collider CachedCollider
{
[DebuggerStepThrough]
[DebuggerNonUserCode]
get
{
if (_collider == null)
{
_collider = GetComponent<Collider>();
}
return _collider;
}
}
public Collider2D CachedCollider2D
{
[DebuggerStepThrough]
[DebuggerNonUserCode]
get
{
if (_collider2D == null)
{
_collider2D = GetComponent<Collider2D>();
}
return _collider2D;
}
}
public Rigidbody CachedRigidBody
{
[DebuggerStepThrough]
[DebuggerNonUserCode]
get
{
if (_rigidBody == null)
{
_rigidBody = GetComponent<Rigidbody>();
}
return _rigidBody;
}
}
public Rigidbody2D CachedRigidBody2D
{
[DebuggerStepThrough]
[DebuggerNonUserCode]
get
{
if (_rigidbody2D == null)
{
_rigidbody2D = GetComponent<Rigidbody2D>();
}
return _rigidbody2D;
}
}
public GameObject CachedGameObject
{
[DebuggerStepThrough]
[DebuggerNonUserCode]
get
{
if (_gameObject == null)
{
_gameObject = base.gameObject;
}
return _gameObject;
}
}
public new Transform transform
{
get
{
return CachedTransform;
}
}
public Collider collider
{
get
{
return CachedCollider;
}
}
public Collider2D collider2D
{
get
{
return CachedCollider2D;
}
}
public Rigidbody rigidbody
{
get
{
return CachedRigidBody;
}
}
public Rigidbody2D rigidbody2D
{
get
{
return CachedRigidBody2D;
}
}
public new GameObject gameObject
{
get
{
return CachedGameObject;
}
}
[DebuggerStepThrough]
[DebuggerNonUserCode]
protected void AssertNotNull(object value, string fieldName = null)
{
SRDebugUtil.AssertNotNull(value, fieldName, this);
}
[DebuggerStepThrough]
[DebuggerNonUserCode]
protected void Assert(bool condition, string message = null)
{
SRDebugUtil.Assert(condition, message, this);
}
[DebuggerStepThrough]
[DebuggerNonUserCode]
[Conditional("UNITY_EDITOR")]
protected void EditorAssertNotNull(object value, string fieldName = null)
{
AssertNotNull(value, fieldName);
}
[Conditional("UNITY_EDITOR")]
[DebuggerNonUserCode]
[DebuggerStepThrough]
protected void EditorAssert(bool condition, string message = null)
{
Assert(condition, message);
}
}
}