Unity笔记,onUnitCircle
2015-09-08 10:26
1031 查看
在Unity提供的Random类里,有
insideUnitCIrcle, //返回一个在半径为1的圆里的随机点
insideUnitSphere, //返回一个在半径为1的球里的随机点
onUnitSphere, //返回一个在半径为1的球面上的随机点
但是没有onUnitCircle, //返回一个在半径为1的圆上的随机点,而开发的游戏刚好要用到,所以自己写了个:
using UnityEngine;
using System.Collections;
public class Position : MonoBehaviour {
// Use this for initialization
public static Vector2 onUnitCircle()
{
float radius=1.0f;
float x=Random.Range (-radius,radius);
float y=Mathf.Sqrt (radius*radius-x*x);
if(Random.Range(-1,1)<0)
y=-y;
Vector2 vec2=new Vector2(x,y);
return vec2;
}
}
用起来是没有问题的,就是觉得写的不大专业,不知道是不是有更好的写法,或者可以直接把它写成一个变量。
insideUnitCIrcle, //返回一个在半径为1的圆里的随机点
insideUnitSphere, //返回一个在半径为1的球里的随机点
onUnitSphere, //返回一个在半径为1的球面上的随机点
但是没有onUnitCircle, //返回一个在半径为1的圆上的随机点,而开发的游戏刚好要用到,所以自己写了个:
using UnityEngine;
using System.Collections;
public class Position : MonoBehaviour {
// Use this for initialization
public static Vector2 onUnitCircle()
{
float radius=1.0f;
float x=Random.Range (-radius,radius);
float y=Mathf.Sqrt (radius*radius-x*x);
if(Random.Range(-1,1)<0)
y=-y;
Vector2 vec2=new Vector2(x,y);
return vec2;
}
}
用起来是没有问题的,就是觉得写的不大专业,不知道是不是有更好的写法,或者可以直接把它写成一个变量。
相关文章推荐
- Unity3D 向量运算
- 记录 Spine骨骼动画导入unity 步骤[unity3d 4.6.6版本 2d动画]
- 【Unity3D】 EventManager事件管理器
- Unity 安卓下DLL热更新一(核心思想)
- Unity3D 图集分割
- 【整理】unity3d优化总结篇
- 【Unity技巧】Unity中的优化技术
- 游戏世界之Unity3D的基础认识
- Unity3D 材质丢失
- Unity删除所有子物体保留父物体的2种方式
- Unity 加密解密那些事
- Unity学习疑问记录之协程
- Unity3D: NGUI自定义Atlas,Font
- Unity 2D游戏开发教程之为游戏场景添加多个地面
- Unity 2D游戏开发教程之为游戏场景添加多个地面
- unity动态美术字体制作
- Unity3D教程:动画合成教程(Animation Blending)
- Unity下Android利用Ant构建打包
- 【Unity Shaders】初探Surface Shader背后的机制
- Unity-使用面向对象的思想