GithubHelp home page GithubHelp logo

jonike / unity-camera-multi-target Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lopespm/unity-camera-multi-target

0.0 1.0 0.0 1.47 MB

Unity library to dynamically keep multiple objects in camera view

License: Apache License 2.0

C# 88.34% ShaderLab 11.66%

unity-camera-multi-target's Introduction

Dynamic Multi Target Camera for Unity

Concise Unity library which dynamically keeps a set of objects (e.g. players and important objects) in view, a common problem for a wide range of games.

The library was originally developed for, and used by Survival Ball, a game with a heavy shared screen local co-op component, requiring the camera to dynamically keep many key elements in view. More information about the library's inner workings and underlying math in the related blog article.

Get it for free on the Unity Asset Store

Camera Multi Target Example Scene Video

Camera Multi Target Example Scene Screenshot

Install

From Unity's Asset Store

Available at https://assetstore.unity.com/packages/tools/camera/camera-multi-target-dynamic-135922. Via Unity Editor, download and import the CameraMultiTarget folder into your project.

By importing CameraMultiTarget.unitypackage

The pre-built package can be downloaded from the repository's releases here. After downloading the package, import it to your project via Unity Editor: Assets -> Import Package -> Custom Package...

Or by cloning this repository

Clone entire repository (git)

This repository contains the complete Unity project which includes the library and an example usage scene. After you clone the entire repository using git, copy the Assets/CameraMultiTarget folder to your project

git clone https://github.com/lopespm/unity-camera-multi-target.git

Checkout specific features (SVN)

Since cloning a specific folder can be a quite convoluted process via git, you can checkout the Assets/CameraMultiTarget folder directly to your project using SVN:

cd <your_project_root_folder>
svn checkout https://github.com/lopespm/unity-camera-multi-target/trunk/Assets/CameraMultiTarget Assets/CameraMultiTarget

Or if you wish to only install the library without the example scene:

cd <your_project_root_folder>
svn checkout https://github.com/lopespm/unity-camera-multi-target/trunk/Assets/CameraMultiTarget/Library Assets/CameraMultiTarget/Library

Usage

Add the CameraMultiTarget component to a camera and then you can programatically set which game objects the camera will track via the component's SetTargets(GameObject[] targets) method.

For example, you can set the targets in your game controller component (if you choose to have one), like the following:

public class ExampleGameController : MonoBehaviour
{
    public CameraMultiTarget cameraMultiTarget;

    private void Start() {
        var targets = new List<GameObject>();
        targets.Add(CreateTarget());
        targets.Add(CreateTarget());
        targets.Add(CreateTarget());
        cameraMultiTarget.SetTargets(targets.ToArray());
    }

    private GameObject CreateTarget() {
        GameObject target = GameObject.CreatePrimitive(PrimitiveType.Capsule);
        target.transform.position = Random.insideUnitSphere * 10f;
        return target;
    }
}

Example Scene

An example scene of the library's usage is included in this repository and in the pre-built package located in the repository's releases.

Games using Dynamic Multi Target Camera

Did you develop, or know about, a game using this library? Add it here via pull request

unity-camera-multi-target's People

Contributors

lopespm avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.