跑酷入门

点击Q键:抓图,平移场景。Alt+左键,围绕Cube观察,Alt+右键,放大缩小,直接点左键向着周围看,随意看,

点T键:改变模块对象的大小尺寸。

用代码创建9*9个Cube.,代码必须注意大小写

 

           void    Start()

    {

      for(int x=0;x<9;x++)

      {

          for (int y = 0; y < 9;y++ )

          {

              GameObjectg = GameObject.CreatePrimitive(PrimitiveType.Cube);

              g.transform.position = new Vector3(x,y,0);

              g.transform.localScale=new Vector3(0.8f,0.8f,0.8f);

          }

       }

    }

}

 

运用预制件创造9*9个小熊,

将小熊的图片模型拖进Unity,Assect文件下,再把小熊拖进左边的框中,再拖进Assect栏中,形成预制件,

 

动画:Create  一个Animation.把动画拖进主屏框中,

 

代码:

public  Transform g;   //全局变量,代表预制件,小熊,,,和预制件中的 G 栏目相对应。

    void Start()

    {

        for (int x=0;x<9 ;x++ )

        {

            for(int y = 0; y < 9;y++ )

            {

                Transforma = (Transform)GameObject.Instantiate(g);  //游戏体对象类型的转换

                g.transform.position = new Vector3(x,y,0);

                g.transform.localScale = new Vector3(0.8f,0.8f,0.8f);

 

            }

        }

    }

CreateObject  2个,,分别代表近的天空线,另一个代表远的天空线,在把这两个Object创建成预制件,名为SkyCloseline,SkyFarawayline。在Asset里面建4个Folder:Runner,,Skyline,Scene,。。。。把,SkyCloseline,SkyFarawayline预制件放进,Skyline中并创建一个名为SkyFarawaylineprefab,,SkyCloselineprefab.再建一个SkyCloselineScript脚本。

using System.Collections.Generic;
public class SkyCloselineScript : MonoBehaviour 
{
public Transform prefab;
//开始时的坐标
public Vector3 startPosition;
//下一个坐标
Vector3 nextPosition;
//游戏对象的数目,自定义输入
public int GameObjectsNumber;
//队列
Queue<Transform>queueObject;
//模块数目的最大,,最小的尺寸
public Vector3 minSize;
public Vector3 maxSize;
//
public float offSet;
void Start()
{
        //队列初始化,存放墙体的书目,大小自定义输入
queueObject= new Queue<Transform>(GameObjectsNumber);
for(int i=0;i<GameObjectsNumber;i++)
{
queueObject.Enqueue((Transform)GameObject.Instantiate(prefab));




}
        //开始的坐标传给下一个坐标
nextPosition = startPosition;
for(int i=0;i<GameObjectsNumber;i++)
{
Recycle();
}
}
    //返回队列首部的元素,
void Update()
{
if(RunnerScript.distance-queueObject.Peek ().position.x>=offSet)
{
Recycle();
}
}
    //把队首的元素移至队尾,的方法,,,需要中间变量传递参数值
private void Recycle ()
{   
         //随机生成墙体模块
Vector3 scale = new Vector3 (Random.Range (minSize.x,maxSize.x),Random.Range (minSize.y,maxSize.y),Random.Range(minSize.z,minSize.z));
       //移除队首的墙存入o
         Transform o = queueObject.Dequeue();
         //
         Vector3 position = nextPosition;


         //计算后移的坐标距离
         position.x += scale.x * 0.5f;
         position.y += scale.y * 0.5f;
         //随机生成的墙体大小赋给o
         o.localScale = scale;
         //后移的坐标赋给0
         o.position = position;


         nextPosition.x += scale.x;
         //把o 放到队尾
         queueObject.Enqueue(o);


}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值