一、场景物体移动
按键:
1、按住鼠标右键进入飞行模式:配合W,A,S,D,Q,E;
2、Alt+鼠标左键 : 旋转 +中键 : 平移 +右键 : 推拉
3、 F键快速到物体上
4 、 V键捕捉到物体上
坐标轴控制:
选多个物体时,center : 坐标轴在中间
pivot : 坐标轴在前一个物体上
local : 本身物体旋转
global : 世界坐标轴 ,界面右上角坐标
二、碰撞问题
1、小球与墙的碰撞 只需在小球上加刚体组件,和collider,墙上不用加什么,只用加collider。
三、组件面板可见性
gameObject.active = false;
访问面板组件属性: GetComponent<Transform>().Translate(0, 1, 0);
访问另一个脚本附加到一样的游戏物体的公共变量和函数
public class example : MonoBehaviour {
public ScriptName script;
public void Awake() {
script = GetComponent("ScriptName") as ScriptName;
script.DoSomething();
}
}
四、脚本问题
1、绘制动画帧
条件:在Resources下建立anim的文件,存放几张动画帧图片
思路:每张图片在一定的时间绘制
代码:
//动画数组
private var anim: Object[] ;
//帧序列
private var nowFram : int;
//动画帧的总数
private var mFrameCount : int;
//限制一秒多少帧
private var fps : float = 15;
//限制帧的时间
private var time : float = 0;
function Start()
{
//得到帧动画中的所有图片资源
anim = Resources.LoadAll("animation");
//得到该动画共有多少帧
mFrameCount = anim.Length;
}
function OnGUI()
{
//绘制帧动画
DrawAnimation(anim,Rect(100,100,32,48));
}
function DrawAnimation(tex:Object[] , rect : Rect)
{
//绘制动画信息
GUILayout.Label("当前动画播放:第"+nowFram+"帧");
//绘制当前帧
GUI.DrawTexture(rect, tex[nowFram], ScaleMode.StretchToFill, true, 0);
//计算限制帧时间
time += Time.deltaTime;
//超过限制帧则切换图片
if(time >= 1.0 / fps){
//帧序列切换
nowFram++;
//限制帧清空
time = 0;
//超过帧动画总数从第0帧开始
if(nowFram >= mFrameCount)
{
nowFram = 0;
}
}
}