我想在我的下一个项目中使用更好的实践,其中可读性显然很有价值,但性能更重要。所以考虑这两段代码......
在静态温度...
public class Shot : MonoBehaviour {
static Actor tempActor;
static Vector3 tempVec;
static float tempFloat;
static HitResult hitResult;
public float damage;
public float unblockable;
public Vector3 originationPoint;
private void OnTriggerEnter(Collider collision) {
if (collision.gameObject.layer == 11) {
tempActor = collision.gameObject.GetComponent<Actor>();
if (tempActor != null) {
tempVec = collision.transform.position - originationPoint;
// cast ray
originatorActor.RayDisableColliders();
bool rayHit = Physics.Raycast(originationPoint, tempVec, out hitResult, range, 1<<11, QueryTriggerInteraction.Ignore);
if (rayHit) {
if (hitResult.collider.gameObject.CompareTag("Hero") || hitResult.collider.gameObject.CompareTag("Villain")) {
tempActor = hitResult.collider.gameObject.GetComponent<Actor>();
tempActor.HitByShot(class_utilities.GetAngle(hitResult.transform, originationPoint), damage, unblockable);
}
}
originatorActor.RayEnableColliders();
}
}
}
}
当地宣布的临时工
public class Shot : MonoBehaviour {
public float damage;
public float unblockable;
public Vector3 originationPoint;
private void OnTriggerEnter(Collider collision) {
if (collision.gameObject.layer == 11) {
Actor tempActor = collision.gameObject.GetComponent<Actor>();
if (tempActor != null) {
Vector3 offset = collision.transform.position - originationPoint;
// cast ray
originatorActor.RayDisableColliders();
HitResult hitResult;
两种方法之间在性能方面有什么区别,特别是在我看来内存分配和垃圾收集?
喵喵时光机
Smart猫小萌
相关分类