using System.Collections; using System.Collections.Generic; using UnityEngine; public static class Extension { public static void MoveControlByTranslate(this Transform obj, float m_speed) { if (Input.GetKey(KeyCode.W) | Input.GetKey(KeyCode.UpArrow)) //前 { obj.transform.Translate(Vector3.forward * m_speed * Time.deltaTime); } if (Input.GetKey(KeyCode.S) | Input.GetKey(KeyCode.DownArrow)) //后 { obj.transform.Translate(Vector3.forward * -m_speed * Time.deltaTime); } if (Input.GetKey(KeyCode.A) | Input.GetKey(KeyCode.LeftArrow)) //左 { obj.transform.Translate(Vector3.right * -m_speed * Time.deltaTime); } if (Input.GetKey(KeyCode.D) | Input.GetKey(KeyCode.RightArrow)) //右 { obj.transform.Translate(Vector3.right * m_speed * Time.deltaTime); } } }
扩展方法可以使代码更简洁,注意格式必须是静态类,静态方法,用this来指明扩展的类。
别挂在object上了,难怪一直提示我错误
感觉使用一个InputManager专门负责输入,如果需要代理监听可能会好点。
拓展这样会不会导致每个GameObject多一点内存占用?
@Codinggamer:确实这样感觉更规范一些~