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

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

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

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

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

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

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

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

منبع: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);
  }
  
 }

}

نظرات (۵)

سلام.من دنبال یه کدم هر چی میگردم پیداش نمیکنم میشه شما کمکم کنید. میخام یک شیئ در یک مسیر به سمت راست حرکت کنه تا یک محدوده ی خاصی که خودم بهش میگم به اون حد که رسید برگرده و به سمت چپ حرکت کنه.هیچ کنترلی هم بوسیله موس یا کیبورد نداشته باشه.باتشکر
پاسخ:
یکیش انیمیشن میشه. یکی هم کد :
https://goo.gl/RPYKiv
سلام
میدونم مشکلت برای دو سال پیشه اما میگم کسایی که میخوان بدون بدونن :|

شما میتونی با انیمیشین این کاری انجام بدی موس و کیبورد هم هیچ حرکتی نمیتونن توش داشته باشن


.

با سلام من کدی میخام سرعت دوربین به عنوان مثال از 5 شروع بشه و پس از گذشت 15 ثانیه به سرعت 10 برسه و رو سرعت 10 هم بمونه . سوال بعدی یک شیئ سه بعدی  دارم پس برخورد با یک گیم آبجکت سرعت دوربین دوباره از اول شروع بشه از 5 بعد 15 ثانیه به 15 برشه

پاسخ:
سلام
از این کد برای حرکت دوربین الهام بگیر
باید با تایم دات دلتا تایم کد بنویسی
این مثالم رو ببین فکر کن تمرین کن تست بگیر تا یاد بگیری

سلام چرای این کد اولی که زدم وقتی پلیر حرکت میکنه دوربین که دلبالشه یکم میلرزه توی FixUpdate هم  کد رو نوشتم و لی فایده نداره

پاسخ:
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { void OnGUI() { کد اینجا بنویس تست کن } }

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

روش دو هم ایرادش اینه کارکتر وسط قرار نمیگیره

 

لطفا راهنمایی کنید

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی