Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Unity อยากสอบถามเรื่องการทำ combo hit ครับ
#1
คือตามหัวข้อเลยนะครับ ผมอยากทำระบบเกมให้มีคอมโบ ด้วยตอนนี้ใช้แค่ melee attack ธรรมดา

นี่คือสคริปต์ที่ผมใช้ครับ
Quote:var TheDamage : int = 50;
var Distance : float;
var MaxDistance : float = 1.5;
var weapons : Transform;

function Update ()
{
if (Input.GetButtonDown("Fire2"))
{
weapons.animation.Play ("Punch 2");
var hit : RaycastHit;
if (Physics.Raycast (transform.position, transform.TransformDirection(Vector3.forward),hit))
{
Distance = hit.distance;
if (Distance < MaxDistance)
{
hit.transform.SendMessage("ApplyDamage",TheDamage, SendMessageOptions.DontRequireReceiver);
}
}
}
}


ฝากขอบคุณล่วงหน้าเลนนะครับ ConfusedConfused
Y me gusta muchoY me gusta muchoY me gusta muchoY me gusta muchoY me gusta muchoY me gusta mucho
[-] The following 1 user says Thank You to lightwolfz for this post:
  • นิราจ
Reply
#2
คอมโบที่ว่านี่เป็นในลักษณะไหนครับ ยังไม่ค่อยเข้าใจเน้อ
[-] The following 1 user says Thank You to PrwC for this post:
  • lightwolfz
Reply
#3
โค้ดด้านบนเขียนเองรึเปล่าครับ ?
ถ้าก็อบมาก็ต้องทำความเข้าใจให้ได้ก่อนนะครับ ว่าโค้ดพวกนี้มันทำอะไรบ้าง

คอมโบนี่หมายถึงฟันติดต่อกันหลายๆทีใช่มั้ยครับ?
ถ้าเอาแบบ simple ก็เช็คดักต่อง่ายๆ สมมุติในโค้ด

เพิ่มตัวแปรมาดัก combo ซักตัว

Code:
var comboList : int = 0; // สร้างตัวแปรมาดักเช็ค combo

if (Input.GetButtonDown("Fire2") && comboList == 0)
{
   weapons.animation.Play ("Punch 2"); // เล่นอนิเมชั่นตรงนี้ ท่าต่อย 1
   comboList = 1;
   //ต้องเช็คเวลากดครั้งต่อไปด้วย

}else

if(Input.GetButtonDown("Fire2") && comboList == 1 && //เวลาที่จะกดครั้งต่อไป)
{
     weapons.animation.Play ("Punch 3"); // เล่นอนิเมชั่นตรงนี้ ท่าต่อย 2
}

//เสร็จแล้วนับเวลาเล่นอนิเมชั่นท่า 2 ให้จบ แล้วเด้ง comboList กลับเป็น 0 ใหม่

ถ้าจะเอา Advance หน่อย แนะนำ Animation Event (กด Ctrl + 6) ครับ
มันใช้รัน Method ระหว่างเล่น Animation ได้ ดัก Combo ได้ง่ายกว่า แต่ต้องศึกษานิดนึงครับ
[-] The following 3 users say Thank You to Author for this post:
  • dreamknight, [IRPG] Kuntana, lightwolfz
Reply
#4
(02-24-2014, 12:11 AM)Author Wrote: โค้ดด้านบนเขียนเองรึเปล่าครับ ?
ถ้าก็อบมาก็ต้องทำความเข้าใจให้ได้ก่อนนะครับ ว่าโค้ดพวกนี้มันทำอะไรบ้าง

คอมโบนี่หมายถึงฟันติดต่อกันหลายๆทีใช่มั้ยครับ?
ถ้าเอาแบบ simple ก็เช็คดักต่อง่ายๆ สมมุติในโค้ด

เพิ่มตัวแปรมาดัก combo ซักตัว

Code:
var comboList : int = 0; // สร้างตัวแปรมาดักเช็ค combo

if (Input.GetButtonDown("Fire2") && comboList == 0)
{
   weapons.animation.Play ("Punch 2"); // เล่นอนิเมชั่นตรงนี้ ท่าต่อย 1
   comboList = 1;
   //ต้องเช็คเวลากดครั้งต่อไปด้วย

}else

if(Input.GetButtonDown("Fire2") && comboList == 1 && //เวลาที่จะกดครั้งต่อไป)
{
     weapons.animation.Play ("Punch 3"); // เล่นอนิเมชั่นตรงนี้ ท่าต่อย 2
}

//เสร็จแล้วนับเวลาเล่นอนิเมชั่นท่า 2 ให้จบ แล้วเด้ง comboList กลับเป็น 0 ใหม่

ถ้าจะเอา Advance หน่อย แนะนำ Animation Event (กด Ctrl + 6) ครับ
มันใช้รัน Method ระหว่างเล่น Animation ได้ ดัก Combo ได้ง่ายกว่า แต่ต้องศึกษานิดนึงครับ

ขอบคุณมากๆเลยครับ ฮ่าๆ Blush
Y me gusta muchoY me gusta muchoY me gusta muchoY me gusta muchoY me gusta muchoY me gusta mucho
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)