纳金网
标题:
游戏框架-技能范围检测
[打印本页]
作者:
may
时间:
2018-12-31 20:53
标题:
游戏框架-技能范围检测
來自:UnityTerminator
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SkillRange {
/// <summary>
/// 扇形范围判定
/// </summary>
/// <returns><c>true</c>, if range was curved, <c>false</c> otherwise.</returns>
/// <param name="self">Player.</param>
/// <param name="enemy">Enemy.</param>
/// <param name="maxDiatance">Max diatance.</param>
/// <param name="maxAngle">Max angle.</param>
public static bool CurveRange(Transform self,Transform enemy,float maxDiatance,float maxAngle){
Vector3 playerDir = self.forward;
Vector3 enemydir = (enemy.position - self.position).normalized;
float angle = Vector3.Angle (playerDir, enemydir);
float distance = Vector3.Distance (enemy.position, self.position);
if (angle <= maxAngle / 2 && distance <= maxDiatance) {
return true;
} else {
return false;
}
}
/// <summary>
/// 圆形范围判定
/// </summary>
/// <returns><c>true</c>, if range was curved, <c>false</c> otherwise.</returns>
/// <param name="self">Player.</param>
/// <param name="enemy">Enemy.</param>
/// <param name="maxDiatance">Max diatance.</param>
public static bool CurveRange(Transform self,Transform enemy,float maxDiatance){
float distance = Vector3.Distance (enemy.position, self.position);
if (distance <= maxDiatance) {
return true;
} else {
return false;
}
}
/// <summary>
/// 矩形范围判定
/// </summary>
/// <param name="self"></param>
/// <param name="enemy"></param>
/// <param name="maxWidth"></param>
/// <param name="maxHeight"></param>
/// <returns></returns>
public static bool SquareRange(Transform self, Transform enemy, float maxWidth, float maxHeight)
{
Vector3 enemyDir = enemy.position - self.position;
float distance=Vector3.Distance(enemy.position,self.position);
float angle = Vector3.Angle(enemyDir, self.forward);
if ( angle<= 90)
{
float z = distance * Mathf.Cos(angle * Mathf.Deg2Rad);
float x = distance * Mathf.Sin(angle * Mathf.Deg2Rad);
if (x<=maxWidth / 2 && z<=maxHeight)
{
return true;
}
}
return false;
}
}
复制代码
欢迎光临 纳金网 (http://go.narkii.com/club/)
Powered by Discuz! X2.5