一、创建个TransformTest文件
//GameObject 和Transform虽然都可以得到名字但有区别--------------写在最上边的代码
publicGameObject obj1;
publicTransform obj2;
//4对应的代码
//如果int Flag 是1,就正方向移动
int intFlag = 1;
publicfloat speed;
//从这开始:
1.void Start () {
//1.都可以得到GameManger,不同写法而已
Debug.Log("Transform.name" + this.transform.name);
Debug.Log("gameObject.name" + this.gameObject.name);
Debug.Log(transform.gameObject.name);
Debug.Log(gameObject.transform.name);
//2.
Debug.Log("obj1.name" + obj1.name);
Debug.Log("obj2.name" + obj1.name);
//虽然都可以得到名字,都各有特点
Debug.Log(obj1.transform.position);
Debug.Log(obj2.position);
2.void Update () { --也有GetKeyUp
//3.通过获取按键,按键才会走
if (Input.GetKey(KeyCode.W)) //--------前进
{
obj1.transform.Translate(Vector3.forward * Time.deltaTime * 2);//
}
if (Input.GetKey(KeyCode.S)) //----------后退
{
obj1.transform.Translate(Vector3.back * Time.deltaTime * 2);
}
if (Input.GetKey(KeyCode.A)) //--------左移
{
// obj1.transform.Translate(Vector3.left *Time.deltaTime * 2);
obj1.transform.Rotate(newVector3(0, -30, 0) * Time.deltaTime);//左旋转 W 和A 会左转弯
}
if (Input.GetKey(KeyCode.D)) //---------右移
{
// obj1.transform.Translate(Vector3.right * Time.deltaTime * 2);-----------右移
obj1.transform.Rotate(newVector3(0, 30, 0) * Time.deltaTime);//右旋转 W 和A 会转弯
}
if (Input.GetKey(KeyCode.Space))// --------跳
{
obj1.transform.Translate(Vector3.up * Time.deltaTime * 2);
}
//物体会前进定义的是速度
// obj1.transform.Translate(Vector3.forward *Time.deltaTime *2);//1帧一米,1秒60帧,每秒1米,
//相当于每秒向前走两
米,2是速度
二、//练习题目4.沿着Z轴移动,到10就返回反方向移动来回循化
// 最上面有对应的4代码公共定义
void Move() //-----------在Update里调用
{
//如果z轴坐标大于10,就向负方向移动
if(obj1.transform .position .z>10)
{
intFlag = -1;
}
//游戏对象的坐标小于0的时候,就向正方向移动
if(obj1.transform .position .z <=0)
{
intFlag = 1;
}
//如果intFlag=-1,那么Vectore3.forword *intFlag 等同于Vectore3.back,
obj1.transform.Translate(Vector3.forward * intFlag * Time.deltaTime * speed);//在unity里可定义speed
}
三、用PingPong方法实现上面的题目来回循环
publicVector3 startPosition;
publicGameObject obj1;
1.void Start () {
publicVector3 startPosition;
}
2.void Update () {
//用PingPong 求4的要求,简单----两行代码就行
float value= Mathf.PingPong(Time.time, 10)-5; //0到10来回返回,整体-5,就会从-5到5之间运行
obj1.transform.position = startPosition + newVector3(0, 0, value); //在void start里有定义
Debug.Log(obj1);
}