[UNITY][C#] Projectile by

31
Jan
0

วันนี้จะมานำเสนอ method สำหรับทำให้ obj เคลื่อนที่แบบ projectile นะครับ โดยใช้สูตรทางฟิสิกส์แบบเป๊ะๆกันเลยครับ


IEnumerator projectile(Transform trans, Vector3 from, Vector3 to, float height, float time)
{
trans.localPosition = from;
yield return null;
float Vx = (to.x - from.x) / time;
float Vy = 2 * height / (0.33f * time);
float A1 = -2f * height / Mathf.Pow(0.33f * time, 2);
float t = 0;
while (t <= 0.33f * time)
{
float deltaTime = Time.deltaTime;
float deltaSx = Vx * deltaTime;
Vy += A1 * deltaTime;
float deltaSy = Vy * deltaTime;
trans.localPosition = new Vector3(trans.localPosition.x + deltaSx, trans.localPosition.y + deltaSy);
t += deltaTime;
yield return null;
}
Vy = 0;
float A2 = -2f * (to.y - from.y - height) / Mathf.Pow(0.67f * time, 2);
while (t <= time)
{
float deltaTime = Time.deltaTime;
float deltaSx = Vx * deltaTime;
Vy -= A2 * deltaTime;
float deltaSy = Vy * deltaTime;
trans.localPosition = new Vector3(trans.localPosition.x + deltaSx, trans.localPosition.y + deltaSy);
t += deltaTime;
yield return null;
}
}

[Unity][Editor] แก้ไขค่าของตัวแปรในหลาย Object by

31
Dec
0

เคยไหม เวลาที่อยากแก้ไขค่าของตัวแปรไหนซักตัว แต่ Unity ดันไม่ยอมให้แก้ใน Multi-object mode ดังรูป
1

วันนี้เรามีวีธีแก้ไขมานำเสนอ โดยการใช้ Editor นี่คือตัวอย่าง code

[MenuItem ("LevelUp/Spine/Set Scale to 1", false, 151)]
static void SetScaleTo1 ()
{
Object[] aObj = Selection.objects;
foreach (Object obj in aObj) {
((SkeletonDataAsset)obj).scale = 1;
}
}

เวลาใช้ก็ให้เราเลือก object ทั้งหมดที่อยากแก้ไขค่าแล้วกดใช้งาน code ใน Editor จบบบ
2

[database][tips] แก้ไขโครงสร้าง หรือ backup ตารางขนาดยักษ์ยังไงให้ ตารางไม่ถูกล๊อค by

30
Nov
0

ถ้าเราใช้ mysql ธรรมดาๆคงไม่สามารถทำได้ ดังนั่นเราเลยต้องใช้ตัวช่วยกันหน่อยนั่นก็คือPercona นั่นเองครับ

วิธีใช้ก็ง่ายแสนง่าย ถ้า ปกติเราใช้คำสั่ง

ALTER TABLE table_name ADD column_name datatype

ก็ใช้ Percona แบบนี้

pt-online-schema-change --dry-run --alter "ADD column_name datatype" D=DATABASE,t=TABLE

จุดสังเกตุคือ เอา command ออกมานอก ” และ เอาชื่อ database กับ ชื่อตาราง มาใส่เป็น parameter ข้างหลัง โดยที่คำสั่ง dry-run นั้น คือคำสั่งที่ให้ทดลอง run ดูก่อนว่า syntax เราผิดรึเปล่า ถ้าไม่มีปัญหาอะไร ถ้าคำสั่งที่เราจะสั่งมีปัญหาอะไรมันจะพ่นมาบอก โดยที่ยังไม่เกิดผลลัพท์อะไรทั้งนั้น ทีนี้พอเรา run ด้วยคำสั่ง dry-run โดยที่ไม่มี error อะไรแล้ว ก็ให้แก้ dry-run ให้เป็น execute แบบนี้

pt-online-schema-change --execute --alter "ADD column_name datatype" D=DATABASE,t=TABLE

Credit

วิธีเริ่มต้น Repo ใหม่ by

5
Oct
0
  1. สร้าง Directory ใน Hg Server
  2. เปลี่ยน owner ของ Directory ที่สร้างใหม่ให้ owner เป็น hg
    chown -R hg:hg <dirName>
  3. เข้าไปสร้างไฟล์อะไรก็ได้ใน Directory ให้เป็น .png (เพื่อ enable large file extendstion)
    nano asdf.png
    hg add --large asdf.png
  4. commit
    hg commit -m "init project"

* อย่าลืมเพิ่ม permission ใน .ssh

[UNITY][Google Play Services] ปัญหาและวีธีแก้ไขเบื้องต้น by

29
Sep
0

เมือเราจะใช้ Plugin ที่ใช้ Services ของ Google ก็อาจจะเจอปัญหาต่างๆได้ โดยเฉพาะเมื่อเรา ใช้ Plugin หลายๆตัว ก็ยิ่งมีโอกาสเจอปัญหาเหล่านี้เยอะตามไปด้วย วันนี้จะมาเล่าถึงปัญหาที่เคยเจอและวิธีแก้ไขปัญหาเหล่านั้นกันนะครับ

  • ปัญหา: Exception: JNI: Init’d AndroidJavaClass with null ptr! เมื่อใช้ Soomla
    วิธีแก้ไข: ให้ Upgrade Soomla เป็น version ล่าสุดและต้องลง Plugin เสริมของ Soomla ให้ครบ สิ่งที่ต้องมี(อย่างน้อย)คือ
    - Core
    - Store
    - HighWay
  • ปัญหา: CommandInvokationFailure: Failed to re-package resources.  Error นี้จะตามมาด้วยข้อความต่อไปนี้ (อันไดอันหนึ่งหรือทั้งหมด)
    - Error: No resource found that matches the given name (at ‘theme’ with value ‘@style/Theme.IAPTheme’).
    - Error: No resource found that matches the given name (at ‘value’ with value ‘@integer/google_play_services_version’).
    วิธีแก้ไข: ให้ลบไฟล์ google-play-services_lib หรือ play-services-….jar  ออกให้หมดแล้วเอา play-services-reslover ไปลงใน project
  • ปัญหา: Main manifest has <uses-sdk android:minSdkVersion=’9′> but library uses minSdkVersion=’15′  ปัญหานี้เกิดจากเรา set minSdkVersion ไว้ไม่ตรงกับที่ Plugin ต้องการ
    วิธีแก้ไข: ใน Player Settings > Other Settings > Minimum API Level ให้ปรับเป็น Android 4.0.3 (API Level 15)