2D游戏摄像机跟随不出界

做2D游戏的时候碰上摄像机要跟随人物时要防止摄像机看到界面外的黑幕,直接上代码。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 控制在老师身上摄像机的位置,防止看到场景外的黑幕
/// </summary>
public class objectCameraLimit : MonoBehaviour {
    public float[] cameraLimitRange;//分别为上 下 左 右
    public Transform objectTrans;//老师
    // Use this for initialization
    void Start () {
        objectTrans = transform.parent;
    }

    // Update is called once per frame
    void Update () {
        cameraLimit();
    }
    void cameraLimit()
    {
        if(objectTrans.localPosition.y > cameraLimitRange[0])
        {
            transform.localPosition = new Vector3(transform.localPosition.x,cameraLimitRange[0] - objectTrans.localPosition.y,transform.localPosition.z);
        }
        else if(objectTrans.localPosition.y < cameraLimitRange[1])
        {
            transform.localPosition = new Vector3(transform.localPosition.x,cameraLimitRange[1] - objectTrans.localPosition.y,transform.localPosition.z);
        }

        if (objectTrans.localPosition.x > cameraLimitRange[3])
        {
            transform.localPosition = new Vector3(cameraLimitRange[3] - objectTrans.localPosition.x, transform.localPosition.y, transform.localPosition.z);
        }
        else if (objectTrans.localPosition.x < cameraLimitRange[2])
        {
            transform.localPosition = new Vector3(cameraLimitRange[2] - objectTrans.localPosition.x, transform.localPosition.y, transform.localPosition.z);
        }
    }
}
时间: 2024-10-13 11:42:18

2D游戏摄像机跟随不出界的相关文章

Unity移动开发(1):2d摄像机跟随

Unity从4.3开始,unity3d开始叫unity了,去掉后缀,因为4.3版本以后加入了强大的原生2d开发环境.对于原来熟悉3d开发的unity工程师而言,不需要太多时间去适应就能很好的过度到2d的开发中去.今天说下2d的摄像机跟随.因为是2d环境,所以我们考虑的轴向就少了一个z轴,我们只需要考虑x和y轴.因为是横版的,所以我们就锁定摄像机的x轴,这样就不会让相机跟着主角上串下跳导致相机的晃动(这样的效果就跟相机设置为自物体一样样了,体验不太好.)代码如下: 1.定义一个公有的transfo

unity3d 2d游戏制作的模式

  经过了4个月不懈的努力,我和图灵教育合作的这本3D游戏开发书预计下个月就要出版了.这里MOMO先打一下广告,图灵的出版社编辑成员都非常给力,尤其是编辑小花为这本书付出了很大的努力,还有杨海玲老师,不然我也无法完成这本书的编写.等这本书出版了大家记得买喔,哇咔咔- 下面,这篇文章是MOMO 3D游戏开发书籍中的一小段章节的修改版本,本篇文章我们将探讨一下Unity3D中如何来制作2D游戏.目前市面上已经有非常成熟的2D游戏引擎,比如cocos2d 或cocos2d-x等,并且都是免费的开发者可

Unity游戏开发第三人称摄像机跟随

在第三人称游戏开发中,因为我们的人物是会不断移动的,所以我们的相机需要保持合适的角度跟随我们的人物进行移动,最简单的一种实现方法是先在unity场景中将摄像机调整到合适的位置,然后将它放到我们的人物下面,让他成为人物的子物体,这样做也可以达到摄像机跟随的目的.如果对摄像机跟随的要求不高的话可以临时采用这种方法 为了实现第三人称摄像机跟随的功能,大部分情况先我们都是采用编写代码的方法来实现的.下面是本人实现的一种摄像机跟随的方法,仅供参考,实现的功能是按住键盘AD键可以让摄像机视野围绕人物左右移动

UWP简单示例(三):快速开发2D游戏引擎

准备 IDE:VisualStudio 2015 Language:VB.NET/C# 图形API:Win2D MSDN教程:UWP游戏开发 写在前面的话 没有什么比重复造轮子更让人心碎的事情了. (如果有,那就是造了两遍) 是否有必要开发游戏引擎? 现在市面上有很多成熟的跨平台游戏引擎,对个人开发者也较为友好 若你是一名C#开发者,可以选择CocosSharp或Unity3D 尤其Unity3D,用它开发2D和3D游戏一样出色 当然,亲自编写一款简单的2D游戏引擎也是一件让人自信感满满的事情

2D游戏平滑的迷雾战争效果

最近刚好有做2D游戏的点光源效果,然后就扩展一下,研究了一下战争迷雾的效果.主要是想实现类似魔兽争霸那种人物走动,然后黑色的战争迷雾随着人物的移动渐渐打开的效果.使用具有渐变透明图片作为光源来使得战争迷雾呈现出平滑的效果.本文后面介绍了两个简单的实现方法,效果有细微的差别,有兴趣的同学可以分别研究.最后也有完整展示代码和提供例子下载. 一.常见的战争迷雾效果 早期的红警的战争迷雾大家应该也比较熟悉,不过看起来没那么平滑,应该是采用图块拼出来.可以明显看得出一些方方块块. 可见早期魔兽争霸2也是没

Unity 2D游戏开发教程之摄像头追踪功能

Unity 2D游戏开发教程之摄像头追踪功能 上一章,我们创建了一个简单的2D游戏.此游戏中的精灵有3个状态:idle.left和right.这看起来确实很酷!但是仅有的3个状态却限制了精灵的能力,以及游戏逻辑的想象空间.看来有必要让精灵拥有更多的状态,而这就是本章要讲解的主要内容. 摄像头追踪功能 游戏里的精灵可以在游戏场景中任意移动,这没什么问题,可是这就导致了一个问题,就是精灵可能移动到我们的视野之外,或者说游戏视图之外.为了解决这个问题,很多游戏都采用了"摄像头追踪"的方法,使

Android 2D游戏引擎AndEngine快速入门教程

Android 2D游戏引擎AndEngine快速入门教程 介绍:AndEngine是一款知名的Android 2D游戏引擎.该引擎代码开源,并且可以免费使用.本书详细讲解如何使用AndEngine引擎开发2D游戏. 试读下载地址:http://pan.baidu.com/s/1c0CODiw 前言 作为一款免费的手机操作系统,Android系统占据大半的手机系统份额.在Android众多的应用类型中,游戏应用由其娱乐性成为最大的分支.由于手机的操控特点,2D游戏成为Android游戏的主流,如

《逐梦旅程 WINDOWS游戏编程之从零开始》笔记9——游戏摄像机&amp;三维地形的构建

第21章 游戏摄像机的构建 之前的程序示例,都是通过封装的DirectInput类来处理键盘和鼠标的输入,对应地改变我们人物模型的世界矩阵来达到移动物体,改变观察点的效果.其实我们的观察方向乃至观察点都是没有变的,变的只是我们3D人物的位置.说白了就是用D3DXMatrixLookAtLH在资源初始化时固定住视角,在程序运行过程中接收到消息并改变三维人物模型的世界矩阵而已.这章的主要内容就是创建出一个可以在三维空间中自由移动的摄像机类,我们准备给这个摄像机类取名为CameraClass. 设计摄

IOS 2D游戏开发框架 SpriteKit

最近发现Xcode自带的2D游戏开发框架SpriteKit可以直接引入到APP中进行混合开发,这就是说可以开发出既带业务应用又带游戏的苹果APP,咋怎么觉得这是一个自己的小发现....呵呵.....,查了下其实人家早有人这样做了........发现这功能我当然很开了,所以下了两个案例准备学学.以前业余时间也学过一下cocos2d-x这样的跨平台游戏框架,也做过小案例,所以感觉这个框架并不麻烦,而且比cocos2d-x简单.并且这框架我不应该像C2D-X那样学了就扔哪里不管了,因为IOS开发正是我