Unity 3D 区域内获取随机点

using UnityEngine;

public class RandomArea : MonoBehaviour
{
    public enum _AreaType { Square, Circle }
    public _AreaType type;
    public Color Color = Color.red;

    public Quaternion GetRotation()
    {
        return Quaternion.Euler(0, transform.rotation.eulerAngles.y, 0);
    }


    public Vector3 GetPosition()
    {
        if (type == _AreaType.Square)
        {
            float x = Random.Range(-transform.localScale.x, transform.localScale.x);
            float z = Random.Range(-transform.localScale.z, transform.localScale.z);
            Vector3 v = transform.position + transform.rotation * new Vector3(x, 0, z);
            return v;
        }
        else if (type == _AreaType.Circle)
        {
            Vector3 dir = new Vector3(Random.Range(-1f, 1f), 0, Random.Range(-1f, 1f)).normalized;
            return transform.position + transform.rotation * dir * Random.Range(0, GetMaximumScale());
        }

        return transform.positio
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值