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

امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
اسکریپت حرکت کاراکتر کنترلر
#1
من یک اسکریپت دانلود کردم به اسم PlayerController.js :
کد php:
/* WASD keyboard input player movement control with jump
and mouse rotation - Unity javascript Gameobject.net*/

#pragma strict
var charController:CharacterController ;
/* Create a variable of type CharacterController to store
our component and call it in the script                */
var walkSpeed float ;
var 
runSpeed float 1.8 ;
var 
rotationSpeed float ;
var 
jumfloat ;
var 
cooldown float ;

private var 
jumpForce float;
private var 
gravityPull float 1;
/* Jump action related costants                         */

private var isRunning boolean ;
private var 
isWalking boolean ;
private var 
isStrafing boolean ;
private var 
isJumping boolean ;
private var 
isAttacking boolean ;
private var 
isIdle boolean ;
/* Create boolean status variables to identify animation
status, e.g. what am i doing right now?               */

function Start (){
var 
cc CharacterController;
cc gameObject.AddComponent("CharacterController");
/*  Adds a Character Controller component to gameobject */

charController GetComponent(CharacterController);
/*    Assigns it in the charController variable to use it */

// Set all animations to loop
animation.wrapMode WrapMode.Loop;
// except shooting
animation["attack"].wrapMode WrapMode.Once;

// Put idle and walk into lower layers (The default layer is always 0)
// This will do two things
// - Since shoot and idle/walk are in different layers they will not affect
//   each other's playback when calling CrossFade.
// - Since shoot is in a higher layer, the animation will replace idle/walk
//   animations when faded in.
animation["attack"].layer 1;

// Stop animations that are already playing
//(In case user forgot to disable play automatically)
animation.Stop();

}

function 
Update(){

charController.Move(transform.up Time.deltaTime * -gravityPull 1);

/* Gravity */

if(Input.GetAxis("Vertical") > 0){
/*    If the Vertical input axis is positive (by default by
pressing W or up arrow)                                */
if(Input.GetButton("Fire3")){
isRunning true ;
animation.CrossFade("run");
/*    While Run button is pressed play run animation, with
Crossfade try to blend nicely different animations )*/
charController.Move(transform.forward*Time.deltaTime*runSpeed)    ;
/*    While Run button is pressed move faster !)          */
/*    Use the Move function, Time.deltatime makes things go
equally fast on different hardware configurations,
by moving in the forward direction with walkspeed   */
isRunning true ;
/* Set the isRunning flag as true since i am running    */
Debug.Log("isRunning value is" " " isRunning);
/*  Tell me what i am doing now                         */
}
else{
isWalking true ;
/* Else if i am moving forward and not running i walk   */
animation["walk"].speed 1;
animation.CrossFade("walk");
/*    While walk button is pressed play walk animation ! */
charController.Move(transform.forward*Time.deltaTime*walkSpeed)    ;
Debug.Log("isWalking value is" " " isWalking);
/*  Tell me what i am doing now                         */
}
}
else if(
Input.GetAxis("Vertical") < 0){
isWalking true ;
/* Do the same for the back direction, no back run!    */
animation["walk"].speed 0.5;
/* revert walk animation playback                        */
animation.CrossFade("walk");
charController.Move(transform.forward*Time.deltaTime*-walkSpeed/2)    ;
/* Move function but in the opposite to forward
direction by using a negative (-) vector            */
Debug.Log("isWalking value is" " " isWalking);
/*  Tell me what i am doing now                        */
}
else{
isWalking false ;
isRunning false ;
/* if not running or walking set these states as false */
}

if(
Input.GetButtonDown("Jump") && !isJumping){
jumpForce jumpForceDefault ;
isJumping true ;
animation.Play("jump_pose") ;
/* Capture Jump input and prevent double air jump with
&& !isJumping, makes these lines working only while
not already in a Jump.                               */
}

if(
isJumping){
charController.Move(transform.up Time.deltaTime jumpForce);
jumpForce -= gravityPull ;
Debug.Log("isJumping value is" " " isJumping);
/* If isJumping is true (i am in Jump state), move the
character up with jumpForce intensty, then gravityPull
kicks in and will take you on the ground.          */
if(charController.isGrounded){
isJumping false ;
/* Check if the character is touching the ground with
Unity default isGrounded function, if its grounded
end the Jumping action by setting isJumping false  */
}
}

if(!
isWalking && !isRunning && !isJumping){
animation.CrossFade("idle");
/* If i am not doing any action , play the idle anim   */

}

if(
Input.GetAxis("Horizontal") > 0){
charController.transform.Rotate(Vector3.up Time.deltaTime 20 *  rotationSpeedSpace.World);
}
if(
Input.GetAxis("Horizontal") < 0){
charController.transform.Rotate(Vector3.up Time.deltaTime 20 * -rotationSpeed);

}
/* rotate the character with left and right    arrows */

charController.transform.rotation.+= Input.GetAxis("Mouse X") * Time.deltaTime rotationSpeed ;
/* rotate the character with the mouse                 */

if(Input.GetButtonDown("Fire1")){
isAttacking true ;
slash() ;
isAttacking false ;
}
/* Play attack animation calling slash function */

/* If you wish to add STRAFE command just replicate the
code for the forward and back direction , i am not
doing this in this character controller tutorial
because the Constructor model is not provided
with the strafe animation. */

}

function 
slash(){
animation.CrossFade("attack");
Debug.Log("isAttacking is" isAttacking);

این اسکریپت رو با ماوس گرفتم و ب پروژم توی یونیتی اضافه کردم.
بعدش یک مدل آدم آهنی دانلود کردم و اونم به پروژم اضافه کردم.
بعدش ابتدا مدل ادم آهنی رو select کردم و از منوی component گزینه ی Physics و سپس Character controller رو زدم.
بعدش از منوی Component گزینه ی Script رو زده و سپس این اسکریپت یعنی PlayerController رو انتخاب کردم.
--
بعدش پروژه رو Run کردم اما WASD عمل نمی کنه و نمی تونم آدم آهنی رو حرکت بدم. این آدم آهنی رو در جایی قرار دادم که زیرش یک Plane باشه و توی یک مکعب گذاشتم به طوری که توی هیچ جسمی هم فرو نرفته.
به نظرتون مشکل از کجاست دوستان ؟what
پاسخ
#2
چرا اینکارو می کنی؟
یدونه FPS Character بذار و گرافیک رو حذف کن و بجاش از مدلت استفاده کن.
telegram.me/GameGram : معرفی و نقد و بررسی بازی های مستقل
telegram.me/Arazdev : آموزش بازیسازی، برنامه نویسی، گرافیک و...


پاسخ
 سپاس شده توسط sajjad3011
#3
FPS Character از کجا دانلود کنم؟ یه لینک مستقیم بی اشکال بده و بگو چطوری کار کنم.what
پاسخ
#4
تو پکیج هاش است. Fps Character control اسمش دقیقا یادم نیست ولی تو پکیج های استاندارد یونیتی هست.
بعد از اینکه یدونه تو صفحه گذاشتی فرزند Graphic رو ازش حذف کن و بجاش مدلت رو بذار
telegram.me/GameGram : معرفی و نقد و بررسی بازی های مستقل
telegram.me/Arazdev : آموزش بازیسازی، برنامه نویسی، گرافیک و...


پاسخ
 سپاس شده توسط sajjad3011 ، mohamadi.sepehr
#5
بذار من حالا دانلود کنم ببینم اگه مشکل داشتم دوباره می پرسم. یونیتی ما رو تحریم کرده واسه همین نمیشه آنلاین وصل بشم .
فعلا تا اینجا رفتم درسته؟
resim
http://s5.picofile.com/file/8116095826/f..._unity.jpg
http://sajjad3011.persiangig.com/unity_t..._unity.jpg
پاسخ
#6
فقط اون نیست. کلش رو ایمپورت کن
به زودی آموزش جنجالی Artificial intelligence
و یا
هوش مصنوعی
در فضای سه بعدی
پاسخ
 سپاس شده توسط sajjad3011
#7
همه رو می بینی که انتخاب شده و ایمپورت کردم.
حالا این اسکریپت درسته ؟ :
resim
http://s5.picofile.com/file/8116096550/f..._unity.jpg
بعدش باید چیکار کنم؟what
پاسخ
#8
نه. همه ی اسکریپت ها تو یه فایل نیست. مجموعه ی اونا میشه اسکریپت نهایی که هرکدوم به چیز مربوط به خودش نسبت داده میشن.
به زودی آموزش جنجالی Artificial intelligence
و یا
هوش مصنوعی
در فضای سه بعدی
پاسخ
 سپاس شده توسط sajjad3011
#9
می گم حالا این عکس آخر که گذاشتم رو ببین من سریع سریع می ذارم صفحه رو رفرش کن. توضیح بده.یه عکس اگه می تونی بذارwink
پاسخ
#10
عکس زیر رو ببین
resim
اول به مربع قرمز عمل کن
بعد به یدونه First Person Controller بذار
از Hierarchy گرافیک First Person Controller حذف کن بجاش مدل رو بذار
telegram.me/GameGram : معرفی و نقد و بررسی بازی های مستقل
telegram.me/Arazdev : آموزش بازیسازی، برنامه نویسی، گرافیک و...


پاسخ
 سپاس شده توسط sajjad3011


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Question تغییر سرعت حرکت گیم آبجکت start777 2 92 26/1/1398، 10:40 صبح
آخرین ارسال: aminblog76
Lightbulb مشکل قرمز نشدن panel مرگ کاراکتر Hamed_8 8 265 14/8/1397، 11:16 صبح
آخرین ارسال: Shine Studio
NewText مشکل در حرکت نکردن اسپرایت با انمیشن mohammadchi 3 151 9/7/1397، 06:41 عصر
آخرین ارسال: Clever Wise
  حرکت یک گیم ابچکت به یک سمت fahimi 2 146 27/5/1397، 12:28 صبح
آخرین ارسال: sajjad3011
  مشکل در حرکت موس در حالت اجرای بازی در یونیتی saeid4x 1 288 20/5/1396، 01:15 عصر
آخرین ارسال: mamali me



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