Unity에서 카메라의 가장자리 충돌을 제공하는 방법

론 게임

Unity에서 2D 게임을 만들고 있는데이 게임에서는 카메라를 움직일 필요가 없습니다. 따라서 플레이어의 변환을 기반으로하는 대신 충돌을 사용하여 카메라 경계 내에서 플레이어의 움직임을 제한하고 싶습니다. 솔직히 어디에서 이런 일을 시작해야할지 모르겠지만 스크립팅이 필요하다고 생각합니다. 나는이 시점에서 스크립팅에 꽤 익숙하지만, 당신의 대답에 스크립팅이 포함되어 있다면, 진행되고있는 모든 것에 대한 철저한 설명을 포함한다면 감사하겠습니다. By the by, 저는 C #을 사용하고 있습니다.

Ruzihm

카메라가 직교 모드에있는 경우 EdgeCollider2D사용 하여 화면 모서리의 세계 위치 ScreenToWorldPoint를 찾은 다음을 사용 하여 EdgeCollider2D.

유니티 커뮤니티 UnityLibrary Github에서는예를 (아래 복사) :

// adds EdgeCollider2D colliders to screen edges
// only works with orthographic camera

using UnityEngine;
using System.Collections;

namespace UnityLibrary
{
  public class ScreenEdgeColliders : MonoBehaviour 
  {
    void Awake () 
    {
      AddCollider();
    }

    void AddCollider () 
    {
      if (Camera.main==null) {Debug.LogError("Camera.main not found, failed to create edge colliders"); return;}

      var cam = Camera.main;
      if (!cam.orthographic) {Debug.LogError("Camera.main is not Orthographic, failed to create edge colliders"); return;}

      var bottomLeft = (Vector2)cam.ScreenToWorldPoint(new Vector3(0, 0, cam.nearClipPlane));
      var topLeft = (Vector2)cam.ScreenToWorldPoint(new Vector3(0, cam.pixelHeight, cam.nearClipPlane));
      var topRight = (Vector2)cam.ScreenToWorldPoint(new Vector3(cam.pixelWidth, cam.pixelHeight, cam.nearClipPlane));
      var bottomRight = (Vector2)cam.ScreenToWorldPoint(new Vector3(cam.pixelWidth, 0, cam.nearClipPlane));

      // add or use existing EdgeCollider2D
      var edge = GetComponent<EdgeCollider2D>()==null?gameObject.AddComponent<EdgeCollider2D>():GetComponent<EdgeCollider2D>();

      var edgePoints = new [] {bottomLeft,topLeft,topRight,bottomRight, bottomLeft};
      edge.points = edgePoints;
    }
  }
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Unity의 장치에서 전면 카메라를 선택하는 방법

분류에서Dev

카메라 가장자리와 Unity 2D 충돌

분류에서Dev

Java의 문자열 목록에서 충돌을 계산하는 방법

분류에서Dev

Unity3d (4.3f1)에서 반사 카메라의 FarClipPlane을 제어하는 방법

분류에서Dev

동일한 리그의 충돌체가 서로 충돌하는 것을 방지합니다. 그러나 다른 리그와 충돌 할 수 있습니다.

분류에서Dev

Javascript-원에서 호의 충돌을 식별하는 방법

분류에서Dev

CameraX의 카메라 미리보기에서 이미지 직사각형을 자르는 방법

분류에서Dev

자바에서 고속 충돌을 감지하고 처리하는 방법

분류에서Dev

NetLogo에서 충돌을 구현하는 가장 간단한 방법

분류에서Dev

충돌하지 않고 상자에 서있을 수 있도록 충돌을 수정하는 방법

분류에서Dev

MergAndroid Livecode-Android의 카메라 롤에 저장하는 방법?

분류에서Dev

libGDX / Box2D에서 공격 충돌을 수행하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

메모리 부족 충돌을 디버깅하는 방법

분류에서Dev

SQL 쿼리에서 시간 슬롯 충돌을 찾는 방법

분류에서Dev

C 라이브러리에서 함수 이름 충돌을 피하는 방법은 무엇입니까?

분류에서Dev

Swift 게임에서 원-원 충돌을 처리하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

PostgreSQL의`충돌 업데이트시 선택 삽입`문장에서 선택한 행을 참조하는 방법

분류에서Dev

WebEngine (Chromium) 렌더러에서 제공하는 미리보기를 사용하는 동안 ReText 충돌을 수정하는 방법은 무엇입니까?

분류에서Dev

상황에 맞는 메뉴에서 충돌 원인을 식별하는 방법

분류에서Dev

사용자 정의 카메라 앱에서 충돌-Android

분류에서Dev

Android 카메라 (미리보기)에서 회색조 비트 맵을 얻는 가장 빠른 방법

분류에서Dev

가속도계 센서를 사용하여 장난감 자동차 두 대의 충돌을 감지하고 일치시키는 방법

분류에서Dev

"CrashOnCtrlScroll"충돌을 트리거하기 전에 대부분의 디스크 쓰기를 방지하는 방법

분류에서Dev

Android : ImageView의 경계 상자에서 추가 공간을 제거하는 방법

분류에서Dev

서버에서 가져올 때 git에서 충돌을 병합하고 제거하는 방법

분류에서Dev

카메라 클래스에 롤을 추가하는 방법

분류에서Dev

ContinuousCaptureActivity에서 카메라 미리보기 영역을 SurfaceView의 절반으로 만드는 방법

분류에서Dev

파이 게임에서 rect 객체와 공의 충돌을 수정하는 방법

분류에서Dev

ECS 패턴에서 충돌을 처리하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    Unity의 장치에서 전면 카메라를 선택하는 방법

  2. 2

    카메라 가장자리와 Unity 2D 충돌

  3. 3

    Java의 문자열 목록에서 충돌을 계산하는 방법

  4. 4

    Unity3d (4.3f1)에서 반사 카메라의 FarClipPlane을 제어하는 방법

  5. 5

    동일한 리그의 충돌체가 서로 충돌하는 것을 방지합니다. 그러나 다른 리그와 충돌 할 수 있습니다.

  6. 6

    Javascript-원에서 호의 충돌을 식별하는 방법

  7. 7

    CameraX의 카메라 미리보기에서 이미지 직사각형을 자르는 방법

  8. 8

    자바에서 고속 충돌을 감지하고 처리하는 방법

  9. 9

    NetLogo에서 충돌을 구현하는 가장 간단한 방법

  10. 10

    충돌하지 않고 상자에 서있을 수 있도록 충돌을 수정하는 방법

  11. 11

    MergAndroid Livecode-Android의 카메라 롤에 저장하는 방법?

  12. 12

    libGDX / Box2D에서 공격 충돌을 수행하는 가장 좋은 방법은 무엇입니까?

  13. 13

    메모리 부족 충돌을 디버깅하는 방법

  14. 14

    SQL 쿼리에서 시간 슬롯 충돌을 찾는 방법

  15. 15

    C 라이브러리에서 함수 이름 충돌을 피하는 방법은 무엇입니까?

  16. 16

    Swift 게임에서 원-원 충돌을 처리하는 가장 좋은 방법은 무엇입니까?

  17. 17

    PostgreSQL의`충돌 업데이트시 선택 삽입`문장에서 선택한 행을 참조하는 방법

  18. 18

    WebEngine (Chromium) 렌더러에서 제공하는 미리보기를 사용하는 동안 ReText 충돌을 수정하는 방법은 무엇입니까?

  19. 19

    상황에 맞는 메뉴에서 충돌 원인을 식별하는 방법

  20. 20

    사용자 정의 카메라 앱에서 충돌-Android

  21. 21

    Android 카메라 (미리보기)에서 회색조 비트 맵을 얻는 가장 빠른 방법

  22. 22

    가속도계 센서를 사용하여 장난감 자동차 두 대의 충돌을 감지하고 일치시키는 방법

  23. 23

    "CrashOnCtrlScroll"충돌을 트리거하기 전에 대부분의 디스크 쓰기를 방지하는 방법

  24. 24

    Android : ImageView의 경계 상자에서 추가 공간을 제거하는 방법

  25. 25

    서버에서 가져올 때 git에서 충돌을 병합하고 제거하는 방법

  26. 26

    카메라 클래스에 롤을 추가하는 방법

  27. 27

    ContinuousCaptureActivity에서 카메라 미리보기 영역을 SurfaceView의 절반으로 만드는 방법

  28. 28

    파이 게임에서 rect 객체와 공의 충돌을 수정하는 방법

  29. 29

    ECS 패턴에서 충돌을 처리하는 방법은 무엇입니까?

뜨겁다태그

보관