public void Init(Tool.ShipPart part) { UnitPos posInit = part.Cubes[0]; //X = new Vector2(posInit.x, posInit.x); Y = new Vector2(posInit.y, posInit.y); Z = new Vector2(posInit.z, posInit.z); foreach (UnitPos pos in part.Cubes) { LinkPosList.Add(new LinkPos(pos, ParamAttribut != null ? ParamAttribut.Life : int.MaxValue)); // update min and max X.x = Mathf.Min(X.x, pos.x); X.y = Mathf.Max(X.y, pos.x); Y.x = Mathf.Min(Y.x, pos.y); Y.y = Mathf.Max(Y.y, pos.y); Z.x = Mathf.Min(Z.x, pos.z); Z.y = Mathf.Max(Z.y, pos.z); } // init component // size of cube float size = part.Param.SquareSize; CompMeshGenerator.ParamCubeSize = ScriptableObject.CreateInstance(typeof(Tool.SCROneValue)) as Tool.SCROneValue; CompMeshGenerator.ParamCubeSize.Value = size; CompMaterial.ParamMaterial = ScriptableObject.CreateInstance(typeof(Tool.SCRMaterial)) as Tool.SCRMaterial; CompMaterial.ParamMaterial.Material = part.Param.Material; }
// Use this for initialization override public void Start() { LinkPosList.Add(new LinkPos(new UnitPos(0, 0, 0), ParamAttribut != null ? ParamAttribut.Life : int.MaxValue)); AddComponent(ComponentLife); base.Start(); MyMeshCollider.convex = true; }
public override void Hit(ContactPoint[] _points, int _dmg) { // will destroy object LinkPosList.Clear(); _flagRefresh = true; // spawn spark GameObject obj = Tool.Builder.Instance.Build(Tool.Builder.FactoryType.Fx, (int)Tool.BuilderFx.Type.Sparkle, transform.position, Quaternion.identity, null); //obj.GetComponent<EntSparkle>().ImpactNormal = _points[0].normal; }