«یا اللهُ یا رَبِّ یا حَیُّ یا قَیّوم یا ذَالجَلالِ وَ الاکرام اَسئَلُکَ بِاسمِکَ اَلعَظیم اَلاَعظَم اَن تَرزُقَنی رِزقاً حَلالاً طَیِّباً بِرَحمَتِکَ الواسِعَه یا اَرحَمَ الرّاحِمِین.»
دنبال کردن player :: گیم اور _ بازیسازی با unity + مطالب متفرقه

گیم اور _ بازیسازی با unity + مطالب متفرقه

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

به نام خدا
--
گروه قدیم ما promakers.ir یا پرومیکرز بود که بالای هزار اموزش توش ساخته بودم به اسم sajjad3011 ولی حیف ادمین سایتش عوض کرد
حالا سوالی بود کاری بود این شمارمه

قدیمیا دلم براتون تنگ شده... فقط معرفی کنید توی پیامک یا تماس یاد بیارید.
اگه جواب ندادم شاید موقعیت نداشته باشم.
بگید توی پیام از بچه های پرومیکرز هستید.

---
سوالی بود بذارید
نظر خصوصی نذارید
پاسخش سخته
دوست داشتید شماره بذارید تو واتساپ یا ایتا یا .... گروه بزنیم.
09358077198

بایگانی
پیوندها

۱ مطلب با کلمه‌ی کلیدی «دنبال کردن player» ثبت شده است

منبع:gameover.blog.ir


using UnityEngine;
using System.Collections;
//Smooth camera for 2d platforms
//Author:Sajjad3011
//unity 5
public class camera2d : MonoBehaviour {
    public Transform target;
    private float smooth=1f;
    void FixedUpdate () {
        transform.position = Vector3.Lerp(transform.position, target.position, smooth * Time.deltaTime)-new Vector3(0,0,0.4f);
    }
}
نکته: طبق کد حتما باید توی FixedUpdate کار کنید. اگه توی Update بذارید صحنه لرزش پیدا کرده یا پرک پرک می زنه.

طبق کد ما از متد یا تابع Lerp برای حرکت نرم دوربین بین دو نقطه شروع (پوزیشن فعلی دوربین) و پایان(پوزیشن player) استفاده کردیم و سرعت حرکت هم در پارامتر smooth انجام دادیم و در تایم ضرب کردیم. smooth به معنی فاکتور نرمی هست و اگه زیادش کنیم سرعت حرکت بیشتر خواهد بود.

وکتور 3 هم که ایجاد کردیم برای این بود که موقعیت دقیقا می افتاد روی پلیر و زوم میشد روش و ما به اندازه ی 0.4 در واحد float از محور z کم کردیم تا فاصله بگیره و عقب بره ولی توی بردار x و y همون هست و هیچی ازش کم نکردیم .


روش دوم :
using UnityEngine;
using System.Collections;

public class SmoothFollow2D : MonoBehaviour {

 private Vector3 velocity = Vector3.zero;
 public Transform target;
 
 // Update is called once per frame
 void Update () 
 {
  if (target)
  {
   Vector3 point = GetComponent<Camera>().WorldToViewportPoint(target.position);
   Vector3 delta = target.position - GetComponent<Camera>().ViewportToWorldPoint(new Vector3(0.2f, 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, 0);
  }
  
 }

}

۵ نظر موافقین ۰ مخالفین ۰ ۱۷ دی ۹۴ ، ۰۷:۵۶
مدیرکل