درود مهمان گرامی! ثبت نام

امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در سرعت پلیر
#1
سلام ، من همونطور که میدونید تازه واردم به یونیتی ، به عنوان تمرین ، خواستم تو محیط دو بعدی یه کد بدم که پلیر به طور اتومات در محور x به راست حرکت کنه و اگه فاصله اش با جعبه به 3 رسید ، متوقف بشه؛
من هم یه کدی از خودم نوشتم:
کد php:
using UnityEngine;
using System.Collections;

public class 
Move_Player MonoBehaviour {

    public 
GameObject player;
    public 
GameObject box;
    public 
float playerPos;
    public 
float boxPos;
    public 
float dist;
    public 
Vector3 wayRight;

    
void Start ()
    {
        
player GameObject.Find ("player"); 
        
box GameObject.Find ("box");
        
wayRight = new Vector3 (0.005f00);
    }

    
void Update ()
    {
        
playerPos player.transform.position.x;
        
boxPos box.transform.position.x;
        
dist boxPos playerPos;      

        if (
dist 3f
        {
            
player.transform.position += wayRight;
        }
    }

مشکلی که هست اینه که در بازی های استراتژی سبک tower-defense سرعت پلیر باید کم باشه
و من برای اینکه سرعت پلیر در کد فوق کم باشه ، مجبور شدم به متغییر wayRight ، مقدار بسیار کمی ، 0.005 رو نسبت بدم.
برای همین فکر می کنم کد خوبی نیست
اگه کد بهتری میدونید بگید لطفاً

smiley thanx !
از transform.Translate(Vector3.right * 1f استفاده کردم ، بد تر سریع تر شد؛
من همون Ali-reza8448 هستم ، چون رمزم رو یادم رفت یه اکانت دیگه ساختم
گروه بازی سازی H.A
انجین ما: یونیتی ، اکلیپس
تخصصای من:
-مدل سازی
-اکلیپس
-پیکسل آرت با پینت ویندوز 7
-یونیتی در حد بوق!
-کانستراکت(دیگه کار نمیکنم)
پاسخ
 سپاس شده توسط fahimi
#2
از بین این همه غول یونیتی یکی نیس کمک کنه؟
کد برای حرکت اتومات پلیر به راست میخواستم ، بطوری که سرعتش اروم باشه
در محیط دو بعدی
لطفا
گروه بازی سازی h.A
موتور بازی سازی: یونیتی 3D
تخصص های من:
-یونیتی
-اکلیپس
-زیبراش
-پیکسل آرت با پینت ویندوز 7 ',}
-کانستراکت (دیگه ادامه نمیدم)

پاسخ
 سپاس شده توسط fahimi
#3
سلام دوست عزیز


کد:
public class ExampleClass : MonoBehaviour {
    public Transform startMarker;
    public Transform endMarker;
    public float speed = 1.0F;
    private float startTime;
    private float journeyLength;
    void Start() {
        startTime = Time.time;
        journeyLength = Vector3.Distance(startMarker.position, endMarker.position);
    }
    void Update() {
        float distCovered = (Time.time - startTime) * speed;
        float fracJourney = distCovered / journeyLength;
        transform.position = Vector3.Lerp(startMarker.position, endMarker.position, fracJourney);
    }
}

این کدو ببین اگ مشکل داشتی بگو
خوشی نیست آنچه آخرش سختیست
و سختی نیست آنچه آخرش خوشیست
امام علی (ع)
-----------------------------------
آی دی تلگرام: miladkeramatloo@
پاسخ
 سپاس شده توسط Ali-reza8448v2 ، fahimi
#4
دقیقاً کپی کردم ، بعد به پلیر اضافه کردم ، ارور نداد و کار هم نکرد.
فکر کنم شما یه جای خالی هایی قرار دادی که من باید پر کنم ، startMarker و endMarker رو مقدار دهی نکردید.
پلیر من اسمش هست player و شی ای که در راست اون قرار داره اسمش هست box
نقل قول: پلیر به طور اتومات در محور x به راست حرکت کنه و اگه فاصله اش با جعبه به 3 رسید ، متوقف بشه؛
من همون Ali-reza8448 هستم ، چون رمزم رو یادم رفت یه اکانت دیگه ساختم
گروه بازی سازی H.A
انجین ما: یونیتی ، اکلیپس
تخصصای من:
-مدل سازی
-اکلیپس
-پیکسل آرت با پینت ویندوز 7
-یونیتی در حد بوق!
-کانستراکت(دیگه کار نمیکنم)
پاسخ
 سپاس شده توسط fahimi
#5
دوستان ، مشکلم حل شد با این کد:
کاربردشم حرکت اتومات پلیر به راست هست تا وقتی که پلیر به فاصله مشخصی با جعبه برسه:
کد php:
using UnityEngine;
using System.Collections;

public class 
MoveRight MonoBehaviour {
    
    public 
GameObject player;
    public 
GameObject box;
    public 
float playerPos;
    public 
float boxPos;
    public 
float dist;

    
void Start () 
    {
        
player GameObject.Find ("player");
        
box GameObject.Find ("box");
    }

    
void Update () 
    {
        
playerPos player.transform.position.x;
        
boxPos box.transform.position.x;
        
dist boxPos playerPos;
        if (
dist 3f
        {
            
transform.Translate (Vector3.right * (Time.deltaTime 1f)); 
        }
    }

هههه ، اینو تو یه کتاب اموزش بازیسازی سه بعدی تو یونیتی خوندم ، ولی برای دو بعدی بدردم خورد
امیدوارم بدرد شمام بخوره
من همون Ali-reza8448 هستم ، چون رمزم رو یادم رفت یه اکانت دیگه ساختم
گروه بازی سازی H.A
انجین ما: یونیتی ، اکلیپس
تخصصای من:
-مدل سازی
-اکلیپس
-پیکسل آرت با پینت ویندوز 7
-یونیتی در حد بوق!
-کانستراکت(دیگه کار نمیکنم)
پاسخ
 سپاس شده توسط fahimi


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Question تغییر سرعت حرکت گیم آبجکت start777 2 98 26/1/1398، 10:40 صبح
آخرین ارسال: aminblog76
  افزایش سرعت fahimi 4 612 20/6/1395، 12:42 عصر
آخرین ارسال: fahimi
  پایین اومدن سرعت بازی بعد از اضافه کردن صدا ها mafh915 5 907 13/6/1395، 10:46 عصر
آخرین ارسال: sajjad3011
  فرو رفتن پلیر داخل کوه ها و ... AMIN9213 4 1,039 12/2/1395، 07:29 عصر
آخرین ارسال: AMIN9213
  سوال:برخورد پلیر با دشمن aliheadari 40 7,865 18/6/1394، 12:32 عصر
آخرین ارسال: sajjad3011



کاربرانِ درحال بازدید از این موضوع: 1 مهمان