UNITY视差地图的偏移

最近实习项目中要求用2D项目实现3D效果,我这技术美术还是太菜不能弄出PBR模型,也只能帮他们做做视差地图了,平面级的模版如下,也就是相对于每一帧摄像机的移动再根据远近关系做偏移罢了。

using UnityEngine;

public class MAPmoveManager : MonoBehaviour
{
	public Transform bacKGrond;
	public Transform frontCloud;
	
	public float offsetFrontSpeed;
	public float offsetBackSpeed;//拿到前中后景的坐标组件,把偏移参数暴露出来。

	private Transform cam;

	private Vector3 preCamPos;
	// Use this for initialization
	void Awake()
	{
		cam = Camera.main.transform;
	}
	void Start ()
	{
		preCamPos = cam.position;//要拿到第一帧的位置,不然有一个值
	}
	
	// Update is called once per frame
	void Update ()
	{
		Vector2 cammove = (preCamPos - cam.position);//拿到每一帧摄像机的偏移
		backgroundMove(cammove);//对各个层级做偏移
		CloudgroudMove(cammove);
		preCamPos = cam.position;//更新摄像机位置
	}

	void backgroundMove(Vector2 target)
	{
		bacKGrond.position = new Vector3(bacKGrond.position.x + target.x * offsetBackSpeed,
			bacKGrond.position.y + target.y * offsetBackSpeed, bacKGrond.position.z);
	}

	void CloudgroudMove(Vector2 target)
	{
		
		frontCloud.position = new Vector3(frontCloud.position.x + target.x * offsetFrontSpeed,
			frontCloud.position.y + target.y * offsetFrontSpeed, frontCloud.position.z);
	}
}

后续考虑做平滑,加上弹力效果等,有更好的表现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值