🧠 一、C#脚本基础
1.1 运算符分类运算符类型 运算符 示例 说明 算术运算符 + - * / %
a + b
加减乘除取余 比较运算符 == != > < >= <=
a > b
比较大小关系 位运算符 & | ~ ^ << >>
a << 2
按位操作 赋值运算符 = += -= *= /=
a += 5
赋值与复合赋值 逻辑运算符 && || !
a && b
逻辑与或非 条件运算符 ?:
a ? b : c
三元条件表达式
🔍 位运算符详解
int result = a & b;
int result = a | b;
int result = ~ a;
int result = a ^ b;
int result = a << 2 ;
int result = a >> 2 ;
1.2 命名规则命名法 规则 示例 适用场景 帕斯卡命名法 每个单词首字母大写 PlayerHealth
类名、方法名、属性名 驼峰命名法 首单词小写,后续单词首字母大写 playerHealth
变量名、参数名
🧩 二、选择结构与循环
2.1 选择结构
if ( condition) {
}
if ( condition) {
} else {
}
if ( condition1) {
} else if ( condition2) {
} else {
}
switch ( value ) {
case 1 :
break ;
case 2 :
break ;
default :
break ;
}
2.2 循环结构
for ( int i = 0 ; i < 10 ; i++ ) {
}
while ( condition) {
}
do {
} while ( condition) ;
⚙️ 三、Unity关键方法
3.1 生命周期方法方法 调用时机 用途 Start()
游戏开始时执行一次 组件初始化、变量赋值 Update()
每帧调用一次 游戏逻辑更新、输入检测 FixedUpdate()
固定时间间隔调用 物理相关计算
3.2 Debug.Log()方法
Debug. Log ( "Hello Unity!" ) ;
int health = 100 ;
Debug. Log ( "玩家生命值: " + health) ;
Debug. LogWarning ( "警告信息" ) ;
Debug. LogError ( "错误信息" ) ;
🔍 四、获取物体与组件
4.1 获取当前物体
Debug. Log ( gameObject. name) ;
Transform myTransform = transform;
4.2 获取组件
Rigidbody rb = GetComponent < Rigidbody> ( ) ;
Collider collider = GetComponent < Collider> ( ) ;
Renderer childRenderer = GetComponentInChildren < Renderer> ( ) ;
4.3 获取其他物体
GameObject player = GameObject. Find ( "Player" ) ;
GameObject player = GameObject. FindGameObjectWithTag ( "Player" ) ;
GameObject[ ] enemies = GameObject. FindGameObjectsWithTag ( "Enemy" ) ;
public GameObject targetObject;
🚀 五、修改物体位置与旋转
5.1 修改物体位移
void Update ( ) {
transform. Translate ( Vector3. right * Time. deltaTime) ;
float speed = 5.0f ;
transform. Translate ( Vector3. forward * speed * Time. deltaTime) ;
5.2 修改物体旋转
void Update ( ) {
transform. Rotate ( 0 , 30 * Time. deltaTime, 0 ) ;
transform. Rotate ( Vector3. up, 45 * Time. deltaTime) ;
5.3 直接指定位置和旋转
transform. position = new Vector3 ( 0 , 1 , 0 ) ;
transform. rotation = Quaternion. Euler ( 0 , 90 , 0 ) ;
transform. position = Vector3. Lerp ( currentPos, targetPos, Time. deltaTime) ;
⏱️ 六、时间记录(Time类)
6.1 Time.deltaTime
void Update ( ) {
float delta = Time. deltaTime;
transform. Translate ( Vector3. forward * speed * Time. deltaTime) ;
6.2 其他常用Time属性
Time. time
Time. timeScale
Time. fixedDeltaTime
🧪 七、综合示例
7.1 物体跟随脚本
public class FollowTarget : MonoBehaviour
{
public Transform target;
public float followSpeed = 3.0f ;
void Update ( )
{ if ( target != null ) { Vector3 direction = target. position - transform. position; transform. Translate ( direction. normalized * followSpeed * Time. deltaTime) ; }
}
}
7.2 旋转物体示例
public class Rotator : MonoBehaviour
{
public float rotationSpeed = 90.0f ;
void Update ( )
{ transform. Rotate ( 0 , rotationSpeed * Time. deltaTime, 0 ) ;
}
}
💡 最佳实践总结
命名规范 :使用帕斯卡命名法命名类和方法,驼峰命名法命名变量组件获取 :优先使用公开变量引用,其次使用标签查找时间处理 :所有移动和旋转操作都应乘以Time.deltaTime
调试技巧 :合理使用Debug.Log()
输出关键信息性能优化 :避免在Update中频繁调用Find
方法
🚀 提示 :在Unity编辑器中多实践这些脚本技巧,结合Inspector窗口调整参数观察效果!