簡體   English   中英

在C#中的UnityScript 2d中移動相機

[英]Move Camera in UnityScript 2d in C#

我剛剛開始對Unity 2d進行編程,並且遇到了一個大問題:如何移動相機? 腳本被附加到對象“玩家”。 我希望它隨玩家一起移動。 謝謝!

/*
I 
*/
using UnityEngine;
using System.Collections;

public class PlayerController : MonoBehaviour
{
 public float speed = 10; //Float for speed
 public string hAxis = "Horizontal";
 void Start ()
 {
     //empty
 }

 void FixedUpdate ()
 {
         if (Input.GetAxis (hAxis) < 0) //Left
         {

                 Vector3 newScale = transform.localScale;
                 newScale.y = 1.0f;
                 newScale.x = 1.0f;
                 transform.localScale = newScale;
         } 
         else if (Input.GetAxis (hAxis) > 0) //Right
         {
                 Vector3 newScale =transform.localScale;
                 newScale.x = 1.0f;
                 transform.localScale = newScale;        
         }
        //Position transformation
    transform.position = transform.position + transform.right * Input.GetAxis(axisName) * speed * Time.deltaTime;
 }
}

沒有任何腳本,您只需將Camera GameObject拖動為玩家的子代,然后相機就會開始跟隨玩家的位置。

對於腳本,請嘗試此操作,將播放器設置為目標。

using UnityEngine;
 using System.Collections;

 public class SmoothCamera2D : MonoBehaviour {

     public float dampTime = 0.15f;
     private Vector3 velocity = Vector3.zero;
     public Transform target;

     // Update is called once per frame
     void Update () 
     {
         if (target)
         {
             Vector3 point = camera.WorldToViewportPoint(target.position);
             Vector3 delta = target.position - camera.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, point.z)); //(new Vector3(0.5, 0.5, point.z));
             Vector3 destination = transform.position + delta;
             transform.position = Vector3.SmoothDamp(transform.position, destination, ref velocity, dampTime);
         }

     }
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM