64 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System.Collections;
 | ||
| using System.Collections.Generic;
 | ||
| using UnityEngine;
 | ||
| /// <summary>
 | ||
| /// 注意:1.此脚本和动画共用时,需要注意动画激活时,缩放会被锁死,无法移动。
 | ||
| ///       2.有控制权才能移动,结束后需释放控制权(控制权专属除外)
 | ||
| /// </summary>
 | ||
| public class FunctionSync_Scale : OneValueSyncObject
 | ||
| {
 | ||
|     /// <summary>
 | ||
|     /// 是否有控制权
 | ||
|     /// </summary>
 | ||
|     public bool isControl=false;
 | ||
|     private void Start()
 | ||
|     {
 | ||
|         Init();
 | ||
|     }
 | ||
| 
 | ||
|     public void Init()
 | ||
|     {
 | ||
|         if(!hasInit)
 | ||
|         {
 | ||
|             InitDynamic("Scale_" + gameObject.name, null, ValueType.Vector3);
 | ||
|             myvector3 = transform.localScale;
 | ||
|         }
 | ||
|     }
 | ||
|     /// <summary>
 | ||
|     /// 获取控制权
 | ||
|     /// </summary>
 | ||
|     public void GetControl()
 | ||
|     {
 | ||
|         isControl = true;
 | ||
|     }
 | ||
|     /// <summary>
 | ||
|     /// 释放控制权
 | ||
|     /// </summary>
 | ||
|     public void ReleaseControl()
 | ||
|     {
 | ||
|         isControl = false;
 | ||
|         myvector3 = transform.localScale;
 | ||
|         SendSync();
 | ||
|     }
 | ||
|     [DisplayOnly]
 | ||
|     public float OnceTime = 0.1f;
 | ||
|     private void LateUpdate()
 | ||
|     {
 | ||
|         if (!GameManage.Instance.is单机模式)
 | ||
|         {
 | ||
|             if (!isControl)
 | ||
|             {
 | ||
|                 transform.localScale = myvector3;
 | ||
|             }
 | ||
|             else
 | ||
|             {
 | ||
|                 if (Vector3.Distance(myvector3, transform.localScale) > OnceTime)
 | ||
|                 {
 | ||
|                     myvector3 = transform.localScale;
 | ||
|                     SendSync();
 | ||
|                 }
 | ||
|             }
 | ||
|         }
 | ||
|     }
 | ||
| }
 |