注:
本人是一个刚学习unity3d 的新手,以下内容(包括素材)是我本人在泰课在线上面学习并写下的笔记,纯粹存起来让本人学习,以及往后的修改,这是我第一个在泰课上面学习游戏项目,后面我将的笔记分为几个章记录下来。
创建一个CircusDemo
(一) 背景制作:
① 首先将素材下载下来,直接拖拽到project项目里面;
② 将马戏团背景2拖拽到hierarchy项目里面,然后调整相机尺寸;(最好修改名字bg,方便日后寻找方便)
(二) 背景移动:
推荐方法:在project项目里创建一个材质material(名为bg),拖拽到bg下;
Shader-legacy shaders-self-illumin-diffuse(反射),然后在main color调整亮度;
//做了一个图片的位置偏移
创建一个脚本(BgControl,并拖拽到bg下)
部分代码解析:
private float offset = 0;
//默认一个偏量,即Bg材质中的offse
GetComponent<Renderer>().material.SetTextureOffset("_MainTex",new Vector2( offset +=0.3f * Time.deltaTime , 0));
// GetComponent<Renderer>().material.SetTextureOffse 获取材质渲染主键,获取offse
// "_MainTex",new Vector2( offset +=0.3f * Time.deltaTime , 0)即偏量offset每次自加(减)0.3.即没帧偏移0.3,即每一秒偏移0.3
注:GetComponent<Renderer> 得到一个Renderer主键,即bg属性中的Renderer
.material 即刚刚创建的材质球(bg)
.SetTextureOffset 即材质球中的offset设置
new Vector2 (float x,float y) 说明:传入向量所需要的值,也可以使用默认构造函数,结构体所以对象为值类型。
以下为脚本源代码:
usingSystem.Collections;
usingSystem.Collections.Generic;
usingUnityEngine;
public classBgControl : MonoBehaviour {
private float offset = 0;
void Start () {
}
//背景移动
public void move(float dir){
if (dir> 0) //方向,当dir>0 ,背景向左跑
{
GetComponent<Renderer>().material.SetTextureOffset("_MainTex",new Vector2( offset +=0.3f * Time.deltaTime , 0));
}
else
{
GetComponent<Renderer>().material.SetTextureOffset("_MainTex",new Vector2(offset -=0.3f * Time.deltaTime, 0));
}
}
}